From 2879683cad4adbbe5999ae6e3afa818ea8893b9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=89=E6=BE=9C?= Date: Tue, 14 Jul 2026 08:11:27 +0800 Subject: [PATCH] fix(schema): enforce final delivery and runtime contracts --- AGENTS.md | 31 +- docs/architecture.md | 2 +- docs/schema-dynamic-endpoint-design.md | 24 +- .../app/schema_agent_examples_dry_run_test.go | 38 +- internal/app/schema_contract_test.go | 12 +- .../app/schema_help_flag_completeness_test.go | 304 + ...ema_interface_disposition_contract_test.go | 308 + .../schema_local_registry_contract_test.go | 13 +- internal/app/schema_minutes_registry_test.go | 48 + .../schema_reviewed_input_contract_test.go | 127 + internal/app/schema_safety_contract_test.go | 91 + .../schema_sheet_confirmation_runtime_test.go | 81 + internal/cli/runtime_schema.go | 78 +- .../cli/schema_agent_metadata/aitable.json | 1358 +- .../cli/schema_agent_metadata/attendance.json | 2138 +- internal/cli/schema_agent_metadata/chat.json | 288 +- internal/cli/schema_agent_metadata/dev.json | 2005 +- internal/cli/schema_agent_metadata/doc.json | 533 +- internal/cli/schema_agent_metadata/drive.json | 613 +- internal/cli/schema_agent_metadata/event.json | 135 +- internal/cli/schema_agent_metadata/index.json | 18 +- .../cli/schema_agent_metadata/minutes.json | 753 +- internal/cli/schema_agent_metadata/sheet.json | 1524 +- internal/cli/schema_agent_metadata/todo.json | 12 +- internal/cli/schema_agent_metadata/wiki.json | 47 +- internal/cli/schema_agent_metadata_audit.json | 26 +- internal/cli/schema_catalog.go | 40 +- internal/cli/schema_catalog.json | 65415 ++++++++-------- internal/cli/schema_catalog_test.go | 89 + internal/cli/schema_cobra_binding.go | 177 +- internal/cli/schema_cobra_binding_test.go | 109 +- internal/cli/schema_command_registry.go | 3 + internal/cli/schema_command_registry.json | 14 +- .../schema_command_registry_contract_test.go | 30 + internal/cli/schema_completeness.go | 85 +- internal/cli/schema_completeness_test.go | 1 + internal/cli/schema_constraints_runtime.go | 15 + internal/cli/schema_dry_run_capabilities.go | 485 +- internal/cli/schema_hints/README.md | 25 +- .../runtime-surface-completeness.json | 227 +- .../cli/schema_hints/selection-review.json | 165 +- .../zz-interface-disposition-review.json | 877 +- .../zz-runtime-confirmation-review.json | 202 +- .../zz-sheet-range-filter-review.json | 6 +- internal/cli/schema_hints_aitable.go | 5 - internal/cli/schema_lazy_metadata_test.go | 2 +- internal/cli/schema_manual_hints.go | 94 +- internal/cli/schema_manual_hints.json | 102 +- internal/cli/schema_manual_hints.schema.json | 6 +- internal/cli/schema_manual_hints_test.go | 82 +- internal/cli/schema_parameter_bindings.go | 422 +- internal/cli/schema_parameter_bindings.json | 1388 +- .../cli/schema_parameter_bindings_test.go | 264 +- ...ema_parameter_mapping_completeness_test.go | 722 + .../cli/schema_parameter_precedence_test.go | 1 + internal/cli/schema_parameters_runtime.go | 69 +- internal/cli/schema_runtime_registry.go | 85 +- internal/cli/schema_text_delivery_test.go | 34 + internal/cli/schema_text_precedence_test.go | 72 + internal/generator/cmd_schema_catalog/main.go | 46 +- .../generator/cmd_schema_catalog/main_test.go | 40 + internal/helpers/aisearch.go | 35 +- internal/helpers/aisearch_test.go | 37 + internal/helpers/aitable.go | 98 +- internal/helpers/aitable_export_test.go | 175 + internal/helpers/attendance.go | 26 +- .../attendance_search_defaults_test.go | 175 + internal/helpers/chat.go | 15 +- internal/helpers/chat_favorites_test.go | 23 + .../helpers/destructive_confirmation_test.go | 348 + internal/helpers/devapp.go | 7 +- internal/helpers/devapp_test.go | 58 + internal/helpers/minutes_list_scope_test.go | 69 + internal/helpers/report.go | 27 + internal/helpers/sheet.go | 32 + internal/helpers/sheet_batch.go | 72 +- internal/helpers/sheet_chart.go | 6 +- internal/helpers/sheet_cond_format.go | 4 - internal/helpers/sheet_dimension.go | 22 +- internal/helpers/sheet_filter_view.go | 14 +- internal/helpers/sheet_float_image.go | 2 +- internal/helpers/sheet_pivot_table.go | 3 - internal/helpers/sheet_range_ops.go | 16 +- internal/helpers/sheet_workbook.go | 2 +- internal/helpers/todo.go | 35 +- internal/helpers/todo_reminder_test.go | 149 + scripts/dev/schema_command_smoke.py | 511 +- scripts/dev/schema_command_smoke_test.py | 406 + scripts/policy/check-schema-binary.sh | 2 +- scripts/policy/check-schema-catalog.sh | 70 +- .../policy/check-schema-command-registry.sh | 2 +- skills/mono/SKILL.md | 2 +- skills/mono/references/products/aitable.md | 2 +- .../products/aitable/aitable-export-import.md | 14 +- skills/mono/references/products/attendance.md | 5 +- skills/mono/references/products/event.md | 2 +- .../products/sheet/sheet-batch-operations.md | 12 +- skills/mono/references/url-patterns.md | 2 +- .../aitable/aitable-export-import.md | 14 +- .../references/attendance.md | 5 +- .../dingtalk-doc/references/url-patterns.md | 2 +- skills/multi/dingtalk-event/SKILL.md | 2 +- .../sheet/sheet-batch-operations.md | 12 +- 103 files changed, 46920 insertions(+), 37601 deletions(-) create mode 100644 internal/app/schema_help_flag_completeness_test.go create mode 100644 internal/app/schema_interface_disposition_contract_test.go create mode 100644 internal/app/schema_minutes_registry_test.go create mode 100644 internal/app/schema_reviewed_input_contract_test.go create mode 100644 internal/app/schema_safety_contract_test.go create mode 100644 internal/app/schema_sheet_confirmation_runtime_test.go create mode 100644 internal/cli/schema_parameter_mapping_completeness_test.go create mode 100644 internal/cli/schema_text_delivery_test.go create mode 100644 internal/cli/schema_text_precedence_test.go create mode 100644 internal/helpers/aisearch_test.go create mode 100644 internal/helpers/aitable_export_test.go create mode 100644 internal/helpers/attendance_search_defaults_test.go create mode 100644 internal/helpers/destructive_confirmation_test.go create mode 100644 internal/helpers/minutes_list_scope_test.go create mode 100644 internal/helpers/todo_reminder_test.go create mode 100644 scripts/dev/schema_command_smoke_test.py diff --git a/AGENTS.md b/AGENTS.md index e521ee61..a27cbb9d 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -192,23 +192,25 @@ all pass before execution eligibility is considered. A missing required value, constraint failure, runtime error, or MCP resolution error is a contract bug; none is a valid reason to skip an example. -Example execution defaults to `dry_run`. Final typed safety with `risk=high` -or `confirmation=user_required` automatically selects `contract_only`, because -a test must never inject `--yes`. A narrow runtime precondition that cannot be -derived from the typed contract may use an exact zero-based -`example_dispositions` entry with `mode=contract_only`, `reviewed=true`, one of -the schema-enumerated reason codes, and a concrete non-empty reason. Manual -confirmation dispositions are forbidden because confirmation comes from typed -safety. Duplicate, missing, and out-of-range indexes fail validation. Never -catch a dry-run failure and dynamically downgrade it to `contract_only`. +Example execution defaults to contract validation only. Runtime execution is +opt-in: an example enters `dry_run` only when its final `ToolSpec` publishes an +explicit reviewed dry-run capability. The test never injects `--yes`, and +`risk`/`confirmation` values do not manufacture preview support. A narrow +runtime precondition that cannot be derived from the typed contract may use an +exact zero-based `example_dispositions` entry with `mode=contract_only`, +`reviewed=true`, one of the schema-enumerated reason codes, and a concrete +non-empty reason. Such a disposition may only narrow an explicit dry-run +capability; it cannot turn an ordinary contract-only example into a skip. +Duplicate, missing, and out-of-range indexes fail validation. Never catch a +dry-run failure and dynamically downgrade it to `contract_only`. Normal Go tests run the exhaustive contract gate. Run `make test-schema-agent-examples` to additionally execute the eligible subset through the real Cobra `--dry-run` path with isolated HOME and blocked proxies. -The test reports stable `total`, `dry_run`, `contract_only`, `typed_safety`, +The test reports stable `total`, `contract`, `dry_run`, `contract_only`, `reviewed_manual`, and per-reason counts; changing those counts requires a -review of the corresponding manual hint or typed safety change. This target is -also part of `make policy`. +review of the corresponding typed dry-run capability or manual disposition. +This target is also part of `make policy`. Treat every tool `use_when` entry as a reviewed positive selection scenario whose expected result is that tool's canonical path, and every `avoid_when` @@ -245,6 +247,11 @@ the selected source in provenance, and fail same-precedence conflicts rather than silently merging them. Cobra's hard-required marker remains an executable fact even when the Agent projection is deliberately different. +For command text, reviewed `ToolSchemaHint` wins first, then command-specific +Cobra Help, then MCP metadata. Generic RPC prose may remain an unselected +provenance candidate (and parameter-level `interface_description`); it must not +overwrite a specialized leaf's title or description. + For every delivered `ToolSpec` and `ParameterSpec` field, the provenance winner value must exactly equal the delivered value. Checking only source, count, presence, or hash is not a sufficient final-delivery invariant. diff --git a/docs/architecture.md b/docs/architecture.md index e2a12a85..30dff954 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -10,7 +10,7 @@ 4. `internal/executor` and `internal/transport` execute MCP JSON-RPC calls; `internal/output` formats responses. 5. `internal/auth` manages login state, PAT tokens, and agent-code detection. 6. Schema generation starts from the reviewed `CommandRegistry`, binds each identity to the exact current Cobra leaf, and then resolves typed constraints, sanitized MCP snapshots, Agent hints, and Skills into one `SchemaRegistry`. Startup and Schema queries do not call MCP `tools/list`. -7. The embedded Catalog is a downstream release artifact and never backfills identity or participates in regeneration. Stable flag-to-RPC property bindings come from the versioned `schema_parameter_bindings.json` (314 active bindings: a 311-row historical seed, minus 3 exclusions, plus 8 current inherited-flag additions); CLI `required` and constraints come from Cobra/typed annotations. MCP `required` remains interface-only metadata. +7. The embedded Catalog is a downstream release artifact and never backfills identity or participates in regeneration. Stable flag-to-interface property bindings come from the reviewed, content-addressed v3 manifest in `schema_parameter_bindings.json`; its exact active tuples, corrections, removals, and mapping exclusions are validated against the final bound `SchemaRegistry`. CLI `required` and constraints come from the resolved typed contract, while MCP `required` remains interface-only metadata. 8. Agent selection results are fixed in versioned review inputs. Every public tool has explicit use/avoid/example and interface disposition metadata; Skill references that are not current leaves require an explicit alias/group/stale/out-of-surface review instead of fuzzy runtime matching. ## Repository Structure diff --git a/docs/schema-dynamic-endpoint-design.md b/docs/schema-dynamic-endpoint-design.md index 8e4f4557..4ae1d7ac 100644 --- a/docs/schema-dynamic-endpoint-design.md +++ b/docs/schema-dynamic-endpoint-design.md @@ -181,6 +181,24 @@ JSON 输入契约、禁用旧 native materialization 符号,并从 Registry 每个字段按明确的来源 precedence 选择一次,并把 winner、候选值和来源写入 provenance。precedence **与值无关**:不能因为 `required=true` 看起来更严格就让它越级获胜。更高优先级的 reviewed manual override 可以把 `required`、映射、interface type 或描述调高,也可以调低。 +实现中的参数字段顺序固定为: + +```text +reviewed manual > versioned binding > command constraint > typed metadata + > native/Cobra contract > ToolSchemaHint > MCP metadata + > inference/default +``` + +命令 `title` / `description` 使用独立但同样确定的文本顺序: + +```text +reviewed ToolSchemaHint > command-specific Cobra Help > MCP metadata > inference +``` + +因此多个 CLI leaf 复用同一个 RPC 时,通用 RPC 文案只能作为未选中的 +provenance candidate 保留;参数级 RPC 文案可进入 `interface_description`, +但不得覆盖 leaf 自己的标题和执行语义。 + Cobra hard-required 是独立的 executable fact,并通过 `cli_required`/provenance 保留;它不应在 renderer 中再次静默改写已经解析的 Agent projection。 ### 5.3 Safety、selection 与 interface @@ -190,9 +208,9 @@ Cobra hard-required 是独立的 executable fact,并通过 `cli_required`/prov 最终 interface disposition 还必须满足 conflict matrix: - `mode` 与 `availability` 正交:`mode` 只允许 `mcp | local | composite`,`availability` 只允许 `available | unavailable`;`unavailable` 不是第四种 mode。 -- `mcp + available`:必须有可在 pinned interface registry 精确解析的 `interface_ref`。 -- `local + available`:不得携带 direct `interface_ref`;它由本地 CLI 实现完成。 -- `composite + available`:不得用单个 `interface_ref` 冒充完整实现,且必须提供 reviewed reason;未来需要表达多个 RPC 时使用单独的复合接口模型。 +- `mcp + available`:只表示命令可由一个 pinned、参数可映射且语义等价的 `interface_ref` 完整表达;本地 wrapper 只是固定默认值或投影返回值时,也必须先证明参数和执行语义没有漂移。 +- `local + available`:仅用于纯本地进程、静态数据或策略操作,不得携带 direct `interface_ref`;“远端 RPC 尚未进入 pinned metadata”不能归类为 local。 +- `composite + available`:用于多 RPC、条件路由、本地投影,或 reviewed unpinned remote adapter;不得用单个 `interface_ref` 冒充完整实现,且必须提供 reviewed reason。未来需要表达多个 RPC 时使用单独的复合接口模型。 - 任意合法 mode + `unavailable`:不得携带 `interface_ref`,必须提供明确 reason,并且 Agent 不得把它当作可用接口。 ## 6. Schema、Help 与业务数据边界 diff --git a/internal/app/schema_agent_examples_dry_run_test.go b/internal/app/schema_agent_examples_dry_run_test.go index 45fcfe50..a77ffceb 100644 --- a/internal/app/schema_agent_examples_dry_run_test.go +++ b/internal/app/schema_agent_examples_dry_run_test.go @@ -45,19 +45,18 @@ func TestManualAgentExamplesContract(t *testing.T) { if plan.Total == 0 { t.Fatal("no reviewed Agent examples were contract validated") } - t.Logf("Agent example contract: total=%d dry_run=%d contract_only=%d", plan.Total, plan.DryRun, plan.ContractOnly) + t.Logf("Agent example contract: total=%d contract=%d dry_run=%d contract_only=%d", plan.Total, plan.Contract, plan.DryRun, plan.ContractOnly) } // TestManualAgentExamplesDryRun first validates every reviewed example against // its real BoundCommand, Cobra required arguments, and final typed constraints. -// It then executes the deterministic dry_run subset, including every -// high-risk/user-confirmed operation without injecting --yes. Only exact -// reviewed local-state/stateful-preflight dispositions account for the stable -// contract_only subset; runtime failures never create implicit skips. No shell -// is involved and HOME is isolated. +// It then executes only the deterministic, explicitly declared dry_run subset +// without injecting --yes. Global flag inheritance is not treated as capability +// evidence. Runtime failures never create implicit skips. No shell is involved +// and HOME is isolated. func TestManualAgentExamplesDryRun(t *testing.T) { if os.Getenv("DWS_AGENT_EXAMPLES_DRY_RUN") != "1" { - t.Skip("set DWS_AGENT_EXAMPLES_DRY_RUN=1 to execute every reviewed Agent example through Cobra --dry-run") + t.Skip("set DWS_AGENT_EXAMPLES_DRY_RUN=1 to execute the explicitly reviewed Agent dry-run subset") } sandboxRoot := t.TempDir() @@ -78,27 +77,16 @@ func TestManualAgentExamplesDryRun(t *testing.T) { if plan.Total == 0 { t.Fatal("no reviewed Agent examples were contract validated") } - declaredTools := make(map[string]cli.DryRunSpec) - for _, execution := range plan.Examples { - if execution.DryRun != nil { - declaredTools[execution.CanonicalPath] = *execution.DryRun - } - } - if len(declaredTools) == 0 { - t.Fatal("final Schema declares no dry_run capabilities") - } t.Chdir(sandboxRoot) files := newManualAgentExampleFiles(t, sandboxRoot) selected := 0 executed := 0 - selectedTools := make(map[string]bool) for _, execution := range plan.Examples { if !manualAgentExampleShouldExerciseDryRun(execution) { continue } selected++ - selectedTools[execution.CanonicalPath] = true execution := execution t.Run(fmt.Sprintf("%s/%d", strings.ReplaceAll(execution.CanonicalPath, ".", "/"), execution.Index), func(t *testing.T) { argv, err := cli.ParseManualAgentExampleArgv(execution.Example) @@ -137,17 +125,7 @@ func TestManualAgentExamplesDryRun(t *testing.T) { if executed != selected { t.Fatalf("executed dry_run examples = %d, selected capability set requires %d", executed, selected) } - if len(selectedTools) != len(declaredTools) { - missing := make([]string, 0) - for canonical := range declaredTools { - if !selectedTools[canonical] { - missing = append(missing, canonical) - } - } - sort.Strings(missing) - t.Fatalf("selected dry_run tools = %d, Schema declares %d; tools without an executable example: %s", len(selectedTools), len(declaredTools), strings.Join(missing, ", ")) - } - t.Logf("Agent examples: total=%d dry_run_selected=%d planned_dry_run=%d contract_only=%d reviewed_manual=%d", plan.Total, selected, plan.DryRun, plan.ContractOnly, plan.ReviewedContractOnly) + t.Logf("Agent examples: total=%d contract=%d dry_run_selected=%d planned_dry_run=%d contract_only=%d reviewed_manual=%d", plan.Total, plan.Contract, selected, plan.DryRun, plan.ContractOnly, plan.ReviewedContractOnly) reasonCodes := make([]string, 0, len(plan.ContractOnlyByReason)) for reasonCode := range plan.ContractOnlyByReason { reasonCodes = append(reasonCodes, string(reasonCode)) @@ -162,7 +140,7 @@ func TestManualAgentExamplesDryRun(t *testing.T) { // the runtime gate. Capability comes only from the final typed ToolSpec; the // example disposition may narrow that set but can never invent support. func manualAgentExampleShouldExerciseDryRun(execution cli.ManualAgentExampleExecution) bool { - return execution.DryRun != nil && execution.Mode != cli.ManualAgentExampleModeContractOnly + return execution.DryRun != nil && execution.Mode == cli.ManualAgentExampleModeDryRun } func manualAgentExampleExecutionPlan(t testing.TB) cli.ManualAgentExampleExecutionPlan { diff --git a/internal/app/schema_contract_test.go b/internal/app/schema_contract_test.go index db961b60..9d490b8e 100644 --- a/internal/app/schema_contract_test.go +++ b/internal/app/schema_contract_test.go @@ -32,7 +32,12 @@ var ( func fullSchemaSnapshotForTest(t testing.TB) cli.SchemaCatalogSnapshot { t.Helper() fullSchemaSnapshotOnce.Do(func() { - fullSchemaSnapshot, fullSchemaSnapshotErr = cli.BuildSchemaCatalogSnapshot(NewRootCommand(), cli.SchemaCatalogBuildOptions{}) + resolved, err := cli.ResolveSchemaBuild(NewRootCommand()) + if err != nil { + fullSchemaSnapshotErr = err + return + } + fullSchemaSnapshot, fullSchemaSnapshotErr = cli.BuildSchemaCatalogSnapshot(resolved, cli.SchemaCatalogBuildOptions{}) }) if fullSchemaSnapshotErr != nil { t.Fatalf("build shared final Schema snapshot: %v", fullSchemaSnapshotErr) @@ -110,7 +115,10 @@ func TestEmbeddedSchemaContractMapsToExecutableTree(t *testing.T) { func TestGeneratedSchemaContractMapsToExecutableTree(t *testing.T) { root := NewRootCommand() snapshot := fullSchemaSnapshotForTest(t) - bindings := cli.EmbeddedSchemaParameterBindings() + bindings, err := cli.EmbeddedSchemaParameterBindings() + if err != nil { + t.Fatalf("EmbeddedSchemaParameterBindings() error = %v", err) + } if len(snapshot.Tools) == 0 { t.Fatal("generated Schema Catalog contains no tools") } diff --git a/internal/app/schema_help_flag_completeness_test.go b/internal/app/schema_help_flag_completeness_test.go new file mode 100644 index 00000000..b9ecf564 --- /dev/null +++ b/internal/app/schema_help_flag_completeness_test.go @@ -0,0 +1,304 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package app + +import ( + "bytes" + "encoding/json" + "fmt" + "sort" + "strings" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli" + "github.com/spf13/cobra" + "github.com/spf13/pflag" +) + +// TestFinalSchemaParametersMatchExecutableHelpFlags is the fast, in-process +// Help <-> Schema parameter completeness gate. It deliberately starts from the +// reviewed registry and its exact Cobra bindings, then compares every public +// primary leaf with the final delivered ToolSpec projection. The binder has +// already proved that reviewed compatibility leaves have the same executable +// contract as their primary, so aliases do not create a second parameter +// source here. +func TestFinalSchemaParametersMatchExecutableHelpFlags(t *testing.T) { + root := NewRootCommand() + bound := boundSchemaCommandsForHelpFlagTest(t, root) + snapshot := fullSchemaSnapshotForTest(t) + assertSchemaParametersMatchExecutableHelpFlags(t, bound, snapshot.Tools, "source-built final Schema") +} + +// TestEmbeddedSchemaParametersMatchExecutableHelpFlags runs the same exact-set +// gate against the artifact that ships in the binary. Going through the real +// schema --all command is intentional: a stale generated Catalog must fail +// even when a fresh source-built snapshot would agree with Cobra Help. +func TestEmbeddedSchemaParametersMatchExecutableHelpFlags(t *testing.T) { + root := NewRootCommand() + bound := boundSchemaCommandsForHelpFlagTest(t, root) + tools := embeddedSchemaAllToolsForHelpFlagTest(t, root) + assertSchemaParametersMatchExecutableHelpFlags(t, bound, tools, "embedded schema --all") +} + +func boundSchemaCommandsForHelpFlagTest(t testing.TB, root *cobra.Command) cli.BoundCommandRegistry { + t.Helper() + effective, err := cli.BuildEffectiveCommandRegistry(root) + if err != nil { + t.Fatalf("build EffectiveCommandRegistry: %v", err) + } + bound, err := cli.BindEffectiveCommandRegistry(root, effective) + if err != nil { + t.Fatalf("bind EffectiveCommandRegistry to live Cobra tree: %v", err) + } + return bound +} + +func embeddedSchemaAllToolsForHelpFlagTest(t testing.TB, root *cobra.Command) map[string]map[string]any { + t.Helper() + var stdout, stderr bytes.Buffer + root.SetOut(&stdout) + root.SetErr(&stderr) + root.SetArgs([]string{"schema", "--all", "--format", "json"}) + if err := root.Execute(); err != nil { + t.Fatalf("execute embedded schema --all: %v; stderr=%s", err, stderr.String()) + } + var payload struct { + Products []struct { + Tools []map[string]any `json:"tools"` + } `json:"products"` + } + if err := json.Unmarshal(stdout.Bytes(), &payload); err != nil { + t.Fatalf("decode embedded schema --all: %v", err) + } + tools := make(map[string]map[string]any) + for _, product := range payload.Products { + for _, tool := range product.Tools { + canonical := strings.TrimSpace(schemaContractString(tool["canonical_path"])) + if canonical == "" { + t.Fatal("embedded schema --all contains an empty canonical path") + } + if _, exists := tools[canonical]; exists { + t.Fatalf("embedded schema --all contains duplicate canonical %q", canonical) + } + tools[canonical] = tool + } + } + if len(tools) == 0 { + t.Fatal("embedded schema --all contains no tools") + } + return tools +} + +func assertSchemaParametersMatchExecutableHelpFlags( + t testing.TB, + bound cli.BoundCommandRegistry, + tools map[string]map[string]any, + source string, +) { + t.Helper() + problems := schemaHelpFlagCompletenessProblems(bound, tools) + checked := 0 + for _, command := range bound.Commands { + if command.Visibility == cli.SchemaVisibilityPublic { + checked++ + } + } + if len(problems) > 0 { + t.Fatalf("%s parameter surface differs from executable Cobra Help:\n%s", source, strings.Join(problems, "\n")) + } + t.Logf("validated Help-visible flags against %s parameters for %d public tools", source, checked) +} + +func TestSchemaHelpFlagCompletenessRejectsStaleCatalogFlags(t *testing.T) { + leaf := &cobra.Command{Use: "run", Run: func(*cobra.Command, []string) {}} + leaf.Flags().String("fresh", "", "new executable input") + bound := cli.BoundCommandRegistry{Commands: []cli.BoundCommandSpec{{ + CommandSpec: cli.CommandSpec{ + CanonicalPath: "sample.run", + PrimaryCLIPath: "sample run", + Visibility: cli.SchemaVisibilityPublic, + }, + PrimaryCommand: leaf, + }}} + tools := map[string]map[string]any{ + "sample.run": { + "parameters": map[string]any{ + "stale": map[string]any{"type": "string"}, + }, + }, + } + + problems := schemaHelpFlagCompletenessProblems(bound, tools) + joined := strings.Join(problems, "\n") + if !strings.Contains(joined, `missing_in_schema=["fresh"]`) || + !strings.Contains(joined, `extra_in_schema=["stale"]`) { + t.Fatalf("stale Catalog flag drift was not reported: %s", joined) + } +} + +func schemaHelpFlagCompletenessProblems(bound cli.BoundCommandRegistry, tools map[string]map[string]any) []string { + var problems []string + public := make(map[string]bool) + checked := 0 + for _, command := range bound.Commands { + if command.Visibility != cli.SchemaVisibilityPublic { + continue + } + public[command.CanonicalPath] = true + checked++ + tool, ok := tools[command.CanonicalPath] + if !ok { + problems = append(problems, fmt.Sprintf( + "canonical=%q path=%q missing final Schema tool", + command.CanonicalPath, + command.PrimaryCLIPath, + )) + continue + } + if problem := schemaHelpFlagCompletenessProblem( + command.CanonicalPath, + command.PrimaryCLIPath, + command.PrimaryCommand, + tool, + ); problem != "" { + problems = append(problems, problem) + } + } + for canonical := range tools { + if !public[canonical] { + problems = append(problems, fmt.Sprintf("canonical=%q is an unexpected final Schema tool", canonical)) + } + } + if checked != len(tools) { + problems = append(problems, fmt.Sprintf( + "public BoundCommand count=%d final Schema tool count=%d", + checked, + len(tools), + )) + } + sort.Strings(problems) + return problems +} + +func TestSchemaHelpFlagCompletenessRejectsAncestorPersistentLeak(t *testing.T) { + root := &cobra.Command{Use: "dws"} + root.PersistentFlags().String("format", "json", "output format") + product := &cobra.Command{Use: "product"} + product.PersistentFlags().String("leaked", "", "product-scoped option") + leaf := &cobra.Command{Use: "run", Run: func(*cobra.Command, []string) {}} + leaf.Flags().String("declared", "", "declared option") + leaf.Flags().String("json", "", "Base JSON object payload for this tool invocation") + leaf.Flags().String("hidden", "", "internal option") + _ = leaf.Flags().MarkHidden("hidden") + root.AddCommand(product) + product.AddCommand(leaf) + + tool := map[string]any{ + "parameters": map[string]any{ + "declared": map[string]any{"type": "string"}, + }, + } + problem := schemaHelpFlagCompletenessProblem("product.run", "product run", leaf, tool) + if !strings.Contains(problem, `missing_in_schema=["leaked"]`) { + t.Fatalf("ancestor persistent leak was not reported: %s", problem) + } + if strings.Contains(problem, "format") || strings.Contains(problem, "json") || strings.Contains(problem, "hidden") { + t.Fatalf("root controls and reviewed non-Schema flags must be excluded: %s", problem) + } +} + +func schemaHelpFlagCompletenessProblem(canonical, path string, command *cobra.Command, tool map[string]any) string { + helpFlags := schemaHelpVisibleFlagNames(command) + schemaFlags := make(map[string]bool) + for name := range schemaContractMap(tool["parameters"]) { + schemaFlags[name] = true + } + + missing := schemaFlagNameDifference(helpFlags, schemaFlags) + extra := schemaFlagNameDifference(schemaFlags, helpFlags) + if len(missing) == 0 && len(extra) == 0 { + return "" + } + return fmt.Sprintf( + "canonical=%q path=%q missing_in_schema=%s extra_in_schema=%s", + canonical, + path, + schemaQuotedFlagNames(missing), + schemaQuotedFlagNames(extra), + ) +} + +// schemaHelpVisibleFlagNames models Cobra's leaf Help surface without rendering +// text. Local flags and ancestor persistent flags are executable tool inputs. +// Only the reviewed root execution controls are omitted; an unexpected new +// root persistent flag must fail this gate instead of being silently treated as +// process scaffolding. +func schemaHelpVisibleFlagNames(command *cobra.Command) map[string]bool { + visible := make(map[string]bool) + if command == nil { + return visible + } + + visit := func(flag *pflag.Flag, rootPersistent bool) { + if flag == nil || flag.Hidden || flag.Name == "help" || schemaGenericPayloadEscapeHatch(flag) { + return + } + if rootPersistent && schemaRootExecutionControl(flag.Name) { + return + } + visible[flag.Name] = true + } + command.LocalNonPersistentFlags().VisitAll(func(flag *pflag.Flag) { visit(flag, false) }) + command.PersistentFlags().VisitAll(func(flag *pflag.Flag) { visit(flag, false) }) + root := command.Root() + for parent := command.Parent(); parent != nil; parent = parent.Parent() { + isRoot := parent == root + parent.PersistentFlags().VisitAll(func(flag *pflag.Flag) { visit(flag, isRoot) }) + } + return visible +} + +func schemaRootExecutionControl(name string) bool { + switch name { + case "client-id", "client-secret", "debug", "dry-run", "fields", "format", "jq", "mock", + "output", "profile", "timeout", "token", "verbose", "yes": + return true + default: + return false + } +} + +func schemaGenericPayloadEscapeHatch(flag *pflag.Flag) bool { + if flag == nil { + return false + } + switch flag.Name { + case "json": + return strings.TrimSpace(flag.Usage) == "Base JSON object payload for this tool invocation" + case "params": + return strings.TrimSpace(flag.Usage) == "Additional JSON object payload merged after --json" + default: + return false + } +} + +func schemaFlagNameDifference(left, right map[string]bool) []string { + result := make([]string, 0) + for name := range left { + if !right[name] { + result = append(result, name) + } + } + sort.Strings(result) + return result +} + +func schemaQuotedFlagNames(names []string) string { + quoted := make([]string, 0, len(names)) + for _, name := range names { + quoted = append(quoted, fmt.Sprintf("%q", name)) + } + return "[" + strings.Join(quoted, ",") + "]" +} diff --git a/internal/app/schema_interface_disposition_contract_test.go b/internal/app/schema_interface_disposition_contract_test.go new file mode 100644 index 00000000..5f736c46 --- /dev/null +++ b/internal/app/schema_interface_disposition_contract_test.go @@ -0,0 +1,308 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package app + +import ( + "encoding/json" + "os" + "sort" + "strings" + "testing" +) + +func TestReviewedRoutedInterfacesReachFinalSchema(t *testing.T) { + type interfaceCase struct { + canonical string + mode string + reason string + sourceSuffix string + } + tests := []interfaceCase{ + { + canonical: "attendance.get_attendance_summary", + mode: "composite", + reason: "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + { + canonical: "drive.list_files", + mode: "composite", + reason: "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", + sourceSuffix: "internal/cli/schema_hints/selection-review.json", + }, + { + canonical: "chat.search_groups", + mode: "composite", + reason: "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + { + canonical: "sheet.range_batch_set_style", + mode: "composite", + reason: "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", + sourceSuffix: "internal/cli/schema_hints/selection-review.json", + }, + { + canonical: "sheet.range_read", + mode: "composite", + reason: "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + { + canonical: "wiki.list_wikiSpaces", + mode: "composite", + reason: "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", + sourceSuffix: "internal/cli/schema_hints/selection-review.json", + }, + { + canonical: "event.consume", + mode: "composite", + reason: "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + { + canonical: "event.status", + mode: "composite", + reason: "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + { + canonical: "event.stop", + mode: "composite", + reason: "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", + sourceSuffix: "internal/cli/schema_hints/zz-interface-disposition-review.json", + }, + } + for _, canonical := range []string{ + "aitable.view_update_aggregate", + "aitable.view_update_card", + "aitable.view_update_field_widths", + "aitable.view_update_timebar", + } { + tests = append(tests, interfaceCase{ + canonical: canonical, + mode: "composite", + 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.", + sourceSuffix: "internal/cli/schema_hints/selection-review.json", + }) + } + + canonicals := make([]string, 0, len(tests)) + for _, test := range tests { + canonicals = append(canonicals, test.canonical) + } + payload := schemaContractPayloadForBoundCanonicals(t, NewRootCommand(), canonicals...) + + for _, test := range tests { + test := test + t.Run(test.canonical, func(t *testing.T) { + tool := payload.Tools[test.canonical] + if got := schemaContractString(tool["interface_mode"]); got != test.mode { + t.Errorf("interface_mode = %q, want %q", got, test.mode) + } + if got := schemaContractString(tool["availability"]); got != "available" { + t.Errorf("availability = %q, want available", got) + } + if tool["interface_ref"] != nil { + t.Errorf("interface_ref = %#v, want nil for %s wrapper", tool["interface_ref"], test.mode) + } + if got := schemaContractString(tool["interface_reason"]); got != test.reason { + t.Errorf("interface_reason = %q, want %q", got, test.reason) + } + + provenance := schemaContractMap(tool["field_provenance"]) + for _, field := range []string{"interface_mode", "availability", "interface_ref", "interface_reason"} { + entry := provenance[field] + if entry == nil { + t.Errorf("missing %s provenance", field) + continue + } + if got := schemaContractString(entry["precedence"]); got != "reviewed_explicit" { + t.Errorf("%s provenance precedence = %q, want reviewed_explicit", field, got) + } + if got := schemaContractString(entry["source"]); !strings.HasSuffix(got, test.sourceSuffix) { + t.Errorf("%s provenance source = %q, want suffix %q", field, got, test.sourceSuffix) + } + } + if got := provenance["interface_ref"]["value"]; got != nil { + t.Errorf("interface_ref provenance value = %#v, want explicit null", got) + } + }) + } +} + +func TestViewGetWrappersUsePinnedGetViewsInterface(t *testing.T) { + canonicals := []string{ + "aitable.view_get_aggregate", + "aitable.view_get_card", + "aitable.view_get_field_widths", + "aitable.view_get_fill_color_rule", + "aitable.view_get_filter", + "aitable.view_get_group", + "aitable.view_get_sort", + "aitable.view_get_timebar", + "aitable.view_get_visible_fields", + } + payload := schemaContractPayloadForBoundCanonicals(t, NewRootCommand(), canonicals...) + for _, canonical := range canonicals { + tool := payload.Tools[canonical] + if got := schemaContractString(tool["interface_mode"]); got != "mcp" { + t.Errorf("%s interface_mode = %q, want mcp", canonical, got) + } + if got := schemaContractString(tool["availability"]); got != "available" { + t.Errorf("%s availability = %q, want available", canonical, got) + } + ref := schemaInterfaceObject(tool["interface_ref"]) + if product, rpc := schemaContractString(ref["product_id"]), schemaContractString(ref["rpc_name"]); product != "aitable" || rpc != "get_views" { + t.Errorf("%s interface_ref = %q/%q, want aitable/get_views", canonical, product, rpc) + } + if got := schemaContractString(tool["interface_reason"]); got != "" { + t.Errorf("%s interface_reason = %q, want empty for direct pinned interface", canonical, got) + } + parameters := schemaContractMap(tool["parameters"]) + for flag, property := range map[string]string{ + "base-id": "baseId", + "table-id": "tableId", + "view-id": "viewIds", + } { + if got := schemaContractString(parameters[flag]["property"]); got != property { + t.Errorf("%s --%s property = %q, want %q", canonical, flag, got, property) + } + } + provenance := schemaContractMap(tool["field_provenance"]) + for _, field := range []string{"interface_mode", "availability", "interface_ref"} { + entry := provenance[field] + if got := schemaContractString(entry["precedence"]); got != "reviewed_explicit" { + t.Errorf("%s %s precedence = %q, want reviewed_explicit", canonical, field, got) + } + if got := schemaContractString(entry["source"]); !strings.HasSuffix(got, "internal/cli/schema_hints/zz-interface-disposition-review.json") { + t.Errorf("%s %s source = %q, want reviewed interface disposition source", canonical, field, got) + } + } + } +} + +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") + 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 { + 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...) + 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"]) + } + if got := schemaContractString(tool["availability"]); got != schemaContractString(want["availability"]) { + t.Errorf("%s final availability = %q, want %q", canonical, got, want["availability"]) + } + if schemaContractString(want["interface_mode"]) == "composite" { + if tool["interface_ref"] != nil { + t.Errorf("%s final composite 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"]) + } + } 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]) + } + } + } + provenance := schemaContractMap(tool["field_provenance"]) + fields := []string{"interface_mode", "availability", "interface_ref"} + if schemaContractString(want["interface_mode"]) == "composite" { + fields = append(fields, "interface_reason") + } + for _, field := range fields { + entry := provenance[field] + if got := schemaContractString(entry["precedence"]); got != "reviewed_explicit" { + t.Errorf("%s final %s precedence = %q, want reviewed_explicit", canonical, field, got) + } + if got := schemaContractString(entry["source"]); !strings.HasSuffix(got, "internal/cli/schema_hints/zz-interface-disposition-review.json") { + t.Errorf("%s final %s source = %q, want reviewed disposition source", canonical, field, got) + } + } + } +} + +func schemaInterfaceObject(value any) map[string]any { + object, _ := value.(map[string]any) + return object +} diff --git a/internal/app/schema_local_registry_contract_test.go b/internal/app/schema_local_registry_contract_test.go index 63d7bf2d..90f3645d 100644 --- a/internal/app/schema_local_registry_contract_test.go +++ b/internal/app/schema_local_registry_contract_test.go @@ -17,6 +17,13 @@ func TestEventRegistryDeliversOneTypedSchemaPath(t *testing.T) { "event.status": "event status", "event.stop": "event stop", } + wantModes := map[string]string{ + "event.consume": "composite", + "event.list": "local", + "event.schema": "local", + "event.status": "composite", + "event.stop": "composite", + } canonicals := make([]string, 0, len(paths)) for canonical := range paths { canonicals = append(canonicals, canonical) @@ -38,11 +45,11 @@ func TestEventRegistryDeliversOneTypedSchemaPath(t *testing.T) { if got := schemaContractString(tool["primary_cli_path"]); got != primary { t.Errorf("%s primary path = %q, want %q", canonical, got, primary) } - if tool["interface_mode"] != "local" || tool["availability"] != "available" { - t.Errorf("%s interface disposition = %v/%v, want local/available", canonical, tool["interface_mode"], tool["availability"]) + if tool["interface_mode"] != wantModes[canonical] || tool["availability"] != "available" { + t.Errorf("%s interface disposition = %v/%v, want %s/available", canonical, tool["interface_mode"], tool["availability"], wantModes[canonical]) } if schemaContractString(tool["interface_reason"]) == "" { - t.Errorf("%s has no reviewed local interface reason", canonical) + t.Errorf("%s has no reviewed interface reason", canonical) } } diff --git a/internal/app/schema_minutes_registry_test.go b/internal/app/schema_minutes_registry_test.go new file mode 100644 index 00000000..d3002cd3 --- /dev/null +++ b/internal/app/schema_minutes_registry_test.go @@ -0,0 +1,48 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package app + +import ( + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli" +) + +func TestMinutesFixedScopeLeavesBindToDistinctRegistryTools(t *testing.T) { + root := NewRootCommand() + effective, err := cli.BuildEffectiveCommandRegistry(root) + if err != nil { + t.Fatalf("build EffectiveCommandRegistry: %v", err) + } + bound, err := cli.BindEffectiveCommandRegistry(root, effective) + if err != nil { + t.Fatalf("bind EffectiveCommandRegistry: %v", err) + } + + want := map[string]string{ + "minutes list all": "minutes.list_accessible_minutes", + "minutes list mine": "minutes.list_by_keyword_and_time_range", + "minutes list shared": "minutes.list_shared_minutes", + } + commands := map[any]bool{} + canonicals := map[string]bool{} + for path, canonical := range want { + command, ok := bound.ByCLIPath[path] + if !ok { + t.Errorf("bound registry path %q is missing", path) + continue + } + if command.CanonicalPath != canonical { + t.Errorf("bound registry path %q canonical = %q, want %q", path, command.CanonicalPath, canonical) + } + if command.PrimaryCLIPath != path || len(command.Aliases) != 0 || len(command.AliasCommands) != 0 { + t.Errorf("bound registry path %q retained alias navigation: primary=%q aliases=%v bound_aliases=%v", path, command.PrimaryCLIPath, command.Aliases, command.AliasCommands) + } + commands[command.PrimaryCommand] = true + canonicals[command.CanonicalPath] = true + } + if len(commands) != len(want) || len(canonicals) != len(want) { + t.Fatalf("minutes fixed-scope leaves collapsed: command pointers=%d canonicals=%d, want %d each", len(commands), len(canonicals), len(want)) + } +} diff --git a/internal/app/schema_reviewed_input_contract_test.go b/internal/app/schema_reviewed_input_contract_test.go new file mode 100644 index 00000000..092699fa --- /dev/null +++ b/internal/app/schema_reviewed_input_contract_test.go @@ -0,0 +1,127 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package app + +import ( + "encoding/json" + "reflect" + "testing" +) + +func TestSchemaReviewedInputMetadataUsesExecutableShapes(t *testing.T) { + canonicals := []string{ + "aitable.field_update", + "attendance.adjustment_search", + "attendance.approve_list", + "attendance.group_search", + "attendance.overtime_search", + "attendance.selfsetting_get", + "attendance.vacation_update_type", + "chat.list_owned_or_admin_groups", + "sheet.batch_update", + "sheet.chart_create", + "sheet.chart_update", + "sheet.create_pivot_table", + "sheet.update_pivot_table", + "sheet.range_batch_clear", + "todo.add_todo_reminder", + "todo.get_user_todos_in_current_org", + } + payload := schemaContractPayloadForBoundCanonicals(t, NewRootCommand(), canonicals...) + + optional := false + parameterCases := []struct { + canonical string + flag string + format string + enum []string + noEnum bool + example string + required *bool + requiredWhen string + jsonKind byte + }{ + {canonical: "attendance.approve_list", flag: "start", format: "date"}, + {canonical: "attendance.approve_list", flag: "end", format: "date"}, + {canonical: "attendance.approve_list", flag: "types", noEnum: true, example: "overtime,leave"}, + {canonical: "attendance.adjustment_search", flag: "page", required: &optional}, + {canonical: "attendance.adjustment_search", flag: "limit", required: &optional}, + {canonical: "attendance.group_search", flag: "page", required: &optional}, + {canonical: "attendance.group_search", flag: "limit", required: &optional}, + {canonical: "attendance.overtime_search", flag: "page", required: &optional}, + {canonical: "attendance.overtime_search", flag: "limit", required: &optional}, + {canonical: "attendance.selfsetting_get", flag: "setting-scene", enum: []string{ + "checkRemind", "fastCheck", "checkResultNotify", "lackRemind", + "personalAttendStatNotify", "bossAttendStatNotify", + }}, + {canonical: "chat.list_owned_or_admin_groups", flag: "role", enum: []string{"OWNER", "ADMIN"}, required: &optional}, + {canonical: "chat.list_owned_or_admin_groups", flag: "limit", required: &optional}, + {canonical: "sheet.batch_update", flag: "operations", format: "json", jsonKind: '['}, + {canonical: "sheet.chart_create", flag: "properties", format: "json", jsonKind: '{'}, + {canonical: "sheet.chart_update", flag: "properties", format: "json", jsonKind: '{'}, + {canonical: "sheet.create_pivot_table", flag: "properties", format: "json", jsonKind: '{'}, + {canonical: "sheet.update_pivot_table", flag: "properties", format: "json", jsonKind: '{'}, + {canonical: "sheet.range_batch_clear", flag: "ranges", format: "json", jsonKind: '['}, + {canonical: "todo.add_todo_reminder", flag: "base-time", enum: []string{"dueTime", "customTime"}}, + {canonical: "todo.add_todo_reminder", flag: "due-date-offset", example: "-30", requiredWhen: "base-time is dueTime"}, + {canonical: "todo.add_todo_reminder", flag: "reminder-time-stamp", example: "2026-03-10T18:00:00+08:00", requiredWhen: "base-time is customTime"}, + {canonical: "todo.get_user_todos_in_current_org", flag: "role-types", noEnum: true, example: "creator,executor"}, + } + for _, test := range parameterCases { + t.Run(test.canonical+"/"+test.flag, func(t *testing.T) { + tool := payload.Tools[test.canonical] + parameter := schemaContractMap(tool["parameters"])[test.flag] + if test.format != "" && parameter["format"] != test.format { + t.Fatalf("format = %#v, want %q", parameter["format"], test.format) + } + if test.enum != nil { + if got := schemaContractStringSlice(parameter["enum"]); !reflect.DeepEqual(got, test.enum) { + t.Fatalf("enum = %#v, want %#v", got, test.enum) + } + } + if test.noEnum { + if got := schemaContractStringSlice(parameter["enum"]); len(got) != 0 { + t.Fatalf("enum = %#v, want no scalar enum for a CSV parameter", got) + } + } + if test.example != "" && parameter["example"] != test.example { + t.Fatalf("example = %#v, want %q", parameter["example"], test.example) + } + if test.required != nil && parameter["required"] != *test.required { + t.Fatalf("required = %#v, want %v", parameter["required"], *test.required) + } + if test.requiredWhen != "" && parameter["required_when"] != test.requiredWhen { + t.Fatalf("required_when = %#v, want %q", parameter["required_when"], test.requiredWhen) + } + if test.jsonKind != 0 { + example, ok := parameter["example"].(string) + if !ok || example == "" { + t.Fatalf("example = %#v, want non-empty JSON", parameter["example"]) + } + var decoded any + if err := json.Unmarshal([]byte(example), &decoded); err != nil { + t.Fatalf("example is invalid JSON: %v", err) + } + if example[0] != test.jsonKind { + t.Fatalf("example = %s, want JSON kind %q", example, test.jsonKind) + } + switch value := decoded.(type) { + case []any: + if len(value) == 0 { + t.Fatal("example must not be an empty array") + } + case map[string]any: + if len(value) == 0 { + t.Fatal("example must not be an empty object") + } + } + } + }) + } + + wantUpdateFields := []string{"name", "unit", "paid", "per-hours", "when-can-leave", "visibility-rules"} + assertSchemaContractConstraintGroup(t, payload.Tools["attendance.vacation_update_type"], "require_one_of", wantUpdateFields) + assertSchemaContractConstraintGroup(t, payload.Tools["aitable.field_update"], "require_one_of", []string{"name", "config", "ai-config"}) +} diff --git a/internal/app/schema_safety_contract_test.go b/internal/app/schema_safety_contract_test.go new file mode 100644 index 00000000..326a9d59 --- /dev/null +++ b/internal/app/schema_safety_contract_test.go @@ -0,0 +1,91 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package app + +import ( + "sort" + "testing" +) + +type finalSchemaSafetyWant struct { + canonical string + effect string + risk string + confirmation string + idempotency string +} + +func TestReviewedMutationSafetyReachesFinalSchema(t *testing.T) { + wants := []finalSchemaSafetyWant{ + {canonical: "aitable.form_field_hide", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "idempotent"}, + {canonical: "chat.dismiss_group", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "drive.recycle_restore", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "unknown"}, + {canonical: "minutes.create_speaker_summary", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "unknown"}, + {canonical: "sheet.clear_range", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "sheet.batch_update", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "sheet.range_batch_clear", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "sheet.group_dimension", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "unknown"}, + {canonical: "sheet.sort_filter", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "unknown"}, + {canonical: "sheet.ungroup_dimension", effect: "write", risk: "medium", confirmation: "not_required", idempotency: "unknown"}, + } + assertFinalSchemaSafety(t, wants) +} + +func TestDevAppWriteGuardRequiresFinalSchemaConfirmation(t *testing.T) { + wants := []finalSchemaSafetyWant{ + {canonical: "dev.add_dev_app_members", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.apply_dev_app_permissions", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.create_dev_app", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.create_dev_app_version", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.delete_dev_app", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.disable_dev_app", effect: "write", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.disable_dev_app_robot", effect: "write", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.enable_dev_app", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.enable_dev_app_robot", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.publish_dev_app_version", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.remove_dev_app_members", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.remove_dev_app_permissions", effect: "destructive", risk: "high", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.set_extension_robot_config", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.set_extension_webapp_config", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.submit_robot_create_task", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.subscribe_dev_app_events", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.unsubscribe_dev_app_events", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.update_dev_app", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + {canonical: "dev.update_dev_app_security_config", effect: "write", risk: "medium", confirmation: "user_required", idempotency: "unknown"}, + } + assertFinalSchemaSafety(t, wants) +} + +func assertFinalSchemaSafety(t *testing.T, wants []finalSchemaSafetyWant) { + t.Helper() + canonicals := make([]string, 0, len(wants)) + for _, want := range wants { + canonicals = append(canonicals, want.canonical) + } + sort.Strings(canonicals) + payload := schemaContractPayloadForBoundCanonicals(t, NewRootCommand(), canonicals...) + + for _, want := range wants { + want := want + t.Run(want.canonical, func(t *testing.T) { + tool := payload.Tools[want.canonical] + values := map[string]string{ + "effect": want.effect, + "risk": want.risk, + "confirmation": want.confirmation, + "idempotency": want.idempotency, + } + provenance := schemaContractMap(tool["field_provenance"]) + for field, expected := range values { + if got := schemaContractString(tool[field]); got != expected { + t.Errorf("%s = %q, want %q", field, got, expected) + } + if got := schemaContractString(provenance[field]["precedence"]); got != "reviewed_explicit" { + t.Errorf("%s provenance precedence = %q, want reviewed_explicit", field, got) + } + } + }) + } +} diff --git a/internal/app/schema_sheet_confirmation_runtime_test.go b/internal/app/schema_sheet_confirmation_runtime_test.go new file mode 100644 index 00000000..05230769 --- /dev/null +++ b/internal/app/schema_sheet_confirmation_runtime_test.go @@ -0,0 +1,81 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package app + +import ( + "sort" + "strings" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/helpers" + "github.com/spf13/cobra" +) + +// TestSheetFinalSchemaConfirmationMatchesRuntimeGuards closes the delivery +// invariant from the final typed Schema to the executable Cobra leaf. The +// runtime marker can only be installed by the command-local wrapper that also +// executes the typed confirmation guard. +func TestSheetFinalSchemaConfirmationMatchesRuntimeGuards(t *testing.T) { + snapshot := fullSchemaSnapshotForTest(t) + root := NewRootCommand() + + schemaPaths := make(map[string]string) + for canonical, tool := range snapshot.Tools { + primaryPath := schemaContractString(tool["primary_cli_path"]) + if primaryPath == "" { + primaryPath = schemaContractString(tool["cli_path"]) + } + if !strings.HasPrefix(primaryPath, "sheet ") || schemaContractString(tool["confirmation"]) != "user_required" { + continue + } + if previous := schemaPaths[primaryPath]; previous != "" { + t.Fatalf("final Schema maps both %q and %q to Sheet path %q", previous, canonical, primaryPath) + } + schemaPaths[primaryPath] = canonical + + command := exactCommandForTest(root, primaryPath) + if command == nil { + t.Errorf("%s final Schema path %q has no executable Cobra leaf", canonical, primaryPath) + continue + } + if !helpers.HasSheetMutationConfirmationGuard(command) { + t.Errorf("%s (%s) declares confirmation=user_required but has no command-local runtime guard", canonical, primaryPath) + } + } + if len(schemaPaths) == 0 { + t.Fatal("final Schema contains no Sheet confirmation=user_required leaves") + } + + guardedPaths := make(map[string]bool) + rootPrefix := root.CommandPath() + " " + var visit func(*cobra.Command) + visit = func(command *cobra.Command) { + if helpers.HasSheetMutationConfirmationGuard(command) { + path := strings.TrimPrefix(command.CommandPath(), rootPrefix) + guardedPaths[path] = true + } + for _, child := range command.Commands() { + visit(child) + } + } + visit(root) + + var missingGuards, undeclaredGuards []string + for path, canonical := range schemaPaths { + if !guardedPaths[path] { + missingGuards = append(missingGuards, canonical+" ("+path+")") + } + } + for path := range guardedPaths { + if schemaPaths[path] == "" { + undeclaredGuards = append(undeclaredGuards, path) + } + } + if len(missingGuards) != 0 || len(undeclaredGuards) != 0 { + sort.Strings(missingGuards) + sort.Strings(undeclaredGuards) + t.Fatalf("final Sheet Schema confirmation set differs from command-local runtime guards: missing=%v undeclared=%v", missingGuards, undeclaredGuards) + } +} diff --git a/internal/cli/runtime_schema.go b/internal/cli/runtime_schema.go index ea424978..0e16420e 100644 --- a/internal/cli/runtime_schema.go +++ b/internal/cli/runtime_schema.go @@ -442,8 +442,6 @@ func collectRuntimeSchemaEntriesFromBound(bound BoundCommandRegistry) ([]runtime continue } leaf := command.PrimaryCommand - applyRuntimeSchemaParameterBindings(leaf, command.CanonicalPath) - applyRuntimeSchemaParameterMetadata(leaf, command.CanonicalPath) AnnotateRuntimeConstraints(leaf, runtimeSchemaConstraintsByCanonical[command.CanonicalPath]) parts := splitSchemaPathTokens(command.PrimaryCLIPath) @@ -690,6 +688,7 @@ const ( runtimeSchemaRankDerived = 50 runtimeSchemaRankInference = 100 runtimeSchemaRankMCP = 400 + runtimeSchemaRankCobraHelp = 450 runtimeSchemaRankToolHint = 500 runtimeSchemaRankCobraDefault = 600 runtimeSchemaRankCobraContract = 610 @@ -703,6 +702,7 @@ const ( runtimeSchemaPrecedenceDerived = "derived_resolution" runtimeSchemaPrecedenceInference = "inference" runtimeSchemaPrecedenceMCP = "mcp_metadata" + runtimeSchemaPrecedenceCobraHelp = "cobra_help" runtimeSchemaPrecedenceToolHint = "tool_schema_hint" runtimeSchemaPrecedenceCobra = "cobra_contract" runtimeSchemaPrecedenceNativeAnnotation = "native_annotation" @@ -710,6 +710,7 @@ const ( runtimeSchemaPrecedenceConstraint = "command_constraint" runtimeSchemaPrecedenceVersionedBinding = "versioned_binding" runtimeSchemaPrecedenceReviewedManual = "reviewed_manual" + runtimeSchemaPrecedenceMappingExclusion = "reviewed_mapping_exclusion" ) func runtimeSchemaCandidate(value any, present bool, source string) runtimeSchemaFieldCandidate { @@ -851,6 +852,8 @@ func runtimeSchemaFieldProvenance(candidate runtimeSchemaFieldCandidate) FieldPr func runtimeSchemaSourcePriority(source string) (int, string) { switch strings.TrimSpace(source) { + case "reviewed_mapping_exclusion": + return runtimeSchemaRankVersionedBinding, runtimeSchemaPrecedenceMappingExclusion case "reviewed_manual_hint": return runtimeSchemaRankReviewedManual, runtimeSchemaPrecedenceReviewedManual case "require_one_of_constraint": @@ -870,7 +873,9 @@ func runtimeSchemaSourcePriority(source string) (int, string) { return runtimeSchemaRankToolHint, runtimeSchemaPrecedenceToolHint case "mcp_metadata", "pinned_mcp_metadata": return runtimeSchemaRankMCP, runtimeSchemaPrecedenceMCP - case "flag_name_inference", "usage_required_inference", "usage_format_inference", "cobra_help": + case "cobra_help": + return runtimeSchemaRankCobraHelp, runtimeSchemaPrecedenceCobraHelp + case "flag_name_inference", "usage_required_inference", "usage_format_inference": return runtimeSchemaRankInference, runtimeSchemaPrecedenceInference case "metadata_source_resolution": return runtimeSchemaRankDerived, runtimeSchemaPrecedenceDerived @@ -902,6 +907,34 @@ func runtimeFlagCobraHardRequired(flag *pflag.Flag) bool { return flag != nil && len(flag.Annotations[cobra.BashCompOneRequiredFlag]) > 0 } +func runtimeSchemaParameterMappingKey(canonicalPath, flagName string) string { + return strings.TrimSpace(canonicalPath) + " --" + strings.TrimSpace(flagName) +} + +// runtimeSchemaParameterMappingCandidates resolves the two reviewed, +// versioned property-mapping inputs. An exclusion is an explicit statement +// that the CLI parameter is not a direct MCP property: it therefore supplies +// a present empty candidate (rather than allowing name inference to survive) +// and keeps the review reason in provenance. +func runtimeSchemaParameterMappingCandidates(snapshot schemaParameterBindingSnapshot, canonicalPath, flagName string) (runtimeSchemaFieldCandidate, runtimeSchemaFieldCandidate, error) { + binding := strings.TrimSpace(snapshot.Bindings[strings.TrimSpace(canonicalPath)][strings.TrimSpace(flagName)]) + bindingCandidate := runtimeSchemaStringCandidate(binding, "versioned_parameter_binding") + reason, excluded := snapshot.MappingExclusions[runtimeSchemaParameterMappingKey(canonicalPath, flagName)] + if !excluded { + return bindingCandidate, runtimeSchemaFieldCandidate{}, nil + } + reason = strings.TrimSpace(reason) + if reason == "" { + return runtimeSchemaFieldCandidate{}, runtimeSchemaFieldCandidate{}, fmt.Errorf("reviewed mapping exclusion has no reason") + } + if binding != "" { + return runtimeSchemaFieldCandidate{}, runtimeSchemaFieldCandidate{}, fmt.Errorf("versioned binding %q conflicts with reviewed mapping exclusion", binding) + } + exclusionCandidate := runtimeSchemaCandidate("", true, "reviewed_mapping_exclusion") + exclusionCandidate.ReviewReason = reason + return runtimeSchemaFieldCandidate{}, exclusionCandidate, nil +} + // runtimeCommandParameterSpecs resolves every source into the typed contract // model. Source precedence is value-neutral: a higher-priority source may // intentionally raise or lower required/type/mapping semantics. Cobra's hard @@ -914,12 +947,17 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint params := make([]ParameterSpec, 0) seenParameterNames := map[string]bool{} var resolveErr error - inherited := runtimeSchemaParameterMetadataByCanonical[canonicalPath].Inherited + metadata := runtimeSchemaParameterMetadataByCanonical[canonicalPath] + bindingSnapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + return nil, fmt.Errorf("load reviewed Schema parameter bindings: %w", err) + } + inherited := metadata.Inherited visitRuntimeCommandFlags(cmd, inherited, func(flag *pflag.Flag) { if resolveErr != nil || flag == nil || flag.Hidden || flag.Name == "help" || isGenericPayloadFlag(flag) { return } - manual, manualReason, _, err := runtimeManualSchemaParameter(flag) + manual, manualReason, _, err := runtimeManualSchemaParameter(cmd, flag.Name) if err != nil { resolveErr = fmt.Errorf("flag --%s: %w", flag.Name, err) return @@ -928,8 +966,15 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint if manual.Property != nil { manualProperty = runtimeSchemaManualCandidate(*manual.Property, true, manualReason) } + bindingProperty, excludedProperty, err := runtimeSchemaParameterMappingCandidates(bindingSnapshot, canonicalPath, flag.Name) + if err != nil { + resolveErr = fmt.Errorf("flag --%s: %w", flag.Name, err) + return + } propertyWinner, err := resolveRuntimeSchemaCandidate("property", + excludedProperty, manualProperty, + bindingProperty, runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagBindingPropertyAnnotation), "versioned_parameter_binding"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagPropertyAnnotation), "native_annotation"), runtimeSchemaStringCandidate(lowerCamelFlagName(flag.Name), "flag_name_inference"), @@ -940,7 +985,10 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } property, _ := propertyWinner.Value.(string) hint, _, hasHint := lookupParameterSchemaHint(hints, property, flag.Name) - embeddedParam, hasEmbeddedParam := lookupEmbeddedMCPParam(embeddedParams, property, flag.Name) + embeddedParam, hasEmbeddedParam := embeddedMCPParamMeta{}, false + if strings.TrimSpace(property) != "" { + embeddedParam, hasEmbeddedParam = lookupEmbeddedMCPParam(embeddedParams, property, flag.Name) + } flagName := flag.Name if hasHint && strings.TrimSpace(hint.FlagName) != "" { hintFlagName := strings.TrimSpace(hint.FlagName) @@ -1013,9 +1061,17 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } usageRequired := usageImpliesRequired(flag.Usage) cobraDefaultOptional := (runtimeFlagDefault(flag) != "" || usageImpliesDefault(flag.Usage)) && !usageRequired + typedRequired := false + for _, name := range metadata.Required { + if strings.TrimSpace(name) == flag.Name { + typedRequired = true + break + } + } requiredWinner, err := resolveRuntimeSchemaCandidate("required", manualRequired, constraintRequired, + runtimeSchemaCandidate(true, typedRequired, "typed_parameter_metadata"), runtimeSchemaAnnotatedBoolCandidate(flag, runtimeSchemaFlagMetadataRequiredAnnotation, "typed_parameter_metadata"), runtimeSchemaAnnotatedBoolCandidate(flag, runtimeSchemaFlagRequiredAnnotation, "native_annotation"), runtimeSchemaCandidate(true, runtimeFlagCobraHardRequired(flag), "cobra_hard_required"), @@ -1048,7 +1104,11 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint CLIRequired: runtimeFlagCobraHardRequired(flag), FieldProvenance: fieldProvenance, } - if property != "" { + // An explicit reviewed mapping exclusion is a present winner whose + // value is intentionally empty. Preserve its provenance even though + // the wire payload omits property; otherwise final delivery cannot + // distinguish reviewed absence from an accidentally dropped field. + if propertyWinner.Present { fieldProvenance["property"] = runtimeSchemaFieldProvenance(propertyWinner) } if parameter.CLIRequired { @@ -1069,6 +1129,7 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } requiredWhenWinner, err := resolveRuntimeSchemaCandidate("required_when", manualRequiredWhen, + runtimeSchemaStringCandidate(metadata.RequiredWhen[flag.Name], "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagMetadataRequiredWhenAnnotation), "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagRequiredWhenAnnotation), "native_annotation"), runtimeSchemaStringCandidate(hint.RequiredWhen, "tool_schema_hint"), @@ -1092,6 +1153,7 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } } formatWinner, err := resolveRuntimeSchemaCandidate("format", + runtimeSchemaStringCandidate(metadata.Formats[flag.Name], "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagMetadataFormatAnnotation), "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, "x-cli-format"), "native_annotation"), runtimeSchemaStringCandidate(embeddedParam.Format, "mcp_metadata"), @@ -1108,6 +1170,7 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } enumWinner, err := resolveRuntimeSchemaCandidate("enum", + runtimeSchemaEnumCandidate(metadata.Enums[flag.Name], "typed_parameter_metadata"), runtimeSchemaEnumCandidate(runtimeFlagEnumAnnotation(flag, runtimeSchemaFlagMetadataEnumAnnotation), "typed_parameter_metadata"), runtimeSchemaEnumCandidate(runtimeFlagEnum(flag), "native_annotation"), runtimeSchemaEnumCandidate(embeddedParam.Enum, "mcp_metadata"), @@ -1123,6 +1186,7 @@ func runtimeCommandParameterSpecs(cmd *cobra.Command, canonicalPath string, hint } exampleWinner, err := resolveRuntimeSchemaCandidate("example", + runtimeSchemaStringCandidate(metadata.Examples[flag.Name], "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagMetadataExampleAnnotation), "typed_parameter_metadata"), runtimeSchemaStringCandidate(firstFlagAnnotation(flag, runtimeSchemaFlagExampleAnnotation), "native_annotation"), runtimeSchemaCandidate("", true, "default"), diff --git a/internal/cli/schema_agent_metadata/aitable.json b/internal/cli/schema_agent_metadata/aitable.json index b39d5d3e..8f17796e 100644 --- a/internal/cli/schema_agent_metadata/aitable.json +++ b/internal/cli/schema_agent_metadata/aitable.json @@ -8127,7 +8127,7 @@ "effect": "read", "effect_source": "command-verb", "examples": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ], "field_provenance": { "agent_summary": { @@ -8218,7 +8218,7 @@ }, "examples": { "value": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", @@ -8227,7 +8227,7 @@ "candidates": [ { "value": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", @@ -9922,15 +9922,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10035,46 +10037,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10142,14 +10148,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable form create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -10190,15 +10197,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10285,46 +10294,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10386,14 +10399,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ "Cobra help: dws aitable form delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -10409,7 +10423,7 @@ "目标命令或资源范围不明确时不要使用;应先读取相应列表或详情确认标识。" ], "confirmation": "not_required", - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws aitable form field hide --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --field-id FIELD_ID --hidden true" @@ -10433,15 +10447,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10467,29 +10483,45 @@ }, "confirmation": { "value": "not_required", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "not_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "effect": { - "value": "read", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "read", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -10515,59 +10547,71 @@ }, "idempotency": { "value": "idempotent", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "idempotent", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "idempotent", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10585,6 +10629,13 @@ "selected": true, "review_reason": "AI 语义审阅:依据 Registry 主路径、Cobra help 与 AITable 参考文档明确命令选择边界并校验示例。" }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", @@ -10594,16 +10645,24 @@ ] }, "risk": { - "value": "low", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "low", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -10629,14 +10688,16 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "Cobra help: dws aitable form field hide --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -10677,15 +10738,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10790,46 +10853,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10897,14 +10964,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "Cobra help: dws aitable form field list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -10945,15 +11013,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11058,46 +11128,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11165,14 +11239,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable form field update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -11213,15 +11288,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11326,46 +11403,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11433,14 +11514,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "Cobra help: dws aitable form get --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -11481,15 +11563,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11594,46 +11678,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11701,14 +11789,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "Cobra help: dws aitable form list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -11749,15 +11838,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11862,46 +11953,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11969,14 +12064,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable form questions create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -12017,15 +12113,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -12112,46 +12210,34 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true - } - ] - }, - "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "resolution": "highest_precedence", - "candidates": [ - { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { - "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "value": "aitable.delete_field", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "aitable.delete_field", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -12213,14 +12299,18 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "delete_field" + }, "reviewed": true, "risk": "high", "source_refs": [ "Cobra help: dws aitable form questions delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -12260,15 +12350,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -12373,46 +12465,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -12480,14 +12576,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "Cobra help: dws aitable form share get --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -12528,15 +12625,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -12641,46 +12740,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -12748,14 +12851,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable form share update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -12796,15 +12900,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -12909,46 +13015,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -13016,14 +13126,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable form update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -14066,15 +14177,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14161,46 +14274,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -14262,14 +14379,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection.", "reviewed": true, "risk": "medium", "source_refs": [ "Cobra help: dws aitable record batch-update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -21420,17 +21538,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -21524,17 +21642,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -21546,16 +21664,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -21639,6 +21764,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_aggregate", "skills/mono/references/products/aitable.md", @@ -21680,17 +21806,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -21784,17 +21910,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -21806,16 +21932,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -21899,6 +22032,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_card", "skills/mono/references/products/aitable.md", @@ -21940,17 +22074,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -22044,17 +22178,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -22066,16 +22200,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -22159,6 +22300,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_field_widths", "skills/mono/references/products/aitable.md", @@ -22200,17 +22342,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -22304,17 +22446,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -22326,16 +22468,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -22419,6 +22568,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_fill_color_rule", "skills/mono/references/products/aitable.md", @@ -22460,17 +22610,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -22564,17 +22714,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -22586,16 +22736,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -22679,6 +22836,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_filter", "skills/mono/references/products/aitable.md", @@ -22972,17 +23130,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -23076,17 +23234,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -23098,16 +23256,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -23191,6 +23356,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_group", "skills/mono/references/products/aitable.md", @@ -23736,17 +23902,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -23840,17 +24006,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -23862,16 +24028,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -23955,6 +24128,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_sort", "skills/mono/references/products/aitable.md", @@ -23996,17 +24170,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -24100,17 +24274,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -24122,16 +24296,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -24215,6 +24396,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_timebar", "skills/mono/references/products/aitable.md", @@ -24256,17 +24438,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -24360,17 +24542,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -24382,16 +24564,23 @@ }, "interface_ref": { "value": "aitable.get_views", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "aitable.get_views", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "aitable.get_views", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -24475,6 +24664,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_visible_fields", "skills/mono/references/products/aitable.md", @@ -25122,14 +25312,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -25143,18 +25333,43 @@ } ] }, - "interface_ref": { - "value": "aitable.update_view", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "interface_reason": { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "aitable.update_view", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -25224,11 +25439,8 @@ } }, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -25382,14 +25594,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -25403,18 +25615,43 @@ } ] }, - "interface_ref": { - "value": "aitable.update_view", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "interface_reason": { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "aitable.update_view", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -25484,11 +25721,8 @@ } }, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -25642,14 +25876,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -25663,18 +25897,43 @@ } ] }, - "interface_ref": { - "value": "aitable.update_view", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "interface_reason": { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "aitable.update_view", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -25744,11 +26003,8 @@ } }, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -27698,14 +27954,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -27719,18 +27975,43 @@ } ] }, - "interface_ref": { - "value": "aitable.update_view", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "interface_reason": { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "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.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "aitable.update_view", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -27800,11 +28081,8 @@ } }, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "reviewed": true, "risk": "medium", "source_refs": [ diff --git a/internal/cli/schema_agent_metadata/attendance.json b/internal/cli/schema_agent_metadata/attendance.json index 6ddc4e0a..26e60385 100644 --- a/internal/cli/schema_agent_metadata/attendance.json +++ b/internal/cli/schema_agent_metadata/attendance.json @@ -33,15 +33,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -170,46 +172,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -292,8 +298,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -301,6 +307,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -340,15 +347,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -477,46 +486,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -599,8 +612,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -608,6 +621,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -647,15 +661,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -784,46 +800,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -906,8 +926,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -915,6 +935,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/intent-guide.md", "skills/mono/references/products/attendance-report.md", @@ -956,15 +977,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1093,46 +1116,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1215,8 +1242,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -1224,6 +1251,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -1264,15 +1292,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1383,46 +1413,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1499,8 +1533,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -1509,6 +1543,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -1548,15 +1583,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1685,46 +1722,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1807,8 +1848,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -1816,6 +1857,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -1856,15 +1898,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1993,46 +2037,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -2115,8 +2163,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -2124,6 +2172,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -2164,15 +2213,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2301,46 +2352,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -2423,8 +2478,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -2432,6 +2487,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -2472,15 +2528,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2609,46 +2667,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -2731,8 +2793,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -2740,6 +2802,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -2779,15 +2842,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2916,46 +2981,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3038,8 +3107,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -3047,6 +3116,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -3086,15 +3156,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3223,46 +3295,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3345,8 +3421,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -3354,6 +3430,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -3393,15 +3470,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3530,46 +3609,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3652,8 +3735,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -3661,6 +3744,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -3700,15 +3784,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3837,46 +3923,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3959,8 +4049,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -3968,6 +4058,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -4007,15 +4098,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4144,46 +4237,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4266,8 +4363,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -4276,6 +4373,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -4315,15 +4413,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4452,46 +4552,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4574,8 +4678,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -4583,6 +4687,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -4622,15 +4727,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4759,46 +4866,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4881,8 +4992,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -4890,6 +5001,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -4930,15 +5042,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5067,46 +5181,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -5189,8 +5307,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -5198,6 +5316,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -5238,15 +5357,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5375,46 +5496,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -5497,8 +5622,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -5506,6 +5631,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -5546,15 +5672,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5683,46 +5811,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -5805,8 +5937,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -5814,6 +5946,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -5853,15 +5986,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5990,46 +6125,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -6112,8 +6251,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -6121,6 +6260,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -6160,15 +6300,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6297,46 +6439,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -6419,8 +6565,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -6428,6 +6574,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -6467,15 +6614,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6604,46 +6753,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -6726,8 +6879,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -6735,6 +6888,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -7064,15 +7218,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7183,46 +7339,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -7299,8 +7459,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -7308,6 +7468,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -7348,15 +7509,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7485,46 +7648,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -7607,8 +7774,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -7616,6 +7783,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -7656,15 +7824,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7793,46 +7963,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -7915,8 +8089,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -7924,6 +8098,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -8254,15 +8429,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8391,46 +8568,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -8513,8 +8694,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -8522,6 +8703,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -8562,15 +8744,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8699,46 +8883,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -8821,8 +9009,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -8831,6 +9019,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -8871,15 +9060,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9008,46 +9199,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -9130,8 +9325,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -9139,6 +9334,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -9178,15 +9374,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9323,46 +9521,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -9446,8 +9648,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -9456,6 +9658,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -9761,17 +9964,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -9888,18 +10091,18 @@ ] }, "interface_mode": { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -9909,17 +10112,43 @@ } ] }, - "interface_ref": { - "value": "attendance.get_attendance_summary", - "source": "internal/cli/schema_hints/imported/wukong.json", - "precedence": "imported", + "interface_reason": { + "value": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "attendance.get_attendance_summary", "source": "internal/cli/schema_hints/imported/wukong.json", "precedence": "imported", - "selected": true + "selected": false }, { "value": "attendance.get_attendance_summary", @@ -9996,11 +10225,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", "reviewed": true, "risk": "low", "source_refs": [ @@ -10010,6 +10236,7 @@ "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.attendance.get_attendance_summary", "skills/mono/references/products/attendance-report.md", @@ -10051,15 +10278,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10170,46 +10399,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10286,8 +10519,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -10295,6 +10528,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -10335,15 +10569,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10472,46 +10708,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10594,8 +10834,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -10603,6 +10843,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -10643,15 +10884,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10762,46 +11005,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10878,8 +11125,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -10887,6 +11134,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -10927,15 +11175,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11064,46 +11314,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11186,8 +11440,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -11195,6 +11449,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -11235,15 +11490,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11372,46 +11629,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11494,8 +11755,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -11503,6 +11764,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" diff --git a/internal/cli/schema_agent_metadata/chat.json b/internal/cli/schema_agent_metadata/chat.json index dcccf65e..99ebb61b 100644 --- a/internal/cli/schema_agent_metadata/chat.json +++ b/internal/cli/schema_agent_metadata/chat.json @@ -550,14 +550,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -644,34 +644,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -680,14 +680,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -720,13 +720,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -766,8 +759,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -2027,9 +2020,9 @@ "avoid_when": [ "当前用户只是退出群聊时使用 chat group quit" ], - "confirmation": "not_required", - "effect": "write", - "effect_source": "command-verb", + "confirmation": "user_required", + "effect": "destructive", + "effect_source": "agent-hint", "examples": [ "dws chat group dismiss --group \u003copenConversationId\u003e" ], @@ -2093,30 +2086,46 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { - "value": "write", - "source": "command-verb", - "precedence": "inference_or_default", + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2142,15 +2151,23 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2203,20 +2220,35 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。" + }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { - "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2248,12 +2280,13 @@ "rpc_name": "dismiss_group" }, "reviewed": true, - "risk": "medium", + "risk": "high", "source_refs": [ "cobra-help:dws chat group dismiss", "internal/cli/schema_command_registry.json#chat.dismiss_group", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.chat.dismiss_group", "skills/mono/SKILL.md", @@ -2762,7 +2795,7 @@ "effect": "read", "effect_source": "command-verb", "examples": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ], "field_provenance": { "agent_summary": { @@ -2853,7 +2886,7 @@ }, "examples": { "value": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", @@ -2862,7 +2895,7 @@ "candidates": [ { "value": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", @@ -8517,14 +8550,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8611,34 +8644,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8647,14 +8680,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -8671,13 +8704,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、消息收藏实现和 chat 产品参考补齐 reviewed Agent 选择语义;不改变执行、安全或接口事实。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -8717,8 +8743,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -11472,14 +11498,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11566,34 +11592,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11602,14 +11628,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11626,13 +11652,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、数字游标分页契约和 chat 产品参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -11672,8 +11691,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -14239,14 +14258,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14333,34 +14352,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14369,14 +14388,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -14393,13 +14412,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、取消收藏实现和 chat 产品参考补齐 reviewed Agent 选择语义;明确其不会删除原消息。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -14439,8 +14451,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -17570,17 +17582,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -17673,18 +17685,18 @@ ] }, "interface_mode": { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -17694,17 +17706,43 @@ } ] }, - "interface_ref": { - "value": "chat.search_groups_by_keyword", - "source": "internal/cli/schema_hints/imported/wukong.json", - "precedence": "imported", + "interface_reason": { + "value": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "chat.search_groups_by_keyword", "source": "internal/cli/schema_hints/imported/wukong.json", "precedence": "imported", - "selected": true + "selected": false }, { "value": "chat.search_groups_by_keyword", @@ -17766,11 +17804,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", "reviewed": true, "risk": "low", "source_refs": [ @@ -17779,6 +17814,7 @@ "internal/cli/schema_command_registry.json#chat.search_groups", "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.chat.search_groups", "skills/mono/SKILL.md", diff --git a/internal/cli/schema_agent_metadata/dev.json b/internal/cli/schema_agent_metadata/dev.json index 860ad3d4..54b9e269 100644 --- a/internal/cli/schema_agent_metadata/dev.json +++ b/internal/cli/schema_agent_metadata/dev.json @@ -8,7 +8,7 @@ "avoid_when": [ "配置已有应用或创建机器人建号任务时不要使用" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -36,14 +36,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -68,16 +68,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -95,6 +103,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -125,47 +140,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -174,14 +197,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -217,24 +240,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -260,8 +291,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -272,6 +303,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -315,14 +347,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -417,34 +449,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -453,14 +485,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -493,13 +525,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -539,8 +564,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -593,14 +618,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -626,16 +651,23 @@ }, "confirmation": { "value": "user_required", - "source": "skills/mono/references/products/dev.md", - "precedence": "skill", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "Skill command comment explicitly marks the operation as risky", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "user_required", "source": "skills/mono/references/products/dev.md", "precedence": "skill", - "selected": true, + "selected": false, "review_reason": "Skill command comment explicitly marks the operation as risky" } ] @@ -654,6 +686,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "destructive", "source": "skills/mono/references/products/dev.md", @@ -691,47 +730,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -740,14 +787,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -783,25 +830,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "high", - "source": "skills/mono/references/products/dev.md", - "precedence": "skill", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "Skill command comment explicitly marks the operation as risky", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "high", "source": "skills/mono/references/products/dev.md", "precedence": "skill", - "selected": true, + "selected": false, "review_reason": "Skill command comment explicitly marks the operation as risky" } ] @@ -828,8 +882,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -840,6 +894,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -883,14 +938,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -928,6 +983,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", @@ -950,6 +1012,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -980,47 +1049,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1029,14 +1106,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -1072,10 +1149,10 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -1093,6 +1170,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", @@ -1123,8 +1207,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -1135,6 +1219,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -1150,7 +1235,7 @@ "avoid_when": [ "启用应用内机器人能力使用 dev app robot enable" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -1178,14 +1263,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1210,16 +1295,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -1237,6 +1330,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -1267,47 +1367,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1316,14 +1424,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -1359,24 +1467,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -1402,8 +1518,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -1414,6 +1530,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -1457,14 +1574,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1559,34 +1676,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1595,14 +1712,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -1635,13 +1752,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -1681,8 +1791,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -1708,7 +1818,7 @@ "avoid_when": [ "查询事件码或已有订阅时先使用 dev app event list" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -1736,14 +1846,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1768,16 +1878,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -1795,6 +1913,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -1825,47 +1950,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1874,14 +2007,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -1917,24 +2050,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -1960,8 +2101,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -1972,6 +2113,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -1987,7 +2129,7 @@ "avoid_when": [ "只是查看事件订阅时使用 dev app event list" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -2015,14 +2157,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2047,16 +2189,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2074,6 +2224,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -2104,47 +2261,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2153,14 +2318,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -2196,24 +2361,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2239,8 +2412,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -2251,6 +2424,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -2294,14 +2468,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2396,34 +2570,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2432,14 +2606,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -2472,13 +2646,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -2518,8 +2685,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -2573,14 +2740,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2675,34 +2842,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2711,14 +2878,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -2751,13 +2918,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -2797,8 +2957,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -2824,9 +2984,9 @@ "avoid_when": [ "只查看现有成员时使用 dev app member list" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app member add --unified-app-id \u003cunifiedAppId\u003e --user-ids userId1,userId2 --member-type DEVELOPER --dry-run" ], @@ -2852,14 +3012,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2884,30 +3044,46 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { "value": "write", - "source": "command-verb", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -2933,47 +3109,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2982,14 +3166,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3025,24 +3209,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -3068,8 +3260,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -3080,6 +3272,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -3123,14 +3316,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3217,34 +3410,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3253,14 +3446,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3293,13 +3486,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -3339,8 +3525,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -3394,14 +3580,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3438,6 +3624,13 @@ "precedence": "reviewed_explicit", "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" + }, + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -3454,6 +3647,13 @@ "precedence": "reviewed_explicit", "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" + }, + { + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -3479,47 +3679,49 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", - "selected": true + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3528,14 +3730,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3571,10 +3773,10 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -3591,6 +3793,13 @@ "precedence": "reviewed_explicit", "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" + }, + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -3616,8 +3825,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -3628,6 +3837,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -3643,7 +3853,7 @@ "avoid_when": [ "查找或核对已有权限时使用 dev app permission list" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -3671,14 +3881,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3703,16 +3913,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -3730,6 +3948,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -3760,47 +3985,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3809,14 +4042,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3852,24 +4085,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -3895,8 +4136,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -3907,6 +4148,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -3950,14 +4192,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4052,34 +4294,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4088,14 +4330,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4128,13 +4370,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -4174,8 +4409,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -4229,14 +4464,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4274,6 +4509,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", @@ -4296,6 +4538,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -4326,47 +4575,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4375,14 +4632,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4418,10 +4675,10 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -4439,6 +4696,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", @@ -4469,8 +4733,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -4481,6 +4745,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -4496,7 +4761,7 @@ "avoid_when": [ "机器人建号使用 robot submit,本地建联使用 dev connect" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -4524,14 +4789,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4556,16 +4821,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -4583,6 +4856,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -4613,47 +4893,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4662,14 +4950,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4705,24 +4993,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -4748,8 +5044,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -4760,6 +5056,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -4803,14 +5100,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4848,6 +5145,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", @@ -4870,6 +5174,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -4900,47 +5211,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4949,14 +5268,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4992,10 +5311,10 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -5013,6 +5332,13 @@ "selected": true, "review_reason": "destructive-safety-review marks this tool as reviewed" }, + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", @@ -5043,8 +5369,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -5055,6 +5381,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -5070,7 +5397,7 @@ "avoid_when": [ "建立本地 Stream 连接使用 dev connect" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -5098,14 +5425,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5130,16 +5457,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5157,6 +5492,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -5187,47 +5529,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5236,14 +5586,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -5279,24 +5629,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5322,8 +5680,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -5334,6 +5692,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -5377,14 +5736,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5479,34 +5838,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5515,14 +5874,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -5555,13 +5914,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -5601,8 +5953,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -5656,14 +6008,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5758,34 +6110,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5794,14 +6146,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -5834,13 +6186,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -5880,8 +6225,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -5907,7 +6252,7 @@ "avoid_when": [ "已有任务应先用 robot result 轮询,不能重复提交" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -5935,14 +6280,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5967,16 +6312,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5994,6 +6347,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -6024,47 +6384,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6073,14 +6441,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -6116,24 +6484,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6159,8 +6535,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -6171,6 +6547,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -6186,9 +6563,9 @@ "avoid_when": [ "普通应用名称和描述更新使用 dev app update" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app security config --unified-app-id \u003cunifiedAppId\u003e --ip-whitelist 192.0.2.10 --redirect-urls https://callback.example.invalid/callback --dry-run" ], @@ -6214,14 +6591,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6246,30 +6623,46 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { "value": "write", - "source": "command-verb", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6295,47 +6688,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6344,14 +6745,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -6387,24 +6788,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6430,8 +6839,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -6441,6 +6850,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -6456,7 +6866,7 @@ "avoid_when": [ "机器人、网页或安全配置使用对应专门命令" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -6484,14 +6894,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6516,16 +6926,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6543,6 +6961,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -6573,47 +6998,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6622,14 +7055,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -6665,24 +7098,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6708,8 +7149,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -6720,6 +7161,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -6735,7 +7177,7 @@ "avoid_when": [ "只是查看已有版本时使用 dev app version list" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -6763,14 +7205,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6795,16 +7237,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6822,6 +7272,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -6852,47 +7309,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -6901,14 +7366,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -6944,24 +7409,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -6987,8 +7460,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -6999,6 +7472,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -7042,14 +7516,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7136,34 +7610,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7172,14 +7646,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -7212,13 +7686,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -7258,8 +7725,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -7313,14 +7780,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7407,34 +7874,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7443,14 +7910,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -7483,13 +7950,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -7529,8 +7989,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -7556,7 +8016,7 @@ "avoid_when": [ "未创建版本或仍需选择审批人时不要直接完成发布" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -7584,14 +8044,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7616,16 +8076,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -7643,6 +8111,13 @@ "selected": true, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", @@ -7673,47 +8148,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7722,14 +8205,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -7765,24 +8248,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -7808,8 +8299,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -7820,6 +8311,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -7863,14 +8355,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7965,34 +8457,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8001,14 +8493,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -8041,13 +8533,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -8087,8 +8572,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -8114,9 +8599,9 @@ "avoid_when": [ "只查看当前网页配置时使用 dev app webapp get" ], - "confirmation": "not_required", + "confirmation": "user_required", "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app webapp config --unified-app-id \u003cunifiedAppId\u003e --homepage-url https://example.com --dry-run" ], @@ -8142,14 +8627,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8174,30 +8659,46 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { "value": "write", - "source": "command-verb", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -8223,47 +8724,55 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8272,14 +8781,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -8315,24 +8824,32 @@ }, { "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -8358,8 +8875,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -8370,6 +8887,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -8413,14 +8931,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8507,34 +9025,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8543,14 +9061,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -8583,13 +9101,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -8629,8 +9140,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ diff --git a/internal/cli/schema_agent_metadata/doc.json b/internal/cli/schema_agent_metadata/doc.json index cdec9666..f45e6e5c 100644 --- a/internal/cli/schema_agent_metadata/doc.json +++ b/internal/cli/schema_agent_metadata/doc.json @@ -1590,14 +1590,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1626,14 +1626,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "user_required", @@ -1649,14 +1649,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "destructive", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "destructive", @@ -1698,14 +1698,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -1716,34 +1716,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1752,14 +1752,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1777,19 +1777,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、不可恢复的运行时确认语义和 doc comment 参考补齐 reviewed Agent 选择语义;示例不绕过用户确认。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -1798,14 +1791,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "high", @@ -1838,8 +1831,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -2422,14 +2415,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2516,34 +2509,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -2552,14 +2545,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -2576,13 +2569,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、评论更新参数和 doc comment 参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -2622,8 +2608,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -4429,15 +4415,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4542,46 +4530,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4649,8 +4641,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -4658,6 +4650,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc import get", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/doc.md", "skills/mono/references/products/doc/doc-import.md" @@ -7734,15 +7727,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -7831,46 +7826,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -7932,8 +7931,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -7941,6 +7940,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template apply", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "use_when": [ @@ -7980,15 +7980,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8077,46 +8079,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -8178,8 +8184,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -8187,6 +8193,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "use_when": [ @@ -8226,15 +8233,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -8323,46 +8332,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -8424,8 +8437,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -8433,6 +8446,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template search", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "use_when": [ @@ -8995,15 +9009,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9092,46 +9108,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -9193,8 +9213,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -9202,6 +9222,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "use_when": [ @@ -9240,15 +9261,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9277,14 +9300,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -9299,14 +9322,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "destructive", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "read", @@ -9341,14 +9364,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "idempotent", @@ -9359,46 +9382,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -9421,7 +9448,7 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": false, @@ -9436,14 +9463,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "low", @@ -9475,8 +9502,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -9484,6 +9511,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version revert", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json" ], @@ -9523,15 +9551,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9618,46 +9648,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -9719,8 +9753,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -9728,6 +9762,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version save", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "use_when": [ diff --git a/internal/cli/schema_agent_metadata/drive.json b/internal/cli/schema_agent_metadata/drive.json index 3f25fe4d..a3435c95 100644 --- a/internal/cli/schema_agent_metadata/drive.json +++ b/internal/cli/schema_agent_metadata/drive.json @@ -1432,14 +1432,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -1453,17 +1453,43 @@ } ] }, - "interface_ref": { - "value": "drive.list_files", - "source": "internal/cli/schema_hints/imported/wukong.json", - "precedence": "imported", + "interface_reason": { + "value": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "drive.list_files", "source": "internal/cli/schema_hints/imported/wukong.json", "precedence": "imported", - "selected": true + "selected": false }, { "value": "drive.list_files", @@ -1525,11 +1551,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "drive", - "rpc_name": "list_files" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", "reviewed": true, "risk": "low", "source_refs": [ @@ -3384,15 +3407,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3497,46 +3522,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3604,8 +3633,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -3613,6 +3642,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish get", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -3653,15 +3683,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3690,14 +3722,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -3718,14 +3750,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "write", @@ -3768,14 +3800,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -3792,46 +3824,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -3854,7 +3890,7 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": false, @@ -3869,14 +3905,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "medium", @@ -3914,8 +3950,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -3923,6 +3959,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish set", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" @@ -3963,15 +4000,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4000,14 +4039,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -4028,14 +4067,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "write", @@ -4076,14 +4115,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -4100,46 +4139,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4162,7 +4205,7 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": false, @@ -4177,14 +4220,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "medium", @@ -4222,8 +4265,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -4231,6 +4274,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish unset", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" @@ -4272,15 +4316,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4369,46 +4415,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4470,8 +4520,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -4479,6 +4529,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recent", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -4519,15 +4570,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4634,46 +4687,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4741,8 +4798,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -4750,6 +4807,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recycle list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -4765,7 +4823,7 @@ "只需查看回收站时使用 dws drive recycle list;未明确条目 ID 时不要还原" ], "confirmation": "not_required", - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws drive recycle restore --id RECYCLE_ITEM_ID --format json" @@ -4789,15 +4847,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4823,29 +4883,45 @@ }, "confirmation": { "value": "not_required", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "not_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "effect": { - "value": "read", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "read", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -4870,60 +4946,72 @@ ] }, "idempotency": { - "value": "idempotent", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "idempotent", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -4941,6 +5029,13 @@ "selected": true, "review_reason": "依据真实 Cobra leaf、对应产品 Skill 与现有 structured hints 审阅选择语义和示例;不改变命令身份、参数、安全或接口事实。" }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", @@ -4950,16 +5045,24 @@ ] }, "risk": { - "value": "low", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "low", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -4984,16 +5087,18 @@ ] } }, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "CommandRegistry:canonical_path=drive.recycle_restore", "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recycle restore", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -5537,14 +5642,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5573,14 +5678,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "not_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -5589,14 +5694,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -5625,46 +5730,46 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "non_idempotent", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5673,14 +5778,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -5698,19 +5803,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、目标文件夹/知识库参数和 drive 产品参考补齐 reviewed Agent 选择语义与示例。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -5719,14 +5817,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "medium", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -5752,8 +5850,8 @@ } }, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -5803,14 +5901,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5897,34 +5995,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -5933,14 +6031,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -5957,13 +6055,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、节点统计返回语义和 drive 产品参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -6003,8 +6094,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ diff --git a/internal/cli/schema_agent_metadata/event.json b/internal/cli/schema_agent_metadata/event.json index a60a7c7d..d2980565 100644 --- a/internal/cli/schema_agent_metadata/event.json +++ b/internal/cli/schema_agent_metadata/event.json @@ -33,17 +33,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -136,50 +136,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -244,14 +244,15 @@ } }, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", "reviewed": true, "risk": "medium", "source_refs": [ "cobra-help:dws event consume --help", "internal/cli/schema_command_registry.json#event.consume", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" @@ -810,17 +811,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -931,50 +932,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1045,14 +1046,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", "reviewed": true, "risk": "low", "source_refs": [ "cobra-help:dws event status --help", "internal/cli/schema_command_registry.json#event.status", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" @@ -1093,17 +1095,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1214,50 +1216,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1328,14 +1330,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", "reviewed": true, "risk": "high", "source_refs": [ "cobra-help:dws event stop --help", "internal/cli/schema_command_registry.json#event.stop", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" diff --git a/internal/cli/schema_agent_metadata/index.json b/internal/cli/schema_agent_metadata/index.json index 3cb9b743..e110accd 100644 --- a/internal/cli/schema_agent_metadata/index.json +++ b/internal/cli/schema_agent_metadata/index.json @@ -1,17 +1,17 @@ { "version": 1, - "source_hash": "sha256:254cd3116b6f945f47a190844f79795121a3b947c2444086091a337b377bd01a", - "surface_hash": "sha256:aa9f26facd9fa58ec8e7998d22f765352075fd36cc1b6080289c72db3af3427b", + "source_hash": "sha256:5a7c35d3732f8d47b42c3542cf70ee95abccc60ad7c379194b63760f5785f1ef", + "surface_hash": "sha256:efb97fcad7968fe1375d729a232df9978adcb1ec71eeaca1e18326d047906a99", "coverage": { "surface_products": 21, "products_with_metadata": 21, - "surface_tools": 559, - "tools_with_metadata": 559, - "tools_with_agent_summary": 559, - "tools_with_use_when": 559, - "tools_with_avoid_when": 559, - "tools_with_examples": 559, - "tools_with_interface_mode": 559, + "surface_tools": 561, + "tools_with_metadata": 561, + "tools_with_agent_summary": 561, + "tools_with_use_when": 561, + "tools_with_avoid_when": 561, + "tools_with_examples": 561, + "tools_with_interface_mode": 561, "unmatched_skill_tools": 154, "unreviewed_skill_tools": 40 }, diff --git a/internal/cli/schema_agent_metadata/minutes.json b/internal/cli/schema_agent_metadata/minutes.json index 4fd57752..5e988640 100644 --- a/internal/cli/schema_agent_metadata/minutes.json +++ b/internal/cli/schema_agent_metadata/minutes.json @@ -2244,12 +2244,244 @@ "当用户需要查询当前用户配置的所有听记热词列表,并能提供命令所需的查询条件时使用。" ] }, - "minutes list mine": { - "agent_summary": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "minutes list all": { + "agent_summary": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "availability": "available", "avoid_when": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" + ], + "confirmation": "not_required", + "effect": "read", + "effect_source": "command-verb", + "examples": [ + "dws minutes list all --format json" + ], + "field_provenance": { + "agent_summary": { + "value": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。" + } + ] + }, + "availability": { + "value": "available", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "available", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "avoid_when": { + "value": [ + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。" + } + ] + }, + "confirmation": { + "value": "not_required", + "source": "risk-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "not_required", + "source": "risk-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "effect": { + "value": "read", + "source": "command-verb", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "read", + "source": "command-verb", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "examples": { + "value": [ + "dws minutes list all --format json" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "dws minutes list all --format json" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。" + } + ] + }, + "idempotency": { + "value": "idempotent", + "source": "effect-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "idempotent", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "interface_mode": { + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": "minutes.list_by_keyword_and_time_range", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "minutes.list_by_keyword_and_time_range", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "reviewed": { + "value": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。" + } + ] + }, + "risk": { + "value": "low", + "source": "effect-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "low", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "use_when": { + "value": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。" + } + ] + } + }, + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "reviewed": true, + "risk": "low", + "source_refs": [ + "cobra-help:dws minutes list all --help", + "internal/cli/schema_command_registry.json", + "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_manual_hints.json", + "skills/mono/references/best_practices/07-minutes.md", + "skills/mono/references/products/minutes.md" + ], + "use_when": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ] + }, + "minutes list mine": { + "agent_summary": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" ], "confirmation": "not_required", "effect": "read", @@ -2259,34 +2491,34 @@ ], "field_provenance": { "agent_summary": { - "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "value": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "candidates": [ { - "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "value": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "selected": true, - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。" } ] }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -2298,21 +2530,21 @@ }, "avoid_when": { "value": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "candidates": [ { "value": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "selected": true, - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。" } ] }, @@ -2351,7 +2583,7 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "candidates": [ { "value": [ @@ -2360,7 +2592,7 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "selected": true, - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。" } ] }, @@ -2380,17 +2612,17 @@ }, "interface_mode": { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -2402,15 +2634,23 @@ }, "interface_ref": { "value": "minutes.list_by_keyword_and_time_range", - "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", - "precedence": "mcp_fallback", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "minutes.list_by_keyword_and_time_range", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + }, { "value": "minutes.list_by_keyword_and_time_range", "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", "precedence": "mcp_fallback", - "selected": true + "selected": false } ] }, @@ -2419,14 +2659,14 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "candidates": [ { "value": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "selected": true, - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。" } ] }, @@ -2446,21 +2686,21 @@ }, "use_when": { "value": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "candidates": [ { "value": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", "selected": true, - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。" } ] } @@ -2477,13 +2717,246 @@ "cobra-help:dws minutes list mine --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range", "skills/mono/references/best_practices/07-minutes.md", "skills/mono/references/products/minutes.md" ], "use_when": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + }, + "minutes list shared": { + "agent_summary": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "confirmation": "not_required", + "effect": "read", + "effect_source": "command-verb", + "examples": [ + "dws minutes list shared --format json" + ], + "field_provenance": { + "agent_summary": { + "value": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。" + } + ] + }, + "availability": { + "value": "available", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "available", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "avoid_when": { + "value": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。" + } + ] + }, + "confirmation": { + "value": "not_required", + "source": "risk-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "not_required", + "source": "risk-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "effect": { + "value": "read", + "source": "command-verb", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "read", + "source": "command-verb", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "examples": { + "value": [ + "dws minutes list shared --format json" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "dws minutes list shared --format json" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。" + } + ] + }, + "idempotency": { + "value": "idempotent", + "source": "effect-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "idempotent", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "interface_mode": { + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "mcp", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": "minutes.list_by_keyword_and_time_range", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "candidates": [ + { + "value": "minutes.list_by_keyword_and_time_range", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "reviewed": { + "value": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。" + } + ] + }, + "risk": { + "value": "low", + "source": "effect-default", + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "candidates": [ + { + "value": "low", + "source": "effect-default", + "precedence": "inference_or_default", + "selected": true + } + ] + }, + "use_when": { + "value": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "candidates": [ + { + "value": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ], + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "precedence": "reviewed_manual", + "selected": true, + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。" + } + ] + } + }, + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "reviewed": true, + "risk": "low", + "source_refs": [ + "cobra-help:dws minutes list shared --help", + "internal/cli/schema_command_registry.json", + "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_manual_hints.json", + "skills/mono/references/best_practices/07-minutes.md", + "skills/mono/references/products/minutes.md" + ], + "use_when": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" ] }, "minutes mind-graph create": { @@ -3534,14 +4007,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3628,34 +4101,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3664,14 +4137,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3704,13 +4177,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -3750,8 +4216,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -3805,14 +4271,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3899,34 +4365,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -3935,14 +4401,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -3975,13 +4441,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -4021,8 +4480,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -4076,14 +4535,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4178,34 +4637,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4214,14 +4673,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4254,13 +4713,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -4300,8 +4752,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -4355,14 +4807,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4457,34 +4909,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -4493,14 +4945,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -4533,13 +4985,6 @@ "precedence": "reviewed_explicit", "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -4579,8 +5024,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -5114,8 +5559,8 @@ "当用户实际需要查询发言人段落总结任务的结果,返回每位发言人的发言汇总时,改用 dws minutes speaker summary get。" ], "confirmation": "not_required", - "effect": "read", - "effect_source": "command-verb", + "effect": "write", + "effect_source": "agent-hint", "examples": [ "dws minutes speaker summary create --ids '\u003cuuid1,uuid2\u003e'" ], @@ -5180,29 +5625,45 @@ }, "confirmation": { "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "not_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { - "value": "read", - "source": "command-verb", - "precedence": "inference_or_default", + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "read", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5227,16 +5688,24 @@ ] }, "idempotency": { - "value": "idempotent", - "source": "effect-default", - "precedence": "inference_or_default", + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "idempotent", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5289,20 +5758,35 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据 reviewed CommandRegistry、dws minutes speaker summary create --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { - "value": "low", - "source": "effect-default", - "precedence": "inference_or_default", + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "low", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -5327,19 +5811,20 @@ ] } }, - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "minutes", "rpc_name": "create_speaker_summary" }, "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "cobra-help:dws minutes speaker summary create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.minutes.create_speaker_summary", "skills/mono/references/best_practices/10-minutes-speaker-match.md", diff --git a/internal/cli/schema_agent_metadata/sheet.json b/internal/cli/schema_agent_metadata/sheet.json index a48ac142..d1177516 100644 --- a/internal/cli/schema_agent_metadata/sheet.json +++ b/internal/cli/schema_agent_metadata/sheet.json @@ -493,8 +493,8 @@ "avoid_when": [ "当用户实际需要更新钉钉在线电子表格指定区域内的单元格内容时,改用 dws sheet range update。" ], - "confirmation": "not_required", - "effect": "write", + "confirmation": "user_required", + "effect": "destructive", "effect_source": "agent-hint", "examples": [ "dws sheet batch-update --node NODE_ID --operations '[\n{\"toolName\":\"range clear\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B3\",\"type\":\"content\"}},\n{\"toolName\":\"range update\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1\",\"values\":[[{\"type\":\"text\",\"text\":\"hello\"}]]}},\n{\"toolName\":\"merge-cells\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B1\",\"merge-type\":\"mergeAll\"}}\n]'" @@ -518,15 +518,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -551,16 +553,24 @@ ] }, "confirmation": { - "value": "not_required", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { - "value": "not_required", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, + { + "value": "user_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false }, { "value": "not_required", @@ -571,16 +581,24 @@ ] }, "effect": { - "value": "write", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { - "value": "write", + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, + { + "value": "destructive", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false }, { "value": "write", @@ -612,15 +630,23 @@ }, "idempotency": { "value": "unknown", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false }, { "value": "unknown", @@ -631,46 +657,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -688,6 +718,13 @@ "selected": true, "review_reason": "依据 reviewed CommandRegistry、dws sheet batch-update --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", @@ -697,16 +734,24 @@ ] }, "risk": { - "value": "medium", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { - "value": "medium", + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, + { + "value": "high", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false }, { "value": "medium", @@ -738,14 +783,16 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, - "risk": "medium", + "risk": "high", "source_refs": [ "cobra-help:dws sheet batch-update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-batch-operations.md" @@ -786,15 +833,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -899,46 +948,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1006,14 +1059,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "cobra-help:dws sheet chart create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -1054,15 +1108,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1091,14 +1147,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -1119,14 +1175,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "write", @@ -1167,14 +1223,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -1191,46 +1247,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1253,7 +1313,7 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": false, @@ -1268,14 +1328,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "medium", @@ -1313,14 +1373,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ "cobra-help:dws sheet chart delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", @@ -1362,15 +1423,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1475,46 +1538,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1582,14 +1649,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "cobra-help:dws sheet chart list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -1630,15 +1698,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -1743,46 +1813,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -1850,14 +1924,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "cobra-help:dws sheet chart update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -6841,7 +6916,7 @@ "当用户实际需要在工作表中创建全局筛选时,改用 dws sheet filter create。" ], "confirmation": "not_required", - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet filter sort --node NODE_ID --sheet-id SHEET_ID --column 0 --ascending" @@ -6928,14 +7003,14 @@ ] }, "effect": { - "value": "read", + "value": "write", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "candidates": [ { - "value": "read", + "value": "write", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -6970,14 +7045,14 @@ ] }, "idempotency": { - "value": "idempotent", + "value": "unknown", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "candidates": [ { - "value": "idempotent", + "value": "unknown", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -7051,14 +7126,14 @@ ] }, "risk": { - "value": "low", + "value": "medium", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "candidates": [ { - "value": "low", + "value": "medium", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -7093,14 +7168,14 @@ ] } }, - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "sheet", "rpc_name": "sort_filter" }, "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "cobra-help:dws sheet filter sort --help", "internal/cli/schema_command_registry.json", @@ -9766,14 +9841,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9891,34 +9966,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -9927,14 +10002,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ], "overridden_candidates": [ @@ -9968,13 +10043,6 @@ "selected": false, "review_reason": "dws-command-surface-review marks this tool as reviewed" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", @@ -10028,8 +10096,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -10823,7 +10891,7 @@ "当用户实际需要取消钉钉表格指定工作表中的连续整行或整列分组时,改用 dws sheet ungroup-dimension。" ], "confirmation": "not_required", - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet group-dimension --node NODE_ID --sheet-id SHEET_ID --range 3:7" @@ -10847,15 +10915,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -10881,29 +10951,45 @@ }, "confirmation": { "value": "not_required", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "not_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "effect": { - "value": "read", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "read", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -10928,60 +11014,72 @@ ] }, "idempotency": { - "value": "idempotent", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "idempotent", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -10999,6 +11097,13 @@ "selected": true, "review_reason": "依据 reviewed CommandRegistry、dws sheet group-dimension --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", @@ -11008,16 +11113,24 @@ ] }, "risk": { - "value": "low", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "low", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -11042,15 +11155,17 @@ ] } }, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "cobra-help:dws sheet group-dimension --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-dimension-operations.md" @@ -11094,14 +11209,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11130,14 +11245,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "not_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -11146,14 +11261,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -11182,46 +11297,46 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "idempotent", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -11230,14 +11345,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -11255,19 +11370,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、固定 visibility=hidden 的实现和 sheet workbook 参考补齐 reviewed Agent 选择语义。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -11276,14 +11384,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "medium", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -11309,8 +11417,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -13340,14 +13448,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -13376,14 +13484,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "not_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -13398,14 +13506,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "write", @@ -13440,14 +13548,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "non_idempotent", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -13458,34 +13566,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -13494,14 +13602,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -13519,19 +13627,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、透视表属性校验和 sheet pivot-table 参考补齐 reviewed Agent 选择语义与有效示例。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -13540,14 +13641,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "medium", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "medium", @@ -13579,8 +13680,8 @@ } }, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -13630,14 +13731,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -13666,14 +13767,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "user_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "not_required", @@ -13688,14 +13789,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "destructive", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "write", @@ -13730,14 +13831,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "unknown", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "unknown", @@ -13748,34 +13849,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -13784,14 +13885,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -13809,19 +13910,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、不可恢复的运行时确认语义和 sheet pivot-table 参考补齐 reviewed Agent 选择语义;示例不绕过用户确认。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -13830,14 +13924,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "high", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" }, { "value": "medium", @@ -13869,8 +13963,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ @@ -13920,14 +14014,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14014,34 +14108,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14050,14 +14144,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -14074,13 +14168,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、列表/详情双用途参数和 sheet pivot-table 参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -14120,8 +14207,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -14170,14 +14257,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14264,34 +14351,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14300,14 +14387,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -14324,13 +14411,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、增量属性配置和 sheet pivot-table 参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -14370,8 +14450,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -14417,15 +14497,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -14464,7 +14546,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed" }, { - "value": "not_required", + "value": "user_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", "selected": false @@ -14492,7 +14574,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed" }, { - "value": "write", + "value": "destructive", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", "selected": false @@ -14554,46 +14636,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -14641,7 +14727,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed" }, { - "value": "medium", + "value": "high", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", "selected": false @@ -14676,14 +14762,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "high", "source_refs": [ "cobra-help:dws sheet range batch-clear --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", @@ -14852,14 +14939,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -14873,18 +14960,43 @@ } ] }, - "interface_ref": { - "value": "sheet.update_range", - "source": "internal/cli/schema_hints/interface-refs.json", - "precedence": "explicit", + "interface_reason": { + "value": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "sheet.update_range", "source": "internal/cli/schema_hints/interface-refs.json", "precedence": "explicit", - "selected": true, + "selected": false, "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source" }, { @@ -14962,11 +15074,8 @@ } }, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "update_range" - }, + "interface_mode": "composite", + "interface_reason": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -14992,9 +15101,9 @@ "avoid_when": [ "当用户实际需要基于源数据范围自动填充到目标范围时,改用 dws sheet range fill。" ], - "confirmation": "not_required", - "effect": "write", - "effect_source": "command-verb", + "confirmation": "user_required", + "effect": "destructive", + "effect_source": "agent-hint", "examples": [ "dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range A1:B3" ], @@ -15058,30 +15167,46 @@ ] }, "confirmation": { - "value": "not_required", - "source": "risk-default", - "precedence": "inference_or_default", + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "user_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "risk-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, "effect": { - "value": "write", - "source": "command-verb", - "precedence": "inference_or_default", + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "destructive", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "write", "source": "command-verb", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -15107,15 +15232,23 @@ }, "idempotency": { "value": "unknown", - "source": "effect-default", - "precedence": "inference_or_default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "unknown", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -15168,20 +15301,35 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据 reviewed CommandRegistry、dws sheet range clear --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" + }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "risk": { - "value": "medium", - "source": "effect-default", - "precedence": "inference_or_default", + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "high", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "medium", "source": "effect-default", "precedence": "inference_or_default", - "selected": true + "selected": false } ] }, @@ -15213,12 +15361,13 @@ "rpc_name": "clear_range" }, "reviewed": true, - "risk": "medium", + "risk": "high", "source_refs": [ "cobra-help:dws sheet range clear --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.sheet.clear_range", "skills/mono/references/products/sheet.md", @@ -16088,17 +16237,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "available", @@ -16215,18 +16364,18 @@ ] }, "interface_mode": { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", - "source": "internal/cli/schema_hints/selection-review.json", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" }, { "value": "mcp", @@ -16236,17 +16385,43 @@ } ] }, - "interface_ref": { - "value": "sheet.get_range", - "source": "internal/cli/schema_hints/imported/wukong.json", - "precedence": "imported", + "interface_reason": { + "value": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ + { + "value": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "sheet.get_range", "source": "internal/cli/schema_hints/imported/wukong.json", "precedence": "imported", - "selected": true + "selected": false }, { "value": "sheet.get_range", @@ -16323,11 +16498,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_range" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", "reviewed": true, "risk": "low", "source_refs": [ @@ -16337,6 +16509,7 @@ "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.sheet.range_read", @@ -17739,14 +17912,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -17775,14 +17948,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "not_required", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -17791,14 +17964,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "write", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -17827,46 +18000,46 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "idempotent", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -17875,14 +18048,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -17900,19 +18073,12 @@ "selected": true, "review_reason": "依据新增的真实 Cobra leaf、固定 visibility=visible 的实现和 sheet workbook 参考补齐 reviewed Agent 选择语义。" }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" - }, { "value": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": false, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -17921,14 +18087,14 @@ "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ { "value": "medium", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" } ] }, @@ -17954,8 +18120,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -18005,14 +18171,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18099,34 +18265,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18135,14 +18301,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -18159,13 +18325,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、table-read 兼容 alias、结构化返回契约和 sheet read 参考补齐 reviewed Agent 选择语义。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -18205,8 +18364,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ @@ -18255,14 +18414,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18349,34 +18508,34 @@ ] }, "interface_mode": { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", + "value": "composite", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18385,14 +18544,14 @@ "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -18409,13 +18568,6 @@ "precedence": "reviewed_manual", "selected": true, "review_reason": "依据新增的真实 Cobra leaf、table-write 兼容 alias、JSON 输入解析和 sheet write 参考补齐 reviewed Agent 选择语义与示例。" - }, - { - "value": true, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "precedence": "reviewed_explicit", - "selected": false, - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed" } ] }, @@ -18455,8 +18607,8 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ @@ -18502,15 +18654,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18597,46 +18751,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -18698,14 +18856,15 @@ } }, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "medium", "source_refs": [ "cobra-help:dws sheet template apply --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -18746,15 +18905,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -18841,46 +19002,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -18942,14 +19107,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "cobra-help:dws sheet template list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -18990,15 +19156,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -19085,46 +19253,50 @@ ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -19186,14 +19358,15 @@ } }, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, "risk": "low", "source_refs": [ "cobra-help:dws sheet template search --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -19210,7 +19383,7 @@ "当用户实际需要对钉钉表格指定工作表中的连续整行或整列创建分组时,改用 dws sheet group-dimension。" ], "confirmation": "not_required", - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet ungroup-dimension --node NODE_ID --sheet-id SHEET_ID --range 3:7" @@ -19234,15 +19407,17 @@ }, "availability": { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { "value": "available", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, @@ -19268,29 +19443,45 @@ }, "confirmation": { "value": "not_required", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "not_required", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "not_required", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "effect": { - "value": "read", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "write", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "read", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -19315,60 +19506,72 @@ ] }, "idempotency": { - "value": "idempotent", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "unknown", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "idempotent", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, "interface_mode": { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "local", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "composite", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_reason": { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "candidates": [ { - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", - "selected": true + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source" } ] }, "interface_ref": { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "candidates": [ { "value": null, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "precedence": "reviewed_explicit", "selected": true, - "review_reason": "final interface mode local forbids a direct MCP interface_ref" + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" } ] }, @@ -19386,6 +19589,13 @@ "selected": true, "review_reason": "依据 reviewed CommandRegistry、dws sheet ungroup-dimension --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。" }, + { + "value": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": false, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", @@ -19395,16 +19605,24 @@ ] }, "risk": { - "value": "low", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "precedence": "unreviewed_explicit", + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "candidates": [ + { + "value": "medium", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed" + }, { "value": "low", "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "precedence": "unreviewed_explicit", - "selected": true + "selected": false } ] }, @@ -19429,15 +19647,17 @@ ] } }, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "reviewed": true, - "risk": "low", + "risk": "medium", "source_refs": [ "cobra-help:dws sheet ungroup-dimension --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-dimension-operations.md" diff --git a/internal/cli/schema_agent_metadata/todo.json b/internal/cli/schema_agent_metadata/todo.json index 8e062eda..c04ac5d4 100644 --- a/internal/cli/schema_agent_metadata/todo.json +++ b/internal/cli/schema_agent_metadata/todo.json @@ -1504,8 +1504,8 @@ "effect": "write", "effect_source": "command-verb", "examples": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ], "field_provenance": { "agent_summary": { @@ -1596,8 +1596,8 @@ }, "examples": { "value": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", @@ -1606,8 +1606,8 @@ "candidates": [ { "value": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ], "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "precedence": "reviewed_manual", diff --git a/internal/cli/schema_agent_metadata/wiki.json b/internal/cli/schema_agent_metadata/wiki.json index 5bed69bc..e265a2c0 100644 --- a/internal/cli/schema_agent_metadata/wiki.json +++ b/internal/cli/schema_agent_metadata/wiki.json @@ -3481,14 +3481,14 @@ ] }, "interface_mode": { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ { - "value": "mcp", + "value": "composite", "source": "internal/cli/schema_hints/selection-review.json", "precedence": "reviewed_explicit", "selected": true, @@ -3502,17 +3502,43 @@ } ] }, - "interface_ref": { - "value": "wiki.list_wikiSpaces", - "source": "internal/cli/schema_mcp_metadata.json#tools.wiki.list_wikiSpaces.interface_ref", - "precedence": "mcp_fallback", + "interface_reason": { + "value": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "candidates": [ + { + "value": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source" + } + ] + }, + "interface_ref": { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "candidates": [ + { + "value": null, + "source": "internal/cli/schema_hints/selection-review.json", + "precedence": "reviewed_explicit", + "selected": true, + "review_reason": "final interface mode composite forbids a direct MCP interface_ref" + } + ], + "overridden_candidates": [ { "value": "wiki.list_wikiSpaces", "source": "internal/cli/schema_mcp_metadata.json#tools.wiki.list_wikiSpaces.interface_ref", "precedence": "mcp_fallback", - "selected": true + "selected": false } ] }, @@ -3568,11 +3594,8 @@ } }, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "wiki", - "rpc_name": "list_wikiSpaces" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", "reviewed": true, "risk": "low", "source_refs": [ diff --git a/internal/cli/schema_agent_metadata_audit.json b/internal/cli/schema_agent_metadata_audit.json index a4169ac8..a90f6d3b 100644 --- a/internal/cli/schema_agent_metadata_audit.json +++ b/internal/cli/schema_agent_metadata_audit.json @@ -1,11 +1,11 @@ { "version": 1, - "source_hash": "sha256:254cd3116b6f945f47a190844f79795121a3b947c2444086091a337b377bd01a", - "surface_hash": "sha256:aa9f26facd9fa58ec8e7998d22f765352075fd36cc1b6080289c72db3af3427b", + "source_hash": "sha256:5a7c35d3732f8d47b42c3542cf70ee95abccc60ad7c379194b63760f5785f1ef", + "surface_hash": "sha256:efb97fcad7968fe1375d729a232df9978adcb1ec71eeaca1e18326d047906a99", "source_files": 105, "hint_files": 16, "hint_products": 44, - "hint_tools": 2093, + "hint_tools": 2213, "interface_metadata": { "source": "mcp-tools-list+cli-registry", "revision": "4574f7022c32cf4c033e9b7b4156e2fec815fed8", @@ -29,13 +29,13 @@ "coverage": { "surface_products": 21, "products_with_metadata": 21, - "surface_tools": 559, - "tools_with_metadata": 559, - "tools_with_agent_summary": 559, - "tools_with_use_when": 559, - "tools_with_avoid_when": 559, - "tools_with_examples": 559, - "tools_with_interface_mode": 559, + "surface_tools": 561, + "tools_with_metadata": 561, + "tools_with_agent_summary": 561, + "tools_with_use_when": 561, + "tools_with_avoid_when": 561, + "tools_with_examples": 561, + "tools_with_interface_mode": 561, "unmatched_skill_tools": 154, "unreviewed_skill_tools": 40 }, @@ -1199,7 +1199,7 @@ { "tool_path": "attendance read_file", "source": "skills/mono/references/products/attendance.md", - "line": 1039, + "line": 1038, "candidates": [ "attendance adjustment get", "attendance adjustment search", @@ -1213,7 +1213,7 @@ { "tool_path": "attendance read_file", "source": "skills/mono/references/products/attendance.md", - "line": 1043, + "line": 1042, "candidates": [ "attendance adjustment get", "attendance adjustment search", @@ -1227,7 +1227,7 @@ { "tool_path": "attendance read_file", "source": "skills/mono/references/products/attendance.md", - "line": 1076, + "line": 1075, "candidates": [ "attendance adjustment get", "attendance adjustment search", diff --git a/internal/cli/schema_catalog.go b/internal/cli/schema_catalog.go index c0f6f9e3..2053291c 100644 --- a/internal/cli/schema_catalog.go +++ b/internal/cli/schema_catalog.go @@ -78,29 +78,34 @@ func embeddedSchemaCatalogError() error { return runtimeEmbeddedSchemaCatalogErr } -// BuildSchemaCatalogSnapshot renders a deterministic catalog from the -// executable release command tree after all build-time metadata is embedded. -func BuildSchemaCatalogSnapshot(root *cobra.Command, options SchemaCatalogBuildOptions) (SchemaCatalogSnapshot, error) { - if root == nil { - return SchemaCatalogSnapshot{}, fmt.Errorf("schema source root is nil") - } - if _, err := ApplyEmbeddedManualSchemaHints(root); err != nil { - return SchemaCatalogSnapshot{}, fmt.Errorf("apply reviewed manual Schema hints: %w", err) - } - registry, err := buildRuntimeSchemaRegistry(root) - if err != nil { - return SchemaCatalogSnapshot{}, err - } - effectiveCommands, err := BuildEffectiveCommandRegistry(root) - if err != nil { - return SchemaCatalogSnapshot{}, fmt.Errorf("build effective Schema CommandRegistry: %w", err) +// BuildSchemaCatalogSnapshot renders a deterministic Catalog from one +// resolved source-to-delivery hand-off. It deliberately accepts no Cobra root: +// reapplying manual hints or rebuilding SchemaRegistry at this boundary would +// allow generation gates to validate one candidate while publishing another. +func BuildSchemaCatalogSnapshot(resolved ResolvedSchemaBuild, options SchemaCatalogBuildOptions) (SchemaCatalogSnapshot, error) { + if resolved.root == nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("schema Catalog source was not created by ResolveSchemaBuild") } + registry := resolved.registry + effectiveCommands := resolved.effective registryHash := strings.TrimSpace(options.RegistryHash) if registryHash == "" { registryHash = effectiveCommands.SourceHash() } else if registryHash != effectiveCommands.SourceHash() { return SchemaCatalogSnapshot{}, fmt.Errorf("provided Registry hash %q disagrees with effective CommandRegistry %q", registryHash, effectiveCommands.SourceHash()) } + if err := ValidateSchemaParameterBindingDelivery(resolved.bound, registry); err != nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("validate final Schema parameter binding delivery: %w", err) + } + if err := ValidateReviewedDryRunCapabilityDelivery(registry); err != nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("validate reviewed dry-run capability delivery: %w", err) + } + if _, err := ValidateEmbeddedManualAgentExampleDelivery(resolved.bound, registry); err != nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("validate final Manual Agent example delivery: %w", err) + } + if err := validateResolvedRuntimeSchemaCompleteness(resolved.root, resolved.bound); err != nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("validate reverse command-tree completeness: %w", err) + } if err := validateSchemaRegistryAgainstCommandRegistry(registry, effectiveCommands); err != nil { return SchemaCatalogSnapshot{}, fmt.Errorf("validate typed Schema registry against reviewed CommandRegistry: %w", err) } @@ -133,6 +138,9 @@ func BuildSchemaCatalogSnapshot(root *cobra.Command, options SchemaCatalogBuildO if err := ValidateSchemaDeliveryInvariants(registry, snapshot); err != nil { return SchemaCatalogSnapshot{}, fmt.Errorf("validate final Schema delivery invariants: %w", err) } + if err := validateResolvedSchemaCatalogDeliveryCompleteness(resolved.root, resolved.bound, snapshot); err != nil { + return SchemaCatalogSnapshot{}, fmt.Errorf("validate final Catalog delivery completeness: %w", err) + } return snapshot, nil } diff --git a/internal/cli/schema_catalog.json b/internal/cli/schema_catalog.json index 873d0509..cf7abcbc 100644 --- a/internal/cli/schema_catalog.json +++ b/internal/cli/schema_catalog.json @@ -1,17 +1,17 @@ { "version": 1, - "source_hash": "sha256:8c3f31b9df34d97154952d7f0c16d026bcda957822680b824acd1be25728954f", - "surface_hash": "sha256:aa9f26facd9fa58ec8e7998d22f765352075fd36cc1b6080289c72db3af3427b", + "source_hash": "sha256:88055ac5dc8c845f5921b4708ba6814fd11f5636735a7fe53609d9b02cc47479", + "surface_hash": "sha256:efb97fcad7968fe1375d729a232df9978adcb1ec71eeaca1e18326d047906a99", "catalog": { "agent_metadata": { "products_with_metadata": 21, "source": "embedded-skill-metadata", - "source_hash": "sha256:254cd3116b6f945f47a190844f79795121a3b947c2444086091a337b377bd01a", - "surface_hash": "sha256:aa9f26facd9fa58ec8e7998d22f765352075fd36cc1b6080289c72db3af3427b", + "source_hash": "sha256:5a7c35d3732f8d47b42c3542cf70ee95abccc60ad7c379194b63760f5785f1ef", + "surface_hash": "sha256:efb97fcad7968fe1375d729a232df9978adcb1ec71eeaca1e18326d047906a99", "surface_products": 21, - "surface_tools": 559, - "tools_with_agent_summary": 559, - "tools_with_metadata": 559, + "surface_tools": 561, + "tools_with_agent_summary": 561, + "tools_with_metadata": 561, "unmatched_skill_tools": 154, "version": 1 }, @@ -123,10 +123,7 @@ "cli_name": "person", "cli_path": "aisearch person", "confirmation": "not_required", - "description": "企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。\\n\\n**适用场景示例**:\\n- 找一下负责智能化的人\\n- 帮我找产品经理\\n- 技术部有哪些人\\n- 张三的领导是谁\\n- 李四手下有哪些人\\n- 帮我找下王芳\\n- 谁在做大模型相关的工作\\n- 公司有哪些架构师\\n- 市场部的同事有谁\\n- 有没有会Java的同事\\n- 研发部的负责人是谁\\n- 帮我找一下跟智能客服有关的人\\n- 做设计的同事有谁\\n- 谁是技术总监\\n- 张三在哪个部门\\n\\n", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "通过关键词搜索企业内人员信息,支持按维度筛选。\n\n可选维度 (--dimension):\n all 全部维度 (默认)\n name 姓名\n department 部门\n position 职位\n duty 职责/技能\n supervisor 上级\n subordinate 下级\n phone 手机号\n jobNumber 工号\n\n多个维度用逗号分隔。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -139,7 +136,7 @@ "primary_cli_path": "aisearch person", "reviewed": true, "risk": "low", - "title": "enterprise_person_search", + "title": "搜索企业人员", "use_when": [ "需要按姓名、部门、职位等维度搜索企业内人员时。" ] @@ -156,10 +153,7 @@ "cli_name": "enterprise", "cli_path": "aisearch enterprise", "confirmation": "not_required", - "description": "企业内部知识搜索工具。用于检索企业内部的文档、消息、日程、会议纪要、工作日志、多维表、企业百科等知识内容,基于关键词语义匹配返回相关资料。支持自然语言时间表达式(如\"最近\"、\"上周\"、\"本季度\")。适用场景:查找某个主题的资料、搜索包含特定关键词的文档、了解某项目/产品相关信息、准备汇报材料等内容检索需求。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "检索企业内部知识内容,如文档、消息、日程、待办、听记、日志、图片、链接、AI 表格、企业百科、邮件等。\n\n普通“XX 相关消息/文档/邮件/日程/待办/纪要有哪些”属于企业内容搜索,使用本命令;queries 只放内容关键词,时间放到 --time-range,所有类型词放到 --types。汇总类场景可不传 queries,使用 --types all。\n\n不要把“最近搜索问题相关消息”截断成 --query \"搜索问题\",也不要把“最近 OKR 相关邮件”写成 --query \"OKR 邮件\";这会丢失时间和类型槽位。应显式写成 --queries + --types + --time-range。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -172,7 +166,7 @@ "primary_cli_path": "aisearch enterprise", "reviewed": true, "risk": "low", - "title": "search_enterprise", + "title": "搜索企业内部知识内容和相关消息", "use_when": [ "需要按关键词、内容类型或时间范围检索企业内部知识时。" ] @@ -189,10 +183,7 @@ "cli_name": "behavior", "cli_path": "aisearch behavior", "confirmation": "not_required", - "description": "业内部行为记录搜索工具。用于检索用户的操作行为记录,如文档的发送、创建、分享、编辑等历史操作,支持按人员、动作类型进行精确查询。适用场景:\"我给某人发过什么\"、\"我创建过哪些文档\"、\"某人发给我的消息\"、\"我分享过的资料\"等行为追溯需求。与知识搜索的区别:本工具关注\"谁对什么做了什么\",而非内容本身。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "仅当用户明确询问“我/某人发过、发给、收到、创建、分享、编辑过什么”等行为动作时,检索企业内部行为记录。\n\n普通“XX 相关消息/文档/邮件有哪些”不是行为记录,应使用 aisearch enterprise。behavior 的 queries 只放内容关键词;时间放到 --time-range,所有类型词放到 --types,行为动作放到 --behavior-type,人与人之间的流向放到 --direction。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -205,7 +196,7 @@ "primary_cli_path": "aisearch behavior", "reviewed": true, "risk": "low", - "title": "search_enterprise_behavior", + "title": "搜索明确的发送/创建/接收等行为记录", "use_when": [ "用户明确询问某人发送、接收、创建、分享或编辑过什么时。" ] @@ -301,10 +292,7 @@ "cli_name": "disable", "cli_path": "aitable advperm disable", "confirmation": "user_required", - "description": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "关闭指定 Base 的高级权限总开关。\n关闭后,所有自定义角色配置都不再生效,全员回退到默认权限。\n此操作影响范围较大,请确认后再操作(需 --yes 确认)。\n要求:调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\nmessage: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。", "effect": "write", "group": "advperm", "idempotency": "unknown", @@ -318,7 +306,7 @@ "primary_cli_path": "aitable advperm disable", "reviewed": true, "risk": "high", - "title": "set_advanced_permission", + "title": "关闭高级权限总开关(高危)", "use_when": [ "需要关闭指定 Base 的高级权限总开关时。" ] @@ -335,10 +323,7 @@ "cli_name": "enable", "cli_path": "aitable advperm enable", "confirmation": "not_required", - "description": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "开启指定 Base 的高级权限总开关。\n开启后,advperm role-list / role-get 等角色配置才会真正生效。", "effect": "write", "group": "advperm", "idempotency": "unknown", @@ -352,7 +337,7 @@ "primary_cli_path": "aitable advperm enable", "reviewed": true, "risk": "medium", - "title": "set_advanced_permission", + "title": "开启高级权限总开关", "use_when": [ "需要开启指定 Base 的高级权限总开关时。" ] @@ -369,10 +354,7 @@ "cli_name": "role-create", "cli_path": "aitable advperm role-create", "confirmation": "not_required", - "description": "在指定 Base 下创建自定义角色;系统角色无法通过本工具创建。必填 baseId、name;可选 roleType、flowType、subRoles。\r\nsubRoles[].authLevel 取值:manage / edit-own / edit-custom-field / edit-field-range / read / none。\r\n返回新建角色的完整配置(同 get_role 出参格式)。\r\n自动兜底:caller 可以传稀疏 subRoles(只列关心的资源),或 subRoles 留空。MCP 会自动枚举 Base 下所有 sheet/dashboard,caller 未列的资源补 authLevel=none + bizType 对应默认 config;caller 列了但 config=null 的 sheet/dashboard 也填默认 config(避免前端 JSON.parse null 白屏)。app(bizType=3)需 caller 显式传,不自动枚举。\r\n约束:name 建议 ≤ 30 字;roleType 禁止以 system_ 开头(保留给系统角色);调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)。\n必填 --base-id 与 --name;可选 --role-type / --flow-type / --sub-roles。\n--sub-roles 为 JSON 数组,每项 {targetId, targetType, authLevel, appId?, config?}。\n - targetType: sheet / dashboard / app\n - authLevel: manage / edit-own / edit-custom-field / edit-field-range / read / none\n返回新建角色的完整配置(同 role-get 出参)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。", "effect": "write", "group": "advperm", "idempotency": "unknown", @@ -386,7 +368,7 @@ "primary_cli_path": "aitable advperm role-create", "reviewed": true, "risk": "medium", - "title": "create_role", + "title": "创建自定义角色", "use_when": [ "需要在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)时。" ] @@ -403,7 +385,7 @@ "cli_name": "role-delete", "cli_path": "aitable advperm role-delete", "confirmation": "user_required", - "description": "删除指定 Base 下的自定义角色;系统角色禁止删除,下游会返回业务错误。必填 baseId、roleId。\r\n返回被删除的 roleId。删除操作不可逆。", + "description": "删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")。\n删除操作不可逆,请先通过 advperm role-list 确认目标 roleId(必须是数字 long 字符串,传 owner / manager 等字符串 meta-id 会被服务端拒为 INVALID_PARAMS)。\n要求:\n - 该 Base 已开启高级权限,否则返回 ADVANCED_PERMISSION_DISABLED / USER_ERROR;\n - 调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\n message: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。", "effect": "destructive", "group": "advperm", "idempotency": "unknown", @@ -417,7 +399,7 @@ "primary_cli_path": "aitable advperm role-delete", "reviewed": true, "risk": "high", - "title": "delete_role", + "title": "删除自定义角色(不可逆)", "use_when": [ "需要删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")时。" ] @@ -434,10 +416,7 @@ "cli_name": "role-get", "cli_path": "aitable advperm role-get", "confirmation": "not_required", - "description": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。\r\n\r\n参数:必填 baseId、roleId。\r\n\r\n返回 {roleId, name, roleType, flowType, isSystem, subRoles:[{targetId, targetType, authLevel, appId, config}]}。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。", "effect": "read", "group": "advperm", "idempotency": "idempotent", @@ -451,7 +430,7 @@ "primary_cli_path": "aitable advperm role-get", "reviewed": true, "risk": "low", - "title": "get_role", + "title": "获取单个角色完整配置", "use_when": [ "需要获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限时。" ] @@ -468,10 +447,7 @@ "cli_name": "role-list", "cli_path": "aitable advperm role-list", "confirmation": "not_required", - "description": "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。\r\n\r\n参数:必填 baseId。\r\n\r\n返回 {enabled, defaultRole:{mode, roleId}, roles:[{roleId, name, roleType, flowType, isSystem, subRoles}]}。\r\n\r\n不返回角色成员列表;若需要添加/移除角色成员,请使用其他专用工具。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表。\nroles 同时包含自定义角色和系统角色,用 system (boolean) 字段区分(旧版本里叫 isSystem,服务端已统一为 system)。\nsubRoles[].display.* 提供人类可读标签(authLevelLabel / targetTypeLabel / permissionScopeNote 等)。\n不返回角色成员列表。\n非管理员也可调用此命令读取角色配置。", "effect": "read", "group": "advperm", "idempotency": "idempotent", @@ -485,7 +461,7 @@ "primary_cli_path": "aitable advperm role-list", "reviewed": true, "risk": "low", - "title": "list_roles", + "title": "列出 Base 下所有角色", "use_when": [ "需要列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表时。" ] @@ -502,10 +478,7 @@ "cli_name": "role-update", "cli_path": "aitable advperm role-update", "confirmation": "not_required", - "description": "增量更新自定义角色配置。必填 baseId、roleId;可选 name、roleType、flowType、subRoles。\r\nsubRoles 行为:不传=完全不动现有 subRoles;传入则按 (targetId, targetType) 与现有 subRoles 合并——入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变。MCP 已在内部做 get→merge,caller 无需先调 get_role。\r\n自动兜底:caller 传非空 subRoles 时,MCP 会对其中 sheet/dashboard 项里 config=null 的自动填默认 config(避免前端崩),不会额外枚举 Base 资源(与 create 不同,patch 保持\"只动调用方列的项\"语义)。\r\n系统角色禁止更新。\r\n约束:roleType 禁止以 system_ 开头;调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按 PATCH 语义增量更新指定自定义角色。系统角色禁止更新。\n必填 --base-id 与 --role-id;可选 --name / --role-type / --flow-type / --sub-roles。\n未传的字段保持不变;传 --sub-roles 时服务端按 (targetId, targetType) 合并到现有\nsubRoles,入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变(不需要先调\nrole-get 自行 merge)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。", "effect": "write", "group": "advperm", "idempotency": "unknown", @@ -519,7 +492,7 @@ "primary_cli_path": "aitable advperm role-update", "reviewed": true, "risk": "medium", - "title": "patch_role", + "title": "增量更新自定义角色配置(patch 语义)", "use_when": [ "需要按 PATCH 语义增量更新指定自定义角色时。" ] @@ -536,10 +509,7 @@ "cli_name": "upload", "cli_path": "aitable attachment upload", "confirmation": "not_required", - "description": "为单个 attachment 字段文件申请带容量校验的 OSS 直传地址。\r\n该工具仅适用于“需要先上传本地文件,再将其写入 attachment 字段”的场景,不是通用文件上传入口,也不适用于后续导入类任务上传。\r\n如果已经有可直接下载的在线文件 URL,不要先下载文件再调用本工具;可直接在 create_records / update_records 的 attachment 字段中传入 [{\"url\":\"https://...\"}],由服务端自动代拉外链并转存为内部附件。\r\n该工具只负责准备上传,不直接接收文件二进制内容;实际文件字节流应由客户端在 MCP 外上传到返回的 uploadUrl。\r\n上传文件时,向 uploadUrl 发起的 PUT 请求必须携带 Content-Type header,且其值必须是该文件的具体 MIME type。\r\n上传成功后,请在 create_records / update_records 的 attachment 字段中写入 [{\"fileToken\":\"...\"}]。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为 attachment 字段文件申请带容量校验的 OSS 直传地址。\n\n该命令只负责准备上传(获取 uploadUrl 和 fileToken),不直接上传文件。\n实际文件需由客户端在 MCP 外通过 PUT 请求上传到返回的 uploadUrl。\n\n完整流程:\n 1. dws aitable attachment upload --base-id \u003cBASE_ID\u003e --file-name photo.png --size 1024\n → 获取 uploadUrl 和 fileToken\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" -H \"Content-Type: image/png\" --data-binary @photo.png\n → 上传文件到 OSS\n 3. dws aitable record create --base-id \u003cBASE_ID\u003e --table-id \u003cTABLE_ID\u003e \\\n --records '[{\"cells\":{\"fldAttachId\":[{\"fileToken\":\"\u003cfileToken\u003e\"}]}}]'\n → 将 fileToken 写入 attachment 字段\n\n注意:\n 上传文件到 uploadUrl 时,PUT 请求必须携带 Content-Type header,\n 且其值必须是该文件的具体 MIME type(如 image/png、application/pdf)。", "effect": "write", "group": "attachment", "idempotency": "unknown", @@ -570,10 +540,7 @@ "cli_name": "copy", "cli_path": "aitable base copy", "confirmation": "not_required", - "description": "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "复制 AI 表格到指定目录。支持完整复制或仅复制结构(不含数据)。\n复制操作会创建一个新的 Base,包含原 Base 的表、字段、视图等配置。\n如果选择仅复制结构(--only-struct),则不会复制实际的记录数据。\n\n权限要求:需要对源 Base 有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。\n\n注意:--target-folder-id 参数如果传入的是文档/文件夹 URL(如 https://alidocs.dingtalk.com/i/nodes/xxx),\n需要先调用文档的 dws 命令(如 dws doc info --node URL)获取 dentryUuid,再将 dentryUuid 传入本命令。\nMCP 层不会会自动解析 URL,必须直接传入 dentryUuid 以避免报错。", "effect": "write", "group": "base", "idempotency": "unknown", @@ -587,7 +554,7 @@ "primary_cli_path": "aitable base copy", "reviewed": true, "risk": "medium", - "title": "copy_base", + "title": "复制 AI 表格", "use_when": [ "需要复制 AI 表格到指定目录时。" ] @@ -604,10 +571,7 @@ "cli_name": "create", "cli_path": "aitable base create", "confirmation": "not_required", - "description": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName,如果需要创建的特定的文件夹路径下,则需要传递folderId,这个是知识库节点的ID,调用文档的相关服务可以获取", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName。\n如果需要创建在特定的文件夹路径下,则需要传递 folderId,这个是知识库节点的 ID,调用文档的相关服务可以获取。\nMCP 层会进一步兼容同字段传入的标准节点 URL,并在创建前解析出实际生效的节点 ID。", "effect": "write", "group": "base", "idempotency": "unknown", @@ -638,7 +602,7 @@ "cli_name": "delete", "cli_path": "aitable base delete", "confirmation": "user_required", - "description": "删除指定 Base(高风险、不可逆)。成功后应无法通过 get_base/search_bases 读取到该 Base", + "description": "删除指定 Base(高风险、不可逆)。成功后应无法通过 base get / base search 读取到该 Base", "effect": "destructive", "group": "base", "idempotency": "unknown", @@ -669,10 +633,7 @@ "cli_name": "get", "cli_path": "aitable base get", "confirmation": "not_required", - "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 table get,dashboard 详情再调用 get_dashboard", "effect": "read", "group": "base", "idempotency": "idempotent", @@ -703,10 +664,7 @@ "cli_name": "get-primary-doc-id", "cli_path": "aitable base get-primary-doc-id", "confirmation": "not_required", - "description": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息。\n当 AI 表格使用文档类型作为主键字段时,可以通过此命令获取对应文档的 dentryUuid,\n进而利用该 uuid 去获取文档的内容以及做其他操作。", "effect": "read", "group": "base", "idempotency": "idempotent", @@ -720,7 +678,7 @@ "primary_cli_path": "aitable base get-primary-doc-id", "reviewed": true, "risk": "low", - "title": "获取AI表格中主键即文档字段的文档ID", + "title": "获取主键文档ID", "use_when": [ "需要根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息时。" ] @@ -737,10 +695,7 @@ "cli_name": "list", "cli_path": "aitable base list", "confirmation": "not_required", - "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 base get。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n\n注意: base list 仅返回最近访问过的 Base,不是全部 Base。\n新创建或未在钉钉前端打开过的 Base 可能不会出现在此列表中。\n如需按名称查找表格,请优先使用 base search 命令。", "effect": "read", "group": "base", "idempotency": "idempotent", @@ -771,10 +726,7 @@ "cli_name": "search", "cli_path": "aitable base search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 base get 等后续工具。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n不传关键词时返回最近访问的 Base 列表。", "effect": "read", "group": "base", "idempotency": "idempotent", @@ -806,9 +758,6 @@ "cli_path": "aitable base update", "confirmation": "not_required", "description": "更新 Base 名称(可选备注)。当前不支持修改主题、封面等扩展属性", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "base", "idempotency": "unknown", @@ -839,10 +788,7 @@ "cli_name": "create", "cli_path": "aitable chart create", "confirmation": "not_required", - "description": "在指定 dashboard 下创建 chart。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回新创建的 chart 详情。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定 dashboard 下创建 chart。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求。\n--layout 为必填参数,指定图表在 dashboard 中的位置和大小(12 列网格布局)。\n\n布局说明:\n x/y 表示横纵坐标,w/h 表示宽度/高度,单位是列数或行数。\n 仪表盘是网格布局共 12 列、行数无限制。\n 同一行的图表保持高度一致,每行的图表宽度相加需要正好将整行填满。", "effect": "write", "group": "chart", "idempotency": "unknown", @@ -856,7 +802,7 @@ "primary_cli_path": "aitable chart create", "reviewed": true, "risk": "medium", - "title": "更新图表", + "title": "创建图表", "use_when": [ "需要在指定仪表盘下创建图表时。" ] @@ -904,10 +850,7 @@ "cli_name": "get", "cli_path": "aitable chart get", "confirmation": "not_required", - "description": "获取指定 chart 的详细信息。返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 chart 的详细信息。\n返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。\n返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。", "effect": "read", "group": "chart", "idempotency": "idempotent", @@ -938,10 +881,7 @@ "cli_name": "get", "cli_path": "aitable chart share get", "confirmation": "not_required", - "description": "查询指定 chart 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。", "effect": "read", "group": "chart.share", "idempotency": "idempotent", @@ -955,7 +895,7 @@ "primary_cli_path": "aitable chart share get", "reviewed": true, "risk": "low", - "title": "获取图表的分享配置", + "title": "获取图表分享配置", "use_when": [ "需要查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接时。" ] @@ -972,10 +912,7 @@ "cli_name": "update", "cli_path": "aitable chart share update", "confirmation": "not_required", - "description": "用于开启或关闭指定 chart 的分享,并设置分享类型。\\nenabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。\\nshareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。\\n返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "开启/关闭 chart 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。", "effect": "write", "group": "chart.share", "idempotency": "unknown", @@ -989,7 +926,7 @@ "primary_cli_path": "aitable chart share update", "reviewed": true, "risk": "medium", - "title": "更新图表分享配置(开启或关闭或更新配置)", + "title": "更新图表分享配置", "use_when": [ "需要开启/关闭 chart 分享并可设置分享类型时。" ] @@ -1006,10 +943,7 @@ "cli_name": "update", "cli_path": "aitable chart update", "confirmation": "not_required", - "description": "更新指定 chart 的配置或布局。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回更新后的 chart 详情。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定 chart 的配置或布局。\n--config 为必填参数,即使只想改布局也要带上完整的图表配置(服务端会拒绝缺 config 的请求,\n空对象 {} 同样被拒,至少要包含 chartName)。--layout 可选,仅调整位置/大小时追加。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求,\n或先用 chart get 拿到当前 config 再改。", "effect": "write", "group": "chart", "idempotency": "unknown", @@ -1040,10 +974,7 @@ "cli_name": "widgets-example", "cli_path": "aitable chart widgets-example", "confirmation": "not_required", - "description": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_chart / update_chart 的 config 参数结构参考,根据目标图表类型选取对应示例。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 chart create / chart update 的 --config 参数结构参考,根据目标图表类型选取对应示例。", "effect": "read", "group": "chart", "idempotency": "idempotent", @@ -1075,9 +1006,6 @@ "cli_path": "aitable create", "confirmation": "not_required", "description": "创建一个新的 AI 表格 Base。\n这是 dws aitable base create 的便捷别名,两个命令完全等价。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -1106,10 +1034,7 @@ "cli_name": "arrange", "cli_path": "aitable dashboard arrange", "confirmation": "not_required", - "description": "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。根据仪表盘的网格列数(schemaVersion 为 2 时为 48 列,其他情况为 12 列),自动将 y 坐标相近的图表归为同一行,统一同行图表高度,按比例缩放宽度使每行精确填满全列,紧凑排列消除行间空隙,消除底部参差不齐。返回对齐后的完整布局信息。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白。\n仪表盘网格总列数 totalColumns 通常是 12 或 48;返回字段 alignedChartCount 表示本次重排涉及的图表数。\n\n返回 data: {baseId, dashboardId, totalColumns, alignedChartCount, layout: [...]}。\nlayout 数组里每项含图表的新位置(row/col/width/height)。", "effect": "write", "group": "dashboard", "idempotency": "unknown", @@ -1123,7 +1048,7 @@ "primary_cli_path": "aitable dashboard arrange", "reviewed": true, "risk": "medium", - "title": "自动对齐仪表盘布局", + "title": "自动重排仪表盘图表布局", "use_when": [ "需要对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白时。" ] @@ -1140,10 +1065,7 @@ "cli_name": "config-example", "cli_path": "aitable dashboard config-example", "confirmation": "not_required", - "description": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_dashboard / update_dashboard 的 config 参数结构参考。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 dashboard create / dashboard update 的 --config 参数结构参考。", "effect": "read", "group": "dashboard", "idempotency": "idempotent", @@ -1174,10 +1096,7 @@ "cli_name": "create", "cli_path": "aitable dashboard create", "confirmation": "not_required", - "description": "在指定 Base 下创建 dashboard。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回新创建的 dashboard 详情。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定 Base 下创建 dashboard。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n返回新创建的 dashboard 详情。", "effect": "write", "group": "dashboard", "idempotency": "unknown", @@ -1239,10 +1158,7 @@ "cli_name": "get", "cli_path": "aitable dashboard get", "confirmation": "not_required", - "description": "获取指定 dashboard 的详细信息。\\r\\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 dashboard 的详细信息。\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。", "effect": "read", "group": "dashboard", "idempotency": "idempotent", @@ -1273,10 +1189,7 @@ "cli_name": "get", "cli_path": "aitable dashboard share get", "confirmation": "not_required", - "description": "查询指定 dashboard 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。", "effect": "read", "group": "dashboard.share", "idempotency": "idempotent", @@ -1290,7 +1203,7 @@ "primary_cli_path": "aitable dashboard share get", "reviewed": true, "risk": "low", - "title": "查询仪表盘分享配置", + "title": "获取仪表盘分享配置", "use_when": [ "需要查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接时。" ] @@ -1307,10 +1220,7 @@ "cli_name": "update", "cli_path": "aitable dashboard share update", "confirmation": "not_required", - "description": "用于开启或关闭指定 dashboard 的分享,并设置分享类型。enabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。shareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "开启/关闭 dashboard 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。", "effect": "write", "group": "dashboard.share", "idempotency": "unknown", @@ -1324,7 +1234,7 @@ "primary_cli_path": "aitable dashboard share update", "reviewed": true, "risk": "medium", - "title": "设置仪表盘分享配置(开启或关闭或更新配置)", + "title": "更新仪表盘分享配置", "use_when": [ "需要开启/关闭 dashboard 分享并可设置分享类型时。" ] @@ -1341,10 +1251,7 @@ "cli_name": "update", "cli_path": "aitable dashboard update", "confirmation": "not_required", - "description": "更新指定 dashboard 的配置。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回更新后的 dashboard 详情。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定 dashboard 的配置。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n传入需要更新的字段,未传入的字段保持原值。", "effect": "write", "group": "dashboard", "idempotency": "unknown", @@ -1375,10 +1282,7 @@ "cli_name": "data", "cli_path": "aitable export data", "confirmation": "not_required", - "description": "导出 AI 表格数据的统一入口。\r\n不传 taskId 时,会根据 scope / format 创建一个新的导出任务,并在 timeoutMs 时间内同步等待结果;若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\r\n传入 taskId 时,不会重新创建任务,而是继续等待该任务;若仍未完成,则继续返回同一个 taskId,供下一次调用继续等待。\r\n当前稳定支持的 scope:all、table、view;暂不开放按字段导出。\r\n当前稳定支持的 format:excel、attachment、excel_and_attachment、excel_with_inline_images。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "导出 AI 表格数据的统一入口。\n不传 --task-id 时,根据 --scope / --export-format 创建新的导出任务,并同步等待结果;\n若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\n传入 --task-id 时,继续等待该任务,不会重新创建。\n\nscope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nexport-format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。", "effect": "read", "group": "export", "idempotency": "idempotent", @@ -1409,10 +1313,7 @@ "cli_name": "create", "cli_path": "aitable field create", "confirmation": "not_required", - "description": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。单次最多创建 15 个字段;若超过该数量,请拆分多次调用。允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。\n单次最多创建 15 个字段;若超过该数量,请拆分多次调用。\n允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。\n系统会按数组顺序依次创建,返回结果顺序与入参保持一致,并逐项标明成功/失败状态。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型(参考见 table create --help),新增类型包括 address(行政区域)、filterUp(查找引用)、lookup(关联引用)\n config(可选): 字段配置(参考见 table create --help)\n aiConfig(可选): AI 字段配置,传入后表示创建 AI 字段。\n - outputType(必填): text|select|multiSelect|number|currency|image|video\n - prompt(必填): [{\"type\":\"text\",\"value\":\"...\"}, {\"type\":\"fieldRef\",\"fieldId\":\"...\"}]\n - imageConfig(可选): outputType=image 时可用,配置 resolution 和 aiGeneratedWatermark\n - videoConfig(可选): outputType=video 时可用,配置 aspectRatio、resolution、duration\n - autoRecompute(可选): 引用字段变化后是否自动重算\n - enableThinking(可选): 是否启用深度思考\n - enableWebSearch(可选): 是否启用联网搜索", "effect": "write", "group": "field", "idempotency": "unknown", @@ -1426,7 +1327,7 @@ "primary_cli_path": "aitable field create", "reviewed": true, "risk": "medium", - "title": "create_fields", + "title": "创建字段", "use_when": [ "需要在已有表格中批量新增字段时。" ] @@ -1443,7 +1344,7 @@ "cli_name": "delete", "cli_path": "aitable field delete", "confirmation": "user_required", - "description": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\r\n\r\n此操作不可逆,会永久删除字段及其所有数据。\r\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\r\n若字段不存在或无权限,将返回错误。", + "description": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\n\n此操作不可逆,会永久删除字段及其所有数据。\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\n若字段不存在或无权限,将返回错误。", "effect": "destructive", "group": "field", "idempotency": "unknown", @@ -1474,10 +1375,7 @@ "cli_name": "get", "cli_path": "aitable field get", "confirmation": "not_required", - "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项等)。\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\n适用于在 table get 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 table get 返回值。\n\n必填参数:\n--table-id (必填):表格 ID,必须先通过 dws aitable table get --base-id \u003cbaseId\u003e 获取 tableId\n--base-id (必填):Base ID,可通过 dws aitable base list 或 dws aitable base search 获取", "effect": "read", "group": "field", "idempotency": "idempotent", @@ -1508,10 +1406,7 @@ "cli_name": "list", "cli_path": "aitable field list", "confirmation": "not_required", - "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置。\n这是 dws aitable field get 的便捷别名,两个命令完全等价。", "effect": "read", "group": "field", "idempotency": "idempotent", @@ -1525,7 +1420,7 @@ "primary_cli_path": "aitable field list", "reviewed": true, "risk": "low", - "title": "获取字段详情", + "title": "获取字段信息(dws aitable field get 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable field list 兼容路径时。" ] @@ -1542,10 +1437,7 @@ "cli_name": "search-options", "cli_path": "aitable field search-options", "confirmation": "not_required", - "description": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\r\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\r\n不传 keyword 时返回该字段全部 options。\r\n适用于 options 较多时按关键词缩小范围,避免通过 get_fields 拉取完整字段配置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\n不传 --keyword 时返回该字段全部 options。\n适用于 options 较多时按关键词缩小范围,避免通过 field get 拉取完整字段配置。\n若需读取字段的完整配置(含 options 之外的属性),请使用 field get。", "effect": "read", "group": "field", "idempotency": "idempotent", @@ -1559,7 +1451,7 @@ "primary_cli_path": "aitable field search-options", "reviewed": true, "risk": "low", - "title": "搜索字段选项", + "title": "搜索单选/多选字段的选项", "use_when": [ "需要搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)时。" ] @@ -1576,10 +1468,7 @@ "cli_name": "update", "cli_path": "aitable field update", "confirmation": "not_required", - "description": "更新指定字段的名称或配置。不可变更字段类型(type 不可修改)。\r\nnewFieldName、config、aiConfig 至少传入一项", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定字段的名称、字段配置或 AI 配置。不可变更字段类型(type 不可修改)。\nnewFieldName、config、aiConfig 至少传入一项。\n\n注意:更新 singleSelect/multipleSelect 的 options 时,需传入完整列表(含已有选项),\n系统以新列表整体覆盖,不是追加。为避免已有单元格因 option id 变化而丢数据,\n更新时已有选项应尽量回传原 id;新增选项无需传 id。\n如果请求中传入的 option id 在当前字段配置中不存在,系统会丢弃该 id,并按新增选项处理;\n若 id 合法但 name 改了,属于正常更新,会保留该 id。", "effect": "write", "group": "field", "idempotency": "unknown", @@ -1611,14 +1500,11 @@ "cli_path": "aitable form create", "confirmation": "not_required", "description": "在指定数据表下创建一个新的表单视图(FormDesigner 类型)。\n等价于 view create --view-type FormDesigner,但走 form 命令组对齐表单工作流。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "form", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection.", "name": "form_create", "primary_cli_path": "aitable form create", "reviewed": true, @@ -1644,8 +1530,8 @@ "effect": "destructive", "group": "form", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_delete", "primary_cli_path": "aitable form delete", "reviewed": true, @@ -1668,18 +1554,15 @@ "cli_path": "aitable form field hide", "confirmation": "not_required", "description": "切换表单视图中某个字段的隐藏/显示状态。\n--hidden true:在表单中隐藏该字段(填写者不可见)\n--hidden false:显示该字段", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "group": "form.field", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_field_hide", "primary_cli_path": "aitable form field hide", "reviewed": true, - "risk": "low", + "risk": "medium", "title": "切换表单字段隐藏", "use_when": [ "需要切换表单视图中某个字段的隐藏/显示状态时。" @@ -1698,14 +1581,11 @@ "cli_path": "aitable form field list", "confirmation": "not_required", "description": "列出指定表单视图当前可见的字段及其配置。\n返回每个字段的 fieldId、name、type、required、hidden、description。\n注意:hidden=true 的字段不会出现在此返回(它们在表单中已隐藏);如需查看全部字段请用 field get。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "form.field", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_field_list", "primary_cli_path": "aitable form field list", "reviewed": true, @@ -1728,14 +1608,11 @@ "cli_path": "aitable form field update", "confirmation": "not_required", "description": "更新表单视图中某个字段的必填状态或描述。\n--required 或 --field-description 至少传入一项。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "form.field", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_field_update", "primary_cli_path": "aitable form field update", "reviewed": true, @@ -1761,8 +1638,8 @@ "effect": "read", "group": "form", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_get", "primary_cli_path": "aitable form get", "reviewed": true, @@ -1785,14 +1662,11 @@ "cli_path": "aitable form list", "confirmation": "not_required", "description": "列出指定数据表下的所有表单视图。每个表单视图返回 viewId、name、title、createdAt(shareFormUuid 不在此返回,需 form share get 单独获取)。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "form", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_list", "primary_cli_path": "aitable form list", "reviewed": true, @@ -1815,14 +1689,11 @@ "cli_path": "aitable form questions create", "confirmation": "not_required", "description": "在数据表中创建字段,即向表单添加题目。\n入参与 `field create` 完全一致:可用 --fields 批量创建,或 --name + --type 单题模式。\n若需将题目设为必填,创建后请用 form field update --required true 单独设置。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "form.questions", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection.", "name": "form_questions_create", "primary_cli_path": "aitable form questions create", "reviewed": true, @@ -1848,8 +1719,11 @@ "effect": "destructive", "group": "form.questions", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "delete_field" + }, "name": "form_questions_delete", "primary_cli_path": "aitable form questions delete", "reviewed": true, @@ -1872,14 +1746,11 @@ "cli_path": "aitable form share get", "confirmation": "not_required", "description": "读取指定视图当前的分享表单配置。\n返回 enabled(是否开启)、status、shareFormUuid、formName 等信息。\n若该视图尚未开启分享表单,enabled=false、status=0。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "form.share", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_share_get", "primary_cli_path": "aitable form share get", "reviewed": true, @@ -1902,14 +1773,11 @@ "cli_path": "aitable form share update", "confirmation": "not_required", "description": "开启或关闭指定视图的分享表单。\n--enabled true 表示开启分享,--enabled false 表示关闭分享。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "form.share", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_share_update", "primary_cli_path": "aitable form share update", "reviewed": true, @@ -1932,14 +1800,11 @@ "cli_path": "aitable form update", "confirmation": "not_required", "description": "更新表单整体配置(标题、描述)。\n--title(或其等价别名 --name)和 --description 至少传入一项。\n--title 与 --name 完全等价;同时传入时以 --title 优先。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "form", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "form_update", "primary_cli_path": "aitable form update", "reviewed": true, @@ -1961,10 +1826,7 @@ "cli_name": "data", "cli_path": "aitable import data", "confirmation": "not_required", - "description": "将已通过 prepare_import_upload 上传完成的文件导入 AI 表格。支持两种模式:\r\n1. 新建表导入(默认):不传 tableId,文件中的每个工作表新建为独立的数据表。导入成功时返回新增数据表的 tableIds。\r\n2. 追加导入:传入 tableId,数据追加到该已有数据表的末尾,不会新建表。可通过 fieldMapping 指定文件列名与目标表字段的映射关系;不传 fieldMapping 则按列名自动匹配。多 Sheet 文件可通过 srcSheetName 指定源 Sheet。\r\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务,也不要重新上传同一文件。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将已通过 import upload 上传完成的文件导入 AI 表格。\n支持两种模式:\n 1. 新建表导入(默认):不传 --table-id,每个 Sheet 会新建为独立的数据表\n 2. 追加导入:传入 --table-id,数据将作为新行追加到该已有表中\n\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。\n若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务。\n\n追加导入时的注意事项:\n - 系统按列名自动匹配字段,源文件列名须与目标表字段名一致\n - 若需自定义映射关系,使用 --field-mapping 指定(key=目标表字段名,value=源文件列名)\n - 多 Sheet 文件默认使用第一个 Sheet,可通过 --src-sheet-name 指定", "effect": "write", "group": "import", "idempotency": "unknown", @@ -1995,10 +1857,7 @@ "cli_name": "upload", "cli_path": "aitable import upload", "confirmation": "not_required", - "description": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\r\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 对应的存储服务明确要求,否则不要额外附带 Content-Type 等自定义请求头。上传完成后将 importId 传入 import_data 即可触发导入,无需再传其他参数。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl。\n上传完成后将 importId 传入 import data 即可触发导入。\n\n完整流程:\n 1. dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800\n → 获取 uploadUrl 和 importId\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" --data-binary @data.xlsx\n → 上传文件到 OSS\n 3. dws aitable import data --import-id \u003cimportId\u003e\n → 触发导入", "effect": "write", "group": "import", "idempotency": "unknown", @@ -2029,10 +1888,7 @@ "cli_name": "info", "cli_path": "aitable info", "confirmation": "not_required", - "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 Base 的资源目录级信息。\n这是 dws aitable base get 的便捷别名,两个命令完全等价。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -2045,7 +1901,7 @@ "primary_cli_path": "aitable info", "reviewed": true, "risk": "low", - "title": "获取 AI 表格信息", + "title": "获取 AI 表格信息(dws aitable base get 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable info 兼容路径时。" ] @@ -2062,10 +1918,7 @@ "cli_name": "list", "cli_path": "aitable list", "confirmation": "not_required", - "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出当前用户可访问的 AI 表格 Base。\n这是 dws aitable base list 的便捷别名,两个命令完全等价。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -2078,7 +1931,7 @@ "primary_cli_path": "aitable list", "reviewed": true, "risk": "low", - "title": "获取 AI 表格列表", + "title": "获取 AI 表格列表(dws aitable base list 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable list 兼容便捷路径时。" ] @@ -2099,9 +1952,6 @@ "cli_path": "aitable record query", "confirmation": "not_required", "description": "查询 AI 表格记录。默认返回单页;传 --all 时自动翻页累计全部记录。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2115,7 +1965,7 @@ "primary_cli_path": "aitable record query", "reviewed": true, "risk": "low", - "title": "query_records", + "title": "获取行记录", "use_when": [ "需要查询指定表格中的记录,支持按记录 ID 精确查询或按条件分页检索时。" ] @@ -2133,14 +1983,11 @@ "cli_path": "aitable record batch-update", "confirmation": "not_required", "description": "将同一份 cells JSON 批量应用到多条记录上。适合\"统一标记完成 / 统一改负责人 / 统一清空某字段\"等场景。\n\n与 record update 的区别:\n - record update 每条记录可有不同 cells,参数是 records JSON 数组\n - record batch-update 所有记录共享同一份 cells(CLI 客户端展开后调用相同 MCP 工具)\n\n单次最多 100 条;超出请拆分多次调用。\ncells 写入格式与 record update / record create 相同(详见 record create --help)。\n只读字段(formula / filterUp / lookup / 系统字段)不能写入。\n\nCLI 行为:客户端把 --record-ids 拆开后构造 [{recordId, cells}, ...] 调用 update_records;\n当前服务端尚未提供 broadcast patch 工具,所以本命令是纯语义包装,不省网络体积,仅省 LLM 构造 prompt 的 token。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "record", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection.", "name": "record_batch_update", "primary_cli_path": "aitable record batch-update", "reviewed": true, @@ -2162,10 +2009,7 @@ "cli_name": "create", "cli_path": "aitable record create", "confirmation": "not_required", - "description": "在指定表格中批量新增记录", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定表格中批量新增记录。\n\nrecords 为待创建的记录列表 JSON 数组,单次最多 100 条。\n每条记录包含 cells 字段,key 为 fieldId(通过 table get 获取),value 为写入值。\n\n注意:filterUp(查找引用)和 lookup(关联引用)字段为只读字段,不能通过 record create/update 写入值。\n\n各类型写入格式:\n text → \"文本内容\"\n number → 123 或 123.45(也接受字符串 \"123\")\n singleSelect → \"选项名称\",或 {\"id\":\"opt_xxx\",\"name\":\"进行中\"};id 为准\n multipleSelect → [\"选项名1\",\"选项名2\"],或 [{\"id\":\"opt_a\",\"name\":\"标签A\"},...]\n date → \"2026-03-15\" 或 \"2026-03-15T09:00+08:00\"(RFC3339);亦支持毫秒时间戳\n checkbox → true | false\n user → [{\"userId\":\"staff_001\",\"corpId\":\"dingxxxxxxxx\"}]\n department → [{\"deptId\":\"52528700\"}]\n group → [{\"cid\":\"74577067501\"}] — 注意 key 是 cid,不是 openConversationId\n url → {\"text\":\"显示文字\",\"link\":\"https://...\"};不能直接传 URL 字符串\n richText → {\"markdown\":\"**加粗**\\n普通文字\\n\"}\n telephone/email/barcode/idCard → 字符串\n attachment → 推荐通过 prepare_attachment_upload + append_uploaded_file_to_record 写入\n unidirectionalLink/bidirectionalLink → {\"linkedRecordIds\":[\"recXXX\",\"recYYY\"]}\n creator/lastModifier/createdTime/lastModifiedTime → 系统自动回填,不建议手动写入\n\nWindows 用户注意:如果 --records JSON 很长(超过命令行长度限制),请使用 --records-file 参数指定一个 JSON 文件路径,\nCLI 会自动从文件中读取内容作为 --records 的值。这样可以避免 shell 引号转义和命令行截断问题。", "effect": "write", "group": "record", "idempotency": "unknown", @@ -2196,7 +2040,7 @@ "cli_name": "delete", "cli_path": "aitable record delete", "confirmation": "user_required", - "description": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\r\n单次最多删除 100 条;超出请拆分多次调用。\r\n调用前建议先通过 query_records 确认目标记录 ID 与内容,避免误删。", + "description": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\n单次最多删除 100 条;超出请拆分多次调用。\n调用前建议先通过 record query 确认目标记录 ID 与内容,避免误删。", "effect": "destructive", "group": "record", "idempotency": "unknown", @@ -2227,10 +2071,7 @@ "cli_name": "get", "cli_path": "aitable record get", "confirmation": "not_required", - "description": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按 recordId 精确获取一条或多条记录。\n这是 dws aitable record query --record-ids 的便捷别名;强制 record-ids 必填,未暴露 filters/sort/query/cursor/limit 等查询参数。\n如需关键词搜索、筛选、排序、自动翻页,请改用 dws aitable record query 或 dws aitable record list。\n\n--field-ids 同样支持,逗号分隔,单次最多 100 个;用于控制返回字段或显式拉取计算字段。\n公式(formula)、查找引用(filterUp)、关联引用(lookup)字段默认不返回值,\n需在 --field-ids 中显式指定字段 ID 才会返回。", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2244,7 +2085,7 @@ "primary_cli_path": "aitable record get", "reviewed": true, "risk": "low", - "title": "query_records", + "title": "按 ID 获取记录(record query --record-ids 的便捷别名,单次最多 100 条)", "use_when": [ "需要按 recordId 精确获取一条或多条记录时。" ] @@ -2261,10 +2102,7 @@ "cli_name": "history-list", "cli_path": "aitable record history-list", "confirmation": "not_required", - "description": "查询指定行记录的变更历史列表。返回该记录的字段变更、操作人(unionId)、操作时间等信息。\r\n操作人已完成身份脱敏,仅透出 unionId。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按 recordId 查询单条记录的变更历史。\n返回字段(每条 history item):\n- type 变更类型(如 field_change / record_create)\n- action 操作动作(create / update / delete)\n- newValue 变更后的值(JSON 字符串)\n- oldValue 变更前的值(JSON 字符串)\n- operateTime 操作时间(毫秒级时间戳)\n- typeChangedFields 类型变更的字段信息(JSON 字符串)\n- version 版本号\n\n分页用 --offset / --limit;--limit 范围 [1, 50],默认 20。", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2295,10 +2133,7 @@ "cli_name": "primary-doc-create", "cli_path": "aitable record primary-doc-create", "confirmation": "not_required", - "description": "为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。\\n必填 baseId、tableId、fieldId、recordId。\\n返回创建或已存在的主键文档 nodeId,可直接用于钉钉文档 MCP 的 nodeId 参数。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\nfieldId 必须是 primaryDoc 类型的字段。", "effect": "write", "group": "record", "idempotency": "unknown", @@ -2312,7 +2147,7 @@ "primary_cli_path": "aitable record primary-doc-create", "reviewed": true, "risk": "medium", - "title": "创建主键文档", + "title": "为记录创建主键文档", "use_when": [ "需要为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)时。" ] @@ -2329,10 +2164,7 @@ "cli_name": "primary-doc-get", "cli_path": "aitable record primary-doc-get", "confirmation": "not_required", - "description": "查询指定记录的主键文档信息。根据 baseId、tableId、recordId 返回该记录关联的主键文档 nodeId。若记录尚未创建主键文档,nodeId 为 null。返回的 nodeId 可直接用于钉钉文档 MCP 的 nodeId 参数。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定记录关联的主键文档 nodeId。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\n若该记录尚未创建主键文档,nodeId 为 null。", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2346,7 +2178,7 @@ "primary_cli_path": "aitable record primary-doc-get", "reviewed": true, "risk": "low", - "title": "查询主键文档信息", + "title": "查询记录的主键文档", "use_when": [ "需要查询指定记录关联的主键文档节点 ID 时。" ] @@ -2363,10 +2195,7 @@ "cli_name": "query-empty", "cli_path": "aitable record query-empty", "confirmation": "not_required", - "description": "查询指定表格中\"完全没填用户字段\"的空行。\r\n- 按表内顺序扫描一页(limit 默认 100,最大 100),内存中过滤出空行返回。\r\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,\r\n 所有 cell 都是 null、空字符串、空集合或空 Map。\r\n- cursor 行为同 query_records:若返回的 nextCursor 非空,需要把它传回继续翻页。\r\n- 注意:本页 records 为空数组不代表全表无空行;只有当 nextCursor 也为空时才表示扫完全表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行。\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,所有 cell 都是 null、空字符串、空集合或空 Map。\n- --limit 是扫描预算(不是返回数):可能扫了 100 条但全部非空,本页返回空数组。\n- 翻页:返回 nextCursor 非空时把它传回继续扫;nextCursor 为空才表示扫完全表。\n\n返回 data: {records: [...], nextCursor: \"...\"}。", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2380,7 +2209,7 @@ "primary_cli_path": "aitable record query-empty", "reviewed": true, "risk": "low", - "title": "查询空行", + "title": "查询完全没填用户字段的空行", "use_when": [ "需要按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行时。" ] @@ -2397,10 +2226,7 @@ "cli_name": "share-url", "cli_path": "aitable record share-url", "confirmation": "not_required", - "description": "获取指定行记录的分享链接,可用于将记录分享给他人。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按 recordId 批量获取记录分享链接。\n单次最多 20 条;可选 --view-id 生成带视图上下文的链接。\n\n返回 data.items 数组,每项 {recordId, shareUrl};shareUrl 为 null 表示该条获取失败。", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -2414,7 +2240,7 @@ "primary_cli_path": "aitable record share-url", "reviewed": true, "risk": "low", - "title": "get_record_share_url", + "title": "批量获取记录分享链接", "use_when": [ "需要按 recordId 批量获取记录分享链接时。" ] @@ -2431,10 +2257,7 @@ "cli_name": "update", "cli_path": "aitable record update", "confirmation": "not_required", - "description": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值。\n\nrecords 为待更新的记录内容列表 JSON 数组,单次最多 100 条。\n每条记录必须包含 recordId 和 cells 字段。cells 的写入格式与 record create 相同(详见 record create --help)。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。", "effect": "write", "group": "record", "idempotency": "unknown", @@ -2465,10 +2288,7 @@ "cli_name": "upsert", "cli_path": "aitable record upsert", "confirmation": "not_required", - "description": "批量创建或更新记录(Upsert 语义)。传入一批记录,带 recordId 的走更新逻辑,不带 recordId 的走创建逻辑,服务端自动拆分并分别执行。\r\n单次请求的记录总数(创建 + 更新)不得超过 100 条。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按 records 列表自动判断是创建还是更新:\n- 带 recordId 的项 → 走 update(按 recordId 局部更新 cells)\n- 不带 recordId 的项 → 走 create(生成新 recordId)\n\nrecords JSON 结构与 record update 完全一致:[{\"recordId\": \"\u003c可选\u003e\", \"cells\": {...}}, ...]\n单次最多 100 条(创建 + 更新合计)。\ncells 写入格式见 record create --help(key 是 fieldId,value 按字段类型)。\n\n返回 data: {createdRecordIds: [...], updatedRecordIds: [...]},分别按链路汇总。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。", "effect": "write", "group": "record", "idempotency": "unknown", @@ -2482,7 +2302,7 @@ "primary_cli_path": "aitable record upsert", "reviewed": true, "risk": "medium", - "title": "record_upsert", + "title": "批量创建或更新记录(Upsert)", "use_when": [ "需要根据 records 中是否包含 recordId,批量创建新记录或更新现有记录时。" ] @@ -2499,10 +2319,7 @@ "cli_name": "search", "cli_path": "aitable search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按名称关键词搜索 AI 表格 Base。\n这是 dws aitable base search 的便捷别名,两个命令完全等价。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -2515,7 +2332,7 @@ "primary_cli_path": "aitable search", "reviewed": true, "risk": "low", - "title": "搜索 AI 表格", + "title": "AI 表格搜索(dws aitable base search 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable search 兼容便捷路径时。" ] @@ -2532,10 +2349,7 @@ "cli_name": "create", "cli_path": "aitable section create", "confirmation": "not_required", - "description": "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。\r\n\r\n必填:\r\n- baseId\r\n- name\r\n\r\n可选:\r\n- parentSectionId:不传或空字符串表示创建在 Base 根目录下\r\n- index:0-based,不传则追加到末尾\r\n\r\n返回新建分区的 sectionId 与 name。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)。\n不传 --parent-section-id 或传空字符串表示创建在 Base 根目录下。\n--index 为 0-based 位置,不传则追加到末尾。\n返回新建文件夹的 sectionId 与 name。", "effect": "write", "group": "section", "idempotency": "unknown", @@ -2549,7 +2363,7 @@ "primary_cli_path": "aitable section create", "reviewed": true, "risk": "medium", - "title": "创建分组", + "title": "创建文件夹", "use_when": [ "需要在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)时。" ] @@ -2566,10 +2380,7 @@ "cli_name": "delete", "cli_path": "aitable section delete", "confirmation": "user_required", - "description": "删除指定分区。\r\n\r\n必填 baseId、sectionId。\r\n\r\n注意删除操作不可逆;若分区下仍有 table / dashboard,下游会按既有规则处理。\r\n\r\n返回被删除的 sectionId。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除指定文件夹。\n注意:删除操作不可逆;若文件夹下仍有 table / dashboard,下游会按既有规则处理。\n返回被删除的 sectionId。", "effect": "destructive", "group": "section", "idempotency": "unknown", @@ -2583,7 +2394,7 @@ "primary_cli_path": "aitable section delete", "reviewed": true, "risk": "high", - "title": "删除分组", + "title": "删除文件夹", "use_when": [ "需要删除指定文件夹时。" ] @@ -2600,10 +2411,7 @@ "cli_name": "list-empty", "cli_path": "aitable section list-empty", "confirmation": "not_required", - "description": "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;parentSectionId 为空串表示该分区在 Base 根目录下。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树。\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;\nparentSectionId 为空串表示该文件夹在 Base 根目录下。", "effect": "read", "group": "section", "idempotency": "idempotent", @@ -2617,7 +2425,7 @@ "primary_cli_path": "aitable section list-empty", "reviewed": true, "risk": "low", - "title": "查询空分组", + "title": "列出空文件夹", "use_when": [ "需要列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树时。" ] @@ -2634,10 +2442,7 @@ "cli_name": "list-nodes", "cli_path": "aitable section list-nodes", "confirmation": "not_required", - "description": "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;parentSectionId 为空串表示该节点在 Base 根目录下。\r\n\r\n适合在 move_nsheet_node、reorder_section 等操作前用来定位节点 ID 与父级关系。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等。\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;\nparentSectionId 为空串表示该节点在 Base 根目录下。\n适合在 section move-node / section reorder 等操作前用来定位节点 ID 与父级关系。", "effect": "read", "group": "section", "idempotency": "idempotent", @@ -2651,7 +2456,7 @@ "primary_cli_path": "aitable section list-nodes", "reviewed": true, "risk": "low", - "title": "查询AI表格节点", + "title": "列出全部节点", "use_when": [ "需要列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等时。" ] @@ -2668,10 +2473,7 @@ "cli_name": "move-node", "cli_path": "aitable section move-node", "confirmation": "not_required", - "description": "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。\r\n\r\n必填:\r\n- baseId\r\n- nodeId\r\n- newParentSectionId:传空字符串表示移动到 Base 根目录\r\n\r\n可选:\r\n- targetIndex:0-based 全局下标;对分区节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 reorder_section 重试\r\n\r\n服务端会自动识别节点类型,调用方无需区分分区与非分区。\r\n\r\n返回被移动节点的 id、type、目标父级与下标。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置。\n--new-parent-section-id 传空字符串表示移动到 Base 根目录。\n--target-index 为 0-based 全局下标;对文件夹节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 section reorder 重试。\n服务端会自动识别节点类型,调用方无需区分文件夹与非文件夹。\n返回被移动节点的 id、type、目标父级与下标。", "effect": "write", "group": "section", "idempotency": "unknown", @@ -2685,7 +2487,7 @@ "primary_cli_path": "aitable section move-node", "reviewed": true, "risk": "medium", - "title": "移动AI表格节点", + "title": "移动节点", "use_when": [ "需要把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置时。" ] @@ -2702,10 +2504,7 @@ "cli_name": "rename", "cli_path": "aitable section rename", "confirmation": "not_required", - "description": "重命名指定分区。\r\n\r\n必填 baseId、sectionId、newName。\r\n\r\n返回重命名后的 sectionId 与新的 name。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "重命名指定文件夹。\n必填 --base-id、--section-id、--new-name。\n返回重命名后的 sectionId 与新的 name。", "effect": "write", "group": "section", "idempotency": "unknown", @@ -2719,7 +2518,7 @@ "primary_cli_path": "aitable section rename", "reviewed": true, "risk": "medium", - "title": "重命名分组", + "title": "重命名文件夹", "use_when": [ "需要重命名指定文件夹时。" ] @@ -2736,10 +2535,7 @@ "cli_name": "reorder", "cli_path": "aitable section reorder", "confirmation": "not_required", - "description": "在当前父分区下调整分区的展示顺序。\r\n\r\n必填 baseId、sectionId、targetIndex(0-based)。\r\n\r\n返回被调整的 sectionId。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在当前父文件夹下调整文件夹的展示顺序。\n必填 --base-id、--section-id、--target-index(0-based)。\n返回被调整的 sectionId。", "effect": "write", "group": "section", "idempotency": "unknown", @@ -2753,7 +2549,7 @@ "primary_cli_path": "aitable section reorder", "reviewed": true, "risk": "medium", - "title": "调整分组顺序", + "title": "调整文件夹顺序", "use_when": [ "需要在当前父文件夹下调整文件夹的展示顺序时。" ] @@ -2770,10 +2566,7 @@ "cli_name": "create", "cli_path": "aitable table create", "confirmation": "not_required", - "description": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\r\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为“标题”的 primaryDoc 首列。\r\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为“原名 1 / 原名 2 ...”,并在 summary 中返回当前表名。\r\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为\"标题\"的 primaryDoc 首列。\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为\"原名 1 / 原名 2 ...\",并在 summary 中返回当前表名。\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。\n\n--fields 参数说明:\n建表时随附创建的初始字段列表,至少包含 1 个字段,单次最多 15 个。若传空数组 [],系统会自动补一个名为\"标题\"的 primaryDoc 首列。\n建议在此处定义结构清晰的基础字段(如文本、数字、日期、单选等);\n复杂字段(关联、流转等)建议建表完成后通过 field create 单独添加。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型,可选值与 config 结构详见下方字段参考\n config(可选): 字段配置,结构因 type 而异,详见下方参考\n\n字段类型参考(括号内为 config 键,* 表示必填,无括号表示无需 config):\n text: 文本 | number: 数字 (formatter) | singleSelect: 单选 (options*)\n multipleSelect: 多选 (options*) | date: 日期 (formatter)\n currency: 货币 (currencyType, formatter) | user: 人员 (multiple)\n department: 部门 (multiple) | group: 群组 (multiple)\n progress: 进度 (formatter, customizeRange, min, max) | rating: 评分 (min, max, icon)\n checkbox: 勾选 | attachment: 附件 | url: 链接 | richText: 富文本\n telephone: 电话 | email: 邮件 | idCard: 身份证 | barcode: 条码\n geolocation: 地理位置 | address: 行政区域 | primaryDoc: 文档 (仅限第一列) | formula: 公式\n filterUp: 查找引用 (targetSheet*, filters*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n lookup: 关联引用 (associateField*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n unidirectionalLink: 单向关联 (linkedTableId*, multiple)\n bidirectionalLink: 双向关联 (linkedTableId*, multiple)\n creator/lastModifier/createdTime/lastModifiedTime: 系统字段\n\nconfig 结构参考:\n formatter(number): INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4|THOUSAND|THOUSAND_FLOAT|PERCENT|PERCENT_FLOAT\n formatter(date): YYYY-MM-DD | YYYY-MM-DD HH:mm | YYYY-MM-DD HH:mm:ss | YYYY/MM/DD | YYYY/MM/DD HH:mm\n formatter(currency): 可省略(默认 FLOAT_2);若需指定小数位可用 INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4\n formatter(progress): 固定填 \"PERCENT\"\n currencyType(currency): CNY|HKD|USD|EUR|GBP|MOP|VND|JPY|KRW|AED|AUD|BRL|CAD|CHF|INR|IDR|MXN|MYR|PHP|PLN|RUB|SGD|THB|TRY|TWD\n options(singleSelect/multipleSelect): [{\"name\":\"选项名\"}, ...] — id 由系统生成,创建时只需传 name;更新时已有选项建议回传原 id\n multiple(user/department/group/unidirectionalLink/bidirectionalLink): true(多选,默认)| false(单选)\n progress: {\"formatter\":\"PERCENT\"} | 自定义范围: {\"formatter\":\"PERCENT\",\"min\":0,\"max\":1,\"customizeRange\":true}\n rating: {\"min\":1,\"max\":5,\"icon\":\"star\"} — max 范围 1~10\n formula: {\"formula\":\"[单价] * [数量]\"} — 使用 AI 表格公式字符串格式,方括号内填写表内字段名\n filterUp: {\"targetSheet\":\"\u003c目标表ID\u003e\",\"filters\":[{\"fieldId\":\"\u003c目标表字段ID\u003e\",\"operator\":\"equal|contain\",\"value\":\"常量值\",\"currentSheetFieldId\":\"\u003c本表字段ID\u003e\",\"link\":\"AND|OR\"}],\"valuesField\":\"\u003c目标表字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n filters 说明:operator 仅支持 equal/contain;value 与 currentSheetFieldId 二选一(value=常量匹配,currentSheetFieldId=按本表字段动态匹配);link 为多条件逻辑(AND/OR),单条件可省略,多条件必须统一\n lookup: {\"associateField\":\"\u003c关联字段ID\u003e\",\"valuesField\":\"\u003c目标字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n unidirectionalLink/bidirectionalLink: {\"linkedTableId\":\"\u003ctableId\u003e\",\"multiple\":true} — 反向关联端由系统自动创建,MCP 对外协议无需额外参数\n\n已知边界:\n formula 字段在当前服务实例上创建会返回 not supported yet,调用前不要假设可用。\n 关联字段创建对底层主键约束严格;即使已传 linkedTableId,也可能因下游返回\"主键不存在不允许创建关联字段\"而失败。\n\n示例:\n [{\"fieldName\":\"任务名称\",\"type\":\"text\"},\n {\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}},\n {\"fieldName\":\"截止日期\",\"type\":\"date\",\"config\":{\"formatter\":\"YYYY-MM-DD\"}},\n {\"fieldName\":\"负责人\",\"type\":\"user\",\"config\":{\"multiple\":false}}]", "effect": "write", "group": "table", "idempotency": "unknown", @@ -2804,7 +2597,7 @@ "cli_name": "delete", "cli_path": "aitable table delete", "confirmation": "user_required", - "description": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\r\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。", + "description": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。\n若该表为 Base 中最后一张表,删除操作会失败(报错 \"cannot delete the last sheet\")。\n此时可改为调用 base delete 删除整个 Base,或先创建一张新表再删除目标表。", "effect": "destructive", "group": "table", "idempotency": "unknown", @@ -2835,10 +2628,7 @@ "cli_name": "get", "cli_path": "aitable table get", "confirmation": "not_required", - "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;\n字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\n若需读取字段的完整配置,请再调用 field get。", "effect": "read", "group": "table", "idempotency": "idempotent", @@ -2869,10 +2659,7 @@ "cli_name": "list", "cli_path": "aitable table list", "confirmation": "not_required", - "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n这是 dws aitable table get 的便捷别名,两个命令完全等价。", "effect": "read", "group": "table", "idempotency": "idempotent", @@ -2886,7 +2673,7 @@ "primary_cli_path": "aitable table list", "reviewed": true, "risk": "low", - "title": "获取数据表", + "title": "获取数据表信息(dws aitable table get 的别名)", "use_when": [ "需要维持现有脚本或文档中的 table list 兼容调用,并接受其与 table get 等价的结果时。" ] @@ -2903,10 +2690,7 @@ "cli_name": "update", "cli_path": "aitable table update", "confirmation": "not_required", - "description": "重命名指定 Table(数据表)。若新名称不符合命名要求、与同一 Base 下其他表重名或无权限,将返回错误。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定 Table(数据表)的名称、备注说明、行命名规则。\n--name / --description / --record-name-key 至少传一项;三者可同时使用。\n\n--record-name-key(行命名规则)取值是固定枚举键,不是字段 ID。常用值:\n ji_lu / project / task / event / question / customer / order /\n contact / item / issue / ticket / candidate / opportunity / meeting / member / okr 等\n完整枚举集合较大,由服务端校验;传非法 key 会被拒。", "effect": "write", "group": "table", "idempotency": "unknown", @@ -2920,7 +2704,7 @@ "primary_cli_path": "aitable table update", "reviewed": true, "risk": "medium", - "title": "update_table", + "title": "更新数据表", "use_when": [ "需要更新指定 Table(数据表)的名称、备注说明、行命名规则时。" ] @@ -2937,10 +2721,7 @@ "cli_name": "search", "cli_path": "aitable template search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格模板,支持分页。\r\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\r\n返回的 templateId 可直接用于 create_base。\r\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按名称关键词搜索 AI 表格模板,支持分页。\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\n返回的 templateId 可直接用于 base create。\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到\n不传关键词时返回热门模板。", "effect": "read", "group": "template", "idempotency": "idempotent", @@ -2971,10 +2752,7 @@ "cli_name": "create", "cli_path": "aitable view create", "confirmation": "not_required", - "description": "在指定数据表(Table)下创建一个新视图(View)。\r\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\r\n若未传 viewName,则会按视图类型自动生成不重名名称。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定数据表(Table)下创建一个新视图(View)。\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\n若未传 --name,则会按视图类型自动生成不重名名称。\n首列字段是每条数据的索引,不支持删除、移动或隐藏。", "effect": "write", "group": "view", "idempotency": "unknown", @@ -3005,7 +2783,7 @@ "cli_name": "delete", "cli_path": "aitable view delete", "confirmation": "user_required", - "description": "删除指定视图(View)。该操作不可逆。\r\n已知保护:禁止删除数据表中的最后一个视图;锁定视图不允许删除。", + "description": "删除指定视图(View)。该操作不可逆。\n禁止删除数据表中的最后一个视图;锁定视图不允许删除。", "effect": "destructive", "group": "view", "idempotency": "unknown", @@ -3036,10 +2814,7 @@ "cli_name": "duplicate", "cli_path": "aitable view duplicate", "confirmation": "not_required", - "description": "复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。\r\n\r\n通过 baseId / tableId / sourceViewId 三元组定位源视图;未传 newViewName 时自动生成\"原视图名 (副本)\"风格的不重名名称。\r\n\r\n表单视图复制时会重置分享态,不会带过源视图的分享配置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "复制指定视图,生成一个配置完全相同的新视图。\n若不传 --new-name,由系统默认命名(一般为\"原视图名 (副本)\")。", "effect": "write", "group": "view", "idempotency": "unknown", @@ -3070,7 +2845,7 @@ "cli_name": "aggregate", "cli_path": "aitable view get aggregate", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 aggregate 配置。\n适用视图:Grid。返回字段聚合统计配置(map[fieldId]→AggregateAction)。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3084,7 +2859,7 @@ "primary_cli_path": "aitable view get aggregate", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 aggregate 配置", "use_when": [ "需要获取指定视图的 aggregate 配置时。" ] @@ -3101,7 +2876,7 @@ "cli_name": "card", "cli_path": "aitable view get card", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 card 配置。\n适用视图:Kanban / Gallery。返回对应视图的卡片配置子块(kanbanCard 或 galleryCard)。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3115,7 +2890,7 @@ "primary_cli_path": "aitable view get card", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 card 配置", "use_when": [ "需要获取指定视图的 card 配置时。" ] @@ -3132,7 +2907,7 @@ "cli_name": "field-widths", "cli_path": "aitable view get field-widths", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 field-widths 配置。\n适用视图:Grid。返回字段列宽映射(map[fieldId]→width)。注意服务端响应里落在 custom.widthMap,read 路径已自动投影到此。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3146,7 +2921,7 @@ "primary_cli_path": "aitable view get field-widths", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 field-widths 配置", "use_when": [ "需要获取指定视图的 field-widths 配置时。" ] @@ -3163,7 +2938,7 @@ "cli_name": "fill-color-rule", "cli_path": "aitable view get fill-color-rule", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 fill-color-rule 配置。\n读取视图当前的条件填色规则(conditionalFormats 数组)。所有视图类型都支持。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3177,7 +2952,7 @@ "primary_cli_path": "aitable view get fill-color-rule", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 fill-color-rule 配置", "use_when": [ "需要获取指定视图的 fill-color-rule 配置时。" ] @@ -3194,7 +2969,7 @@ "cli_name": "filter", "cli_path": "aitable view get filter", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 filter 配置。\n返回视图当前的筛选规则数组。所有视图类型都支持。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3208,7 +2983,7 @@ "primary_cli_path": "aitable view get filter", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 filter 配置", "use_when": [ "需要获取指定视图的 filter 配置时。" ] @@ -3225,10 +3000,7 @@ "cli_name": "frozen-cols", "cli_path": "aitable view get frozen-cols", "confirmation": "not_required", - "description": "查询指定视图(View)当前的冻结列数(左侧固定列)。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 1),由调用方根据业务约定决定如何兜底。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定视图当前冻结的左侧列数。\n返回 {baseId, tableId, viewId, count}:count 为 null 表示视图未显式设置冻结列。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3259,7 +3031,7 @@ "cli_name": "group", "cli_path": "aitable view get group", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 group 配置。\n返回视图当前的分组规则数组。所有视图类型都支持。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3273,7 +3045,7 @@ "primary_cli_path": "aitable view get group", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 group 配置", "use_when": [ "需要获取指定视图的 group 配置时。" ] @@ -3290,10 +3062,7 @@ "cli_name": "lock", "cli_path": "aitable view get lock", "confirmation": "not_required", - "description": "查询指定视图(View)当前的锁定状态。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图,返回 locked 字段(true 表示已锁定)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定视图的锁定状态。返回 {baseId, tableId, viewId, locked: \u003cbool\u003e}:\nlocked 为 true 表示视图已锁定,false 表示未锁定。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3324,10 +3093,7 @@ "cli_name": "row-height", "cli_path": "aitable view get row-height", "confirmation": "not_required", - "description": "查询指定视图(View)当前的单元格行高,单位为像素。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 32px),由调用方根据业务约定决定如何兜底。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定视图当前的单元格行高,单位为像素。\n返回 {baseId, tableId, viewId, cellHeight}:cellHeight 为 null 表示视图未显式设置(前端实际显示回落到默认 32px)。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3341,7 +3107,7 @@ "primary_cli_path": "aitable view get row-height", "reviewed": true, "risk": "low", - "title": "获取视图行高", + "title": "获取视图行高(单元格高度)", "use_when": [ "需要获取指定视图当前的单元格行高,单位为像素时。" ] @@ -3358,7 +3124,7 @@ "cli_name": "sort", "cli_path": "aitable view get sort", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 sort 配置。\n返回视图当前的排序规则数组。所有视图类型都支持。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3372,7 +3138,7 @@ "primary_cli_path": "aitable view get sort", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 sort 配置", "use_when": [ "需要获取指定视图的 sort 配置时。" ] @@ -3389,7 +3155,7 @@ "cli_name": "timebar", "cli_path": "aitable view get timebar", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 timebar 配置。\n适用视图:Gantt。返回 ganttTimebar 子块(startField / endField / displayFieldId / timelineScale / colorConfigs / officialHoliday)。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3403,7 +3169,7 @@ "primary_cli_path": "aitable view get timebar", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 timebar 配置", "use_when": [ "需要获取指定视图的 timebar 配置时。" ] @@ -3420,7 +3186,7 @@ "cli_name": "visible-fields", "cli_path": "aitable view get visible-fields", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 visible-fields 配置。\n返回视图当前可见字段 ID 列表(即 columns 字段,按显示顺序)。所有视图类型都支持。", "effect": "read", "group": "view.get", "idempotency": "idempotent", @@ -3434,7 +3200,7 @@ "primary_cli_path": "aitable view get visible-fields", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图 visible-fields 配置", "use_when": [ "需要获取指定视图的 visible-fields 配置时。" ] @@ -3451,10 +3217,7 @@ "cli_name": "list", "cli_path": "aitable view list", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)。\n这是 dws aitable view get 的便捷别名,两个命令完全等价;不传 --view-ids 时返回当前表全部视图。", "effect": "read", "group": "view", "idempotency": "idempotent", @@ -3468,7 +3231,7 @@ "primary_cli_path": "aitable view list", "reviewed": true, "risk": "low", - "title": "get_views", + "title": "获取视图信息(dws aitable view get 的别名)", "use_when": [ "需要批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)时。" ] @@ -3485,10 +3248,7 @@ "cli_name": "lock", "cli_path": "aitable view lock", "confirmation": "not_required", - "description": "锁定或解锁指定视图(View)。\r\n\r\n- lock:锁定后视图不再允许被修改或删除\r\n- unlock:解锁后恢复可编辑状态\r\n\r\n操作幂等:对已锁定视图再次 lock 或对未锁定视图再次 unlock 不会报错。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "锁定指定视图,禁止他人编辑。默认锁定;传 --off 解锁。\n返回 {baseId, tableId, viewId, action, locked}。", "effect": "write", "group": "view", "idempotency": "unknown", @@ -3502,7 +3262,7 @@ "primary_cli_path": "aitable view lock", "reviewed": true, "risk": "medium", - "title": "锁定或解锁视图", + "title": "锁定/解锁视图", "use_when": [ "需要锁定指定视图,禁止他人编辑时。" ] @@ -3519,21 +3279,18 @@ "cli_name": "aggregate", "cli_path": "aitable view update aggregate", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "更新 Grid 视图的 aggregate 配置。value 为 map[fieldId]→AggregateAction string,\n传 null 清除单个字段聚合。便捷 flag:--field-id / --action 单字段写入;--clear-field-id 单/多清除。", "effect": "write", "group": "view.update", "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "metadata_source": "embedded-mcp-metadata", "name": "view_update_aggregate", "primary_cli_path": "aitable view update aggregate", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图字段聚合统计(仅 Grid)", "use_when": [ "需要更新 Grid 视图的 aggregate 配置时。" ] @@ -3550,21 +3307,18 @@ "cli_name": "card", "cli_path": "aitable view update card", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性局部更新视图的 card 配置。preflight 调 get_views 拿 viewType 后分发:\n - Kanban → kanbanCard {coverFieldId, coverResizeMode, hiddenFieldTitle}\n - Gallery → galleryCard {coverMode, coverFieldId, coverResizeMode, displayFieldName}\ntyped flag 与 --json 同时存在时,typed flag 优先。--no-cover 与 --cover-field-id 互斥。", "effect": "write", "group": "view.update", "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "metadata_source": "embedded-mcp-metadata", "name": "view_update_card", "primary_cli_path": "aitable view update card", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图 card 配置(Kanban / Gallery)", "use_when": [ "需要按属性局部更新指定视图的卡片配置时。" ] @@ -3581,21 +3335,18 @@ "cli_name": "field-widths", "cli_path": "aitable view update field-widths", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "更新 Grid 视图的字段列宽。value 为 map[fieldId]→width(int),可单字段或批量。", "effect": "write", "group": "view.update", "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "metadata_source": "embedded-mcp-metadata", "name": "view_update_field_widths", "primary_cli_path": "aitable view update field-widths", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图字段列宽(仅 Grid)", "use_when": [ "需要更新 Grid 视图的字段列宽时。" ] @@ -3612,10 +3363,7 @@ "cli_name": "fill-color-rule", "cli_path": "aitable view update fill-color-rule", "confirmation": "not_required", - "description": "设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。传空数组 [] 表示清空当前视图的填色规则。单次最多设置 40 条规则;超出会被拒绝。注意:每条规则的 filters 数组只能有 1 条(filters[0])。如需多条件,请拆成多条规则。仅支持 Grid 视图;锁定视图不允许修改。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "全量覆盖指定 Grid 视图的条件填色规则。仅支持 --json 入口,每项规则结构:\n {type: cell|row|column|preRow, formatFieldId, format: {color}, filters: [{fieldId, symbol, value?}]}\n- color 必须用 FORMAT_COLORS 代号(如 firstLine1..firstLine11),不支持 hex\n- symbol 取 GT/LT/GTE/LTE/EQ/NE/CONTAIN/EXCLUSIVE/EXIST/UN_EXIST/ALL_OF/ANY_OF/NONE_OF/BEFORE/AFTER/NOT_BEFORE/NOT_AFTER/DATE_EQ/FROM_NOW/DATE_BETWEEN\n- 传 --json '[]' 清空当前视图所有填色规则", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3629,7 +3377,7 @@ "primary_cli_path": "aitable view update fill-color-rule", "reviewed": true, "risk": "medium", - "title": "设置视图填色规则", + "title": "更新视图数据高亮规则", "use_when": [ "需要全量覆盖指定 Grid 视图的条件填色规则时。" ] @@ -3646,10 +3394,7 @@ "cli_name": "filter", "cli_path": "aitable view update filter", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)。\n[{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fldX\",\"value\"]}]}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3663,7 +3408,7 @@ "primary_cli_path": "aitable view update filter", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图 filter 配置", "use_when": [ "需要按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)时。" ] @@ -3680,10 +3425,7 @@ "cli_name": "frozen-cols", "cli_path": "aitable view update frozen-cols", "confirmation": "not_required", - "description": "设置指定视图(View)的冻结列数(左侧固定列),默认 1。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置视图冻结列数。--count N 表示从首列起冻结 N 列;--count 0 表示取消冻结。\n返回 {baseId, tableId, viewId, count}。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3697,7 +3439,7 @@ "primary_cli_path": "aitable view update frozen-cols", "reviewed": true, "risk": "medium", - "title": "设置视图冻结列数", + "title": "更新视图冻结列数", "use_when": [ "需要设置视图冻结列数时。" ] @@ -3714,10 +3456,7 @@ "cli_name": "group", "cli_path": "aitable view update group", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3731,7 +3470,7 @@ "primary_cli_path": "aitable view update group", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图 group 配置", "use_when": [ "需要按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)时。" ] @@ -3748,10 +3487,7 @@ "cli_name": "name", "cli_path": "aitable view update name", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "重命名指定视图,等价于 dws aitable view update --name X。无 config 参数。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3765,7 +3501,7 @@ "primary_cli_path": "aitable view update name", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "重命名视图(= view update --name 的便捷子命令)", "use_when": [ "需要重命名指定视图,等价于执行 dws aitable view update --name X 时。" ] @@ -3782,10 +3518,7 @@ "cli_name": "row-height", "cli_path": "aitable view update row-height", "confirmation": "not_required", - "description": "设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n工具层不做范围或枚举校验,超出下游允许范围的取值由下游回填错误。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置视图单元格高度,单位为像素。--cell-height 必填,合法档位 32 / 56 / 88 / 128,默认 32。\n返回 {baseId, tableId, viewId, cellHeight}。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3799,7 +3532,7 @@ "primary_cli_path": "aitable view update row-height", "reviewed": true, "risk": "medium", - "title": "set_cell_height_of_view", + "title": "更新视图行高(单元格高度)", "use_when": [ "需要设置视图单元格高度,单位为像素时。" ] @@ -3816,10 +3549,7 @@ "cli_name": "sort", "cli_path": "aitable view update sort", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3833,7 +3563,7 @@ "primary_cli_path": "aitable view update sort", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图 sort 配置", "use_when": [ "需要按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)时。" ] @@ -3850,21 +3580,18 @@ "cli_name": "timebar", "cli_path": "aitable view update timebar", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性局部更新 Gantt 视图的 ganttTimebar 配置。\n子字段:startField / endField (date 字段) / displayFieldId / timelineScale (year|quarter|month|weeks) /\ncolorConfigs (JSON 数组) / officialHoliday (bool)。", "effect": "write", "group": "view.update", "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "metadata_source": "embedded-mcp-metadata", "name": "view_update_timebar", "primary_cli_path": "aitable view update timebar", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图 timebar 配置(仅 Gantt)", "use_when": [ "需要按属性局部更新 Gantt 视图的 ganttTimebar 配置时。" ] @@ -3881,10 +3608,7 @@ "cli_name": "visible-fields", "cli_path": "aitable view update visible-fields", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按属性更新视图的 visibleFieldIds(即列顺序)。传入的字段 ID 列表\n完全替换原有顺序;首列字段不可隐藏。所有视图类型都支持。", "effect": "write", "group": "view.update", "idempotency": "unknown", @@ -3898,7 +3622,7 @@ "primary_cli_path": "aitable view update visible-fields", "reviewed": true, "risk": "medium", - "title": "update_view", + "title": "更新视图可见字段列表", "use_when": [ "需要按属性更新视图的 visibleFieldIds(即列顺序)时。" ] @@ -3915,7 +3639,7 @@ "cli_name": "disable", "cli_path": "aitable workflow disable", "confirmation": "user_required", - "description": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。", + "description": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。\n此操作直接影响业务自动化,建议在交互场景下用 --yes 二次确认。\n返回 {workflowId, disabled} 用于确认操作结果(disabled 为动作确认而非状态查询)。", "effect": "write", "group": "workflow", "idempotency": "unknown", @@ -3929,7 +3653,7 @@ "primary_cli_path": "aitable workflow disable", "reviewed": true, "risk": "high", - "title": "禁用自动化工作流", + "title": "禁用指定工作流(高危)", "use_when": [ "需要禁用指定 Base 中的自动化工作流时。" ] @@ -3946,10 +3670,7 @@ "cli_name": "enable", "cli_path": "aitable workflow enable", "confirmation": "not_required", - "description": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。\n返回 {workflowId, enabled} 用于确认操作结果(enabled 为动作确认而非状态查询)。\n当前不支持通过 CLI 新建工作流,请在 AI 表格 Web 端配置好后用 workflow list 拿到 workflowId 再启停。", "effect": "write", "group": "workflow", "idempotency": "unknown", @@ -3963,7 +3684,7 @@ "primary_cli_path": "aitable workflow enable", "reviewed": true, "risk": "medium", - "title": "启用自动化工作流", + "title": "启用指定工作流", "use_when": [ "需要启用指定 Base 中的自动化工作流时。" ] @@ -3980,10 +3701,7 @@ "cli_name": "get", "cli_path": "aitable workflow get", "confirmation": "not_required", - "description": "获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)。\n返回结构由服务端 getFlowDetail 透传,agent 应按需读取关心字段。", "effect": "read", "group": "workflow", "idempotency": "idempotent", @@ -3997,7 +3715,7 @@ "primary_cli_path": "aitable workflow get", "reviewed": true, "risk": "low", - "title": "获取自动化工作流", + "title": "获取单个工作流详情", "use_when": [ "需要获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)时。" ] @@ -4014,10 +3732,7 @@ "cli_name": "list", "cli_path": "aitable workflow list", "confirmation": "not_required", - "description": "列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。支持分页,limit 默认 20,最大 100;offset 默认 0。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定 Base 中的自动化工作流,支持分页。\n--limit 默认服务端 20,最大 100;--offset 默认 0。\n返回结构由服务端 searchFlows 透传,含 workflowId、name 等字段。", "effect": "read", "group": "workflow", "idempotency": "idempotent", @@ -4031,7 +3746,7 @@ "primary_cli_path": "aitable workflow list", "reviewed": true, "risk": "low", - "title": "列出自动化工作流", + "title": "列出 Base 下的工作流", "use_when": [ "需要列出指定 Base 中的自动化工作流,支持分页时。" ] @@ -4128,14 +3843,11 @@ "cli_path": "attendance adjustment get", "confirmation": "not_required", "description": "调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情。\n--adjustment-id 必填。注意:已被删除或被更新覆盖的补卡规则无法查询到。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "adjustment", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "adjustment_get", "primary_cli_path": "attendance adjustment get", "reviewed": true, @@ -4157,15 +3869,12 @@ "cli_name": "search", "cli_path": "attendance adjustment search", "confirmation": "not_required", - "description": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)", "effect": "read", "group": "adjustment", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "adjustment_search", "primary_cli_path": "attendance adjustment search", "reviewed": true, @@ -4188,14 +3897,11 @@ "cli_path": "attendance approve list", "confirmation": "not_required", "description": "查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)。\n审批类型 --types 支持以下关键词(多个用英文逗号分隔):\n - overtime / 加班 → bizType=1\n - trip / travel / business_trip / business-trip / 出差 / 外出 → bizType=2(出差与外出在查询接口合并为同一类,不再细分)\n - leave / 请假 → bizType=3\n - patch / repair-check / repair_check / 补卡 → bizType=4\n说明:\n - 服务端查询接口 bizType=2 同时覆盖出差与外出,传入 trip / travel / 出差 / 外出 任一别名都会返回这两类合并的记录;\n - 如需在提交入口区分外出(TRAVEL)与出差(OUT),请改用 dws attendance approve templates --type travel|out;\n - 返回每条记录含:用户 ID、审批标签、审批子类型、审批类型、生效时间、时长、时长单位、流程实例 ID。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "approve", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "approve_list", "primary_cli_path": "attendance approve list", "reviewed": true, @@ -4218,14 +3924,11 @@ "cli_path": "attendance approve templates", "confirmation": "not_required", "description": "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接。\n审批类型支持:repair-check/patch/补卡、leave/请假、overtime/加班、travel/外出、out/trip/出差,也支持直接传 REPAIR_CHECK、LEAVE、OVERTIME、TRAVEL、OUT。\n向用户展示提交入口时,不要直接裸露 submitUrl,应使用 Markdown 可点击链接格式:[表单名称](submitUrl)。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "approve", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "approve_templates", "primary_cli_path": "attendance approve templates", "reviewed": true, @@ -4247,10 +3950,7 @@ "cli_name": "list", "cli_path": "attendance shift list", "confirmation": "not_required", - "description": "批量查询多个员工在指定日期的考勤班次信息,返回每条记录包含:用户 ID(userId)、工作日期(workDate,毫秒时间戳)、打卡类型(checkType,如 OnDuty 表示上班)、计划打卡时间(planCheckTime,毫秒时间戳)以及是否为休息日(isRest,\"Y\"/\"N\")。结果基于组织考勤配置生成,仅返回调用者有权限查看的员工数据,适用于排班核对、考勤预览等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量查询多个员工在指定日期的考勤班次信息。\n返回每条记录含:用户 ID、工作日期、打卡类型(OnDuty/OffDuty)、\n计划打卡时间、是否休息日。间隔不超过 7 天,最多 50 人。", "effect": "read", "group": "shift", "idempotency": "idempotent", @@ -4264,7 +3964,7 @@ "primary_cli_path": "attendance shift list", "reviewed": true, "risk": "low", - "title": "batch_get_employee_shifts", + "title": "批量查询员工班次信息", "use_when": [ "当用户需要批量查询多个员工在不超过七天范围内的考勤班次信息,并能提供命令所需的查询条件时使用。" ] @@ -4284,8 +3984,8 @@ "description": "调用 MCP 工具 boss_check 修改员工打卡记录。管理员可修改打卡时间、打卡结果等信息。\n\n参数说明:\n --plan-id 排班ID(与 --result-id 二选一)\n 来源:通过 dws attendance schedule get 获取,返回结果的 id 字段\n 示例:id: 948964045503 表示某天下班打卡的排班记录ID\n\n --result-id 打卡结果ID(与 --plan-id 二选一,优先使用)\n 来源:暂不支持(record get 未返回此字段),建议使用 --plan-id\n\n --time 新打卡时间,格式 yyyy-MM-dd HH:mm(可选)\n --result 打卡结果:Normal/TimesResultA/TimesResultB/TimesResultC/TimesResultD/TimesResultE/TimesResultF(可选)\n --absent-min 缺勤时长(分钟),当 result 为异常状态时需传值(可选)\n --remark 备注,最长500字符(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示\n\n打卡结果枚举值:\n Normal 正常\n TimesResultA 迟到\n TimesResultB 早退\n TimesResultC 缺卡\n TimesResultD 迟到+早退\n TimesResultE 缺卡+早退\n TimesResultF 迟到+缺卡\n\n获取 planId 步骤:\n 1. 查询排班记录:dws attendance schedule get --userIdList USER_ID --workDateBegin DATE --workDateEnd DATE\n 2. 从返回结果中找到对应打卡类型(OnDuty=上班,OffDuty=下班)的 id 字段\n 3. 使用该 id 作为 --plan-id 参数", "effect": "write", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "boss_check", "primary_cli_path": "attendance boss-check", "reviewed": true, @@ -4308,14 +4008,11 @@ "cli_path": "attendance check record", "confirmation": "not_required", "description": "查询指定用户的打卡流水记录。\n返回每条记录含:用户 ID、实际打卡时间、打卡地址、打卡经纬度、\n打卡类型(OnDuty/OffDuty)、定位方式(Map/Wifi/etc)。\n时间跨度不超过 1 个月。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "check", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "check_record", "primary_cli_path": "attendance check record", "reviewed": true, @@ -4338,14 +4035,11 @@ "cli_path": "attendance check result", "confirmation": "not_required", "description": "查询指定用户的打卡结果记录。\n返回每条记录含:用户 ID、工作日期、时间结果(Normal/Late/Early/Absenteeism/NotSigned)、\n位置结果、计划打卡时间、实际打卡时间、打卡流水 ID。\n时间跨度不超过 1 个月,最多 100 人。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "check", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "check_result", "primary_cli_path": "attendance check result", "reviewed": true, @@ -4368,14 +4062,11 @@ "cli_path": "attendance checkin records", "confirmation": "not_required", "description": "查询指定员工在一段时间内的签到记录。\n权限说明:\n - Boss / 超级管理员 / 超级子管理员:可查看全公司员工\n - 子管理员:可查看管理范围内的员工及自己\n - 部门主管:可查看所管理部门的员工及自己\n - 普通员工:只能查询自己\n\n日期格式:yyyy-MM-dd HH:mm:ss(如 2026-04-01 09:00:00)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "checkin", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "checkin_records", "primary_cli_path": "attendance checkin records", "reviewed": true, @@ -4401,8 +4092,8 @@ "effect": "write", "group": "class", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "class_create", "primary_cli_path": "attendance class create", "reviewed": true, @@ -4425,14 +4116,11 @@ "cli_path": "attendance class get", "confirmation": "not_required", "description": "调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息。--class-id 必填。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "class", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "class_get", "primary_cli_path": "attendance class get", "reviewed": true, @@ -4455,14 +4143,11 @@ "cli_path": "attendance class search", "confirmation": "not_required", "description": "查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤。\n所有参数均为可选项:\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(最大 200,默认 20)\n --query 班次名称关键字,模糊搜索\n --filter-type 班次类型:ALL(全部班次)/ MINE_OWN(我负责的),默认 ALL", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "class", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "class_search", "primary_cli_path": "attendance class search", "reviewed": true, @@ -4488,8 +4173,8 @@ "effect": "write", "group": "class", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "class_update", "primary_cli_path": "attendance class update", "reviewed": true, @@ -4511,23 +4196,17 @@ "cli_name": "summary", "cli_path": "attendance summary", "confirmation": "not_required", - "description": "获取考勤统计摘要", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询某个人的考勤统计摘要。--user、--date、--stats-type 均必填。\nstatsType 统计类型支持:week(周统计)、month(月统计)。", "effect": "read", "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", "metadata_source": "embedded-mcp-metadata", "name": "get_attendance_summary", "primary_cli_path": "attendance summary", "reviewed": true, "risk": "low", - "title": "get_attendance_summary", + "title": "查询某个人的考勤统计摘要", "use_when": [ "当用户需要查询指定用户的周度或月度考勤统计摘要,并能提供命令所需的查询条件时使用。" ] @@ -4544,10 +4223,7 @@ "cli_name": "get", "cli_path": "attendance record get", "confirmation": "not_required", - "description": "查询指定用户在某一天的考勤详情,包括实际打卡记录(如上班/下班时间、是否正常打卡)、当日所排班次、所属考勤组信息、是否为休息日、出勤工时(如 \"0Hours\")、加班时长等。返回数据受组织权限和隐私策略限制,仅当调用者有权限查看该用户考勤信息时才返回有效内容。适用于员工自助查询、HR 核对出勤或审批关联场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询个人考勤详情", "effect": "read", "group": "record", "idempotency": "idempotent", @@ -4561,7 +4237,7 @@ "primary_cli_path": "attendance record get", "reviewed": true, "risk": "low", - "title": "查询指定用户某一天的考勤详情", + "title": "查询个人考勤详情", "use_when": [ "当用户需要查询指定用户在指定日期的个人考勤详情,并能提供命令所需的查询条件时使用。" ] @@ -4579,14 +4255,11 @@ "cli_path": "attendance globalsetting get", "confirmation": "not_required", "description": "查询全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次查询面向全局范围\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "globalsetting", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "globalsetting_get", "primary_cli_path": "attendance globalsetting get", "reviewed": true, @@ -4612,8 +4285,8 @@ "effect": "write", "group": "globalsetting", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "globalsetting_save", "primary_cli_path": "attendance globalsetting save", "reviewed": true, @@ -4639,8 +4312,8 @@ "effect": "write", "group": "group", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_create", "primary_cli_path": "attendance group create", "reviewed": true, @@ -4663,14 +4336,11 @@ "cli_path": "attendance group filtered-get", "confirmation": "not_required", "description": "调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集,\n强烈建议在仅需查询成员信息、打卡地址、蓝牙、Wifi 时使用,节省查询成本。\n--group-id 必填;四个过滤字段均可选(不传则默认 false,即不查询该字段)。\n --member 是否查询考勤组成员信息\n --position 是否查询打卡地址\n --wifi 是否查询打卡 Wifi\n --bles 是否查询打卡蓝牙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "group", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_filtered_get", "primary_cli_path": "attendance group filtered-get", "reviewed": true, @@ -4693,14 +4363,11 @@ "cli_path": "attendance group get", "confirmation": "not_required", "description": "调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息。\n--group-id 必填。如果只需查询成员、打卡地址、蓝牙、Wifi 子集,请使用 group filtered-get 以节省查询成本。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "group", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_get", "primary_cli_path": "attendance group get", "reviewed": true, @@ -4722,15 +4389,12 @@ "cli_name": "search", "cli_path": "attendance group search", "confirmation": "not_required", - "description": "根据当前用户的权限和筛选条件获取考勤组简要信息。\n入参 ATGroupSearchParam 对象(至少填写一个子字段)和 PageQuery 对象(两个子字段必填)均不能为空。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据当前用户的权限和筛选条件获取考勤组简要信息。\nCLI 会在未传筛选条件时补齐默认查询字段,在未传分页参数时补齐 page=1、limit=20,以满足服务端非空对象约束。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)", "effect": "read", "group": "group", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_search", "primary_cli_path": "attendance group search", "reviewed": true, @@ -4756,8 +4420,8 @@ "effect": "write", "group": "group", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_update", "primary_cli_path": "attendance group update", "reviewed": true, @@ -4783,8 +4447,8 @@ "effect": "write", "group": "group", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_update_members", "primary_cli_path": "attendance group update-members", "reviewed": true, @@ -4807,14 +4471,11 @@ "cli_path": "attendance overtime get", "confirmation": "not_required", "description": "调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情。\n--overtime-id 必填。已被删除或更新覆盖的加班规则也可以查到。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "overtime", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "overtime_get", "primary_cli_path": "attendance overtime get", "reviewed": true, @@ -4836,15 +4497,12 @@ "cli_name": "search", "cli_path": "attendance overtime search", "confirmation": "not_required", - "description": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)", "effect": "read", "group": "overtime", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "overtime_search", "primary_cli_path": "attendance overtime search", "reviewed": true, @@ -4866,10 +4524,7 @@ "cli_name": "rules", "cli_path": "attendance rules", "confirmation": "not_required", - "description": "查询考勤组/考勤规则:\"我属于哪个考勤组\"\"我们的打卡范围是什么\"\"弹性工时是怎么算的\"", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "调用 MCP 工具 query_attendance_group_or_rules 查询考勤组/考勤规则。\n例如:我属于哪个考勤组、打卡范围是什么、弹性工时怎么算。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -4882,7 +4537,7 @@ "primary_cli_path": "attendance rules", "reviewed": true, "risk": "low", - "title": "query_attendance_group_or_rules", + "title": "查询考勤组与考勤规则", "use_when": [ "当用户需要查询当前用户在指定日期适用的考勤组或考勤规则,并能提供命令所需的查询条件时使用。" ] @@ -4900,14 +4555,11 @@ "cli_path": "attendance report columns", "confirmation": "not_required", "description": "根据操作者的列权限,过滤并返回其有权查看的考勤字段列表。\n操作者必须是管理员,否则返回权限错误。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "report", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "report_columns", "primary_cli_path": "attendance report columns", "reviewed": true, @@ -4930,14 +4582,11 @@ "cli_path": "attendance report query-data", "confirmation": "not_required", "description": "根据字段查询考勤数据,含列权限过滤和用户查看权限校验。\n--columns 为字段 ID 列表(逗号分隔),可通过 dws attendance report columns 获取。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "report", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "report_query_data", "primary_cli_path": "attendance report query-data", "reviewed": true, @@ -4960,14 +4609,11 @@ "cli_path": "attendance report query-leave", "confirmation": "not_required", "description": "查询用户假期数据,含用户查看权限校验。\n--leave-names 为假期类型名称列表(逗号分隔),不传则查询所有假期类型。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "report", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "report_query_leave", "primary_cli_path": "attendance report query-leave", "reviewed": true, @@ -4990,14 +4636,11 @@ "cli_path": "attendance schedule get", "confirmation": "not_required", "description": "获取指定用户在一段时间内的排班记录。\n返回每条记录包含 userId、classId、workDate、className、checkBeginTime、checkEndTime 等字段。\n\n日期格式支持:\n - YYYY-MM-DD(如 2026-04-01)\n - YYYY-MM-DD HH:mm:ss(如 2026-04-01 09:00:00)\n\n示例:\n dws attendance schedule get --users user001,user002 --start 2026-04-01 --end 2026-04-30", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "schedule", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "schedule_get", "primary_cli_path": "attendance schedule get", "reviewed": true, @@ -5023,8 +4666,8 @@ "effect": "write", "group": "schedule", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "schedule_import", "primary_cli_path": "attendance schedule import", "reviewed": true, @@ -5047,14 +4690,11 @@ "cli_path": "attendance selfsetting get", "confirmation": "not_required", "description": "查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括:\n checkRemind(打卡提醒)\n fastCheck(极速打卡)\n checkResultNotify(打卡结果通知)\n lackRemind(缺卡提醒)\n personalAttendStatNotify(个人考勤统计通知)\n bossAttendStatNotify(团队考勤统计通知)\n --user 必填,查询用户 ID,对应 MCP 参数 userId\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n\n出参字段说明:\n 顶层返回 ServiceResult:\n success 请求是否成功\n code 请求结果码\n message 请求结果说明\n result 个人规则设置结果;服务端可能根据 --setting-scene 仅返回对应设置项相关字段\n\n result 通用字段:\n corpId 企业 ID\n userId 用户 ID\n\n settingScene=checkRemind(打卡提醒)相关字段:\n checkRemindSetting DING 提醒渠道设置\n checkRemindSetting.onDutyRemind 上班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindSetting.offDutyRemind 下班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindUserOnDuty 工作通知渠道:用户个人上班打卡提醒开关\n checkRemindUserOffDuty 工作通知渠道:用户个人下班打卡提醒开关\n enableOndutyCheckRemindOfPc PC 端弹窗渠道:上班打卡提醒开关\n enableOffdutyCheckRemindOfPc PC 端弹窗渠道:下班打卡提醒开关\n\n settingScene=fastCheck(极速打卡)相关字段:\n ondutyCheckType 上班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n ondutyRemindStartMin 上班打卡提醒开始时间,单位:分钟\n ondutyRemindEndMin 上班打卡提醒结束时间,单位:分钟\n fastCheckLateNeedConfirm 迟到时是否需要二次确认\n offdutyCheckType 下班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n offdutyRemindStartMin 下班打卡提醒开始时间,单位:分钟\n offdutyRemindEndMin 下班打卡提醒结束时间,单位:分钟\n canUpdateOffDuty 是否允许用户更新下班打卡设置\n voiceRemindSwitch 极速打卡提示音开关\n vibrationRemindSwitch 极速打卡震动提醒开关\n\n settingScene=checkResultNotify(打卡结果通知)相关字段:\n checkResultMsg 打卡结果通知开关:0 关闭,1 开启\n\n settingScene=lackRemind(缺卡提醒)相关字段:\n lackSendTodoMsg 待办提醒开关:0 关闭,null 或 1 开启\n lackRemindUser 工作通知渠道:用户个人缺卡提醒开关:0 关闭,null 或 1 开启\n\n settingScene=personalAttendStatNotify(个人考勤统计通知)相关字段:\n personDailyReportSwitch 日报推送开关:0 关闭,1 开启\n personWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n personMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n\n settingScene=bossAttendStatNotify(团队考勤统计通知)相关字段:\n bossPushStartMin 日报推送开始时间,单位:分钟;-1 表示关闭日报推送\n bossWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n bossMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "selfsetting", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "selfsetting_get", "primary_cli_path": "attendance selfsetting get", "reviewed": true, @@ -5080,8 +4720,8 @@ "effect": "write", "group": "selfsetting", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "selfsetting_save", "primary_cli_path": "attendance selfsetting save", "reviewed": true, @@ -5104,14 +4744,11 @@ "cli_path": "attendance vacation balance", "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额。\n例如:查询某员工年假还剩多少、病假额度等。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "vacation", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "vacation_balance", "primary_cli_path": "attendance vacation balance", "reviewed": true, @@ -5134,14 +4771,11 @@ "cli_path": "attendance vacation records", "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录。\n例如:查询某员工年假变更历史、请假扣减记录等。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "vacation", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "vacation_records", "primary_cli_path": "attendance vacation records", "reviewed": true, @@ -5167,8 +4801,8 @@ "effect": "write", "group": "vacation", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "vacation_save_balance", "primary_cli_path": "attendance vacation save-balance", "reviewed": true, @@ -5191,14 +4825,11 @@ "cli_path": "attendance vacation types", "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表。\n例如:年假、事假、病假等假期类型及对应规则。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "vacation", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "vacation_types", "primary_cli_path": "attendance vacation types", "reviewed": true, @@ -5224,8 +4855,8 @@ "effect": "write", "group": "vacation", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "vacation_update_type", "primary_cli_path": "attendance vacation update-type", "reviewed": true, @@ -5326,10 +4957,7 @@ "cli_name": "add", "cli_path": "calendar attachment add", "confirmation": "not_required", - "description": "为日程添加附件。请先使用钉盘功能上传附件,得到文件id", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为指定日程添加附件。需先用钉盘上传文件得到 fileId,再以 \u003cfileId\u003e:\u003cname\u003e 形式逗号分隔传入。注意:订阅日历下的日程不支持添加附件", "effect": "write", "group": "attachment", "idempotency": "unknown", @@ -5360,10 +4988,7 @@ "cli_name": "add", "cli_path": "calendar attendee add", "confirmation": "not_required", - "description": "向已存在的指定日程添加参与者,支持批量添加多人,可设置参与者类型和通知方式", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "添加日程的参会人。注意:订阅日历下的日程无参会人,因此不可添加", "effect": "write", "group": "attendee", "idempotency": "unknown", @@ -5377,7 +5002,7 @@ "primary_cli_path": "calendar attendee add", "reviewed": true, "risk": "medium", - "title": "添加日程参与人", + "title": "添加参会人", "use_when": [ "需要添加日程的参会人时。" ] @@ -5394,10 +5019,7 @@ "cli_name": "add", "cli_path": "calendar room add", "confirmation": "not_required", - "description": "为日程(event)添加 会议室,完成会议室的预定", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "room是会议室,用于线下开会场景。将room加入到日程完成预订", "effect": "write", "group": "room", "idempotency": "unknown", @@ -5411,7 +5033,7 @@ "primary_cli_path": "calendar room add", "reviewed": true, "risk": "medium", - "title": "添加会议室", + "title": "预定会议室", "use_when": [ "需要为已有日程预订并添加一个或多个线下会议室时。" ] @@ -5428,10 +5050,7 @@ "cli_name": "create", "cli_path": "calendar event create", "confirmation": "not_required", - "description": "创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建日程。\n\n周期日程说明:--recurrence-* 不是彼此独立的参数。一旦指定任一 --recurrence-* 标志,就必须一次性提供**完整**的循环规则,\n至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。", "effect": "write", "group": "event", "idempotency": "unknown", @@ -5462,10 +5081,7 @@ "cli_name": "delete", "cli_path": "calendar event delete", "confirmation": "user_required", - "description": "删除指定日程,组织者删除将通知所有参与者,参与者删除仅从自己日历移除", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除日程", "effect": "destructive", "group": "event", "idempotency": "unknown", @@ -5479,7 +5095,7 @@ "primary_cli_path": "calendar event delete", "reviewed": true, "risk": "high", - "title": "删除指定日程", + "title": "删除日程", "use_when": [ "需要删除日程时。" ] @@ -5496,10 +5112,7 @@ "cli_name": "delete", "cli_path": "calendar room delete", "confirmation": "user_required", - "description": "移除日程中预约的会议室。\r\n1. 从日程中移除该会议室\r\n2. 释放该会议室预定记录", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "移除会议室", "effect": "write", "group": "room", "idempotency": "unknown", @@ -5513,7 +5126,7 @@ "primary_cli_path": "calendar room delete", "reviewed": true, "risk": "high", - "title": "移除日程中的会议室", + "title": "移除会议室", "use_when": [ "需要移除会议室时。" ] @@ -5530,10 +5143,7 @@ "cli_name": "get", "cli_path": "calendar book get", "confirmation": "not_required", - "description": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"。", "effect": "read", "group": "book", "idempotency": "idempotent", @@ -5547,7 +5157,7 @@ "primary_cli_path": "calendar book get", "reviewed": true, "risk": "low", - "title": "查询指定日历信息", + "title": "查询指定日历本", "use_when": [ "需要根据日历id查询指定日历的信息时。" ] @@ -5564,10 +5174,7 @@ "cli_name": "get", "cli_path": "calendar event get", "confirmation": "not_required", - "description": "根据eventId查询指定日程的明细。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取日程详情", "effect": "read", "group": "event", "idempotency": "idempotent", @@ -5581,7 +5188,7 @@ "primary_cli_path": "calendar event get", "reviewed": true, "risk": "low", - "title": "查询日程详情", + "title": "获取日程详情", "use_when": [ "需要获取日程详情时。" ] @@ -5598,10 +5205,7 @@ "cli_name": "list", "cli_path": "calendar attendee list", "confirmation": "not_required", - "description": "获取指定日程的所有参与者列表及其状态信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查看日程的参会人列表。注意:订阅日历下的日程无参会人,因此不可查看", "effect": "read", "group": "attendee", "idempotency": "idempotent", @@ -5615,7 +5219,7 @@ "primary_cli_path": "calendar attendee list", "reviewed": true, "risk": "low", - "title": "获取日程参与人", + "title": "查看参会人", "use_when": [ "需要查看日程的参会人列表时。" ] @@ -5632,10 +5236,7 @@ "cli_name": "list", "cli_path": "calendar acl list", "confirmation": "not_required", - "description": "调用本接口,获取用户主日历的访问控制列表。可查询用户的日历共享情况", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"。注意:这不是查日历本列表(那是 book list)。", "effect": "read", "group": "acl", "idempotency": "idempotent", @@ -5649,7 +5250,7 @@ "primary_cli_path": "calendar acl list", "reviewed": true, "risk": "low", - "title": "查询日历访问权限列表", + "title": "查询我的日历共享给了谁", "use_when": [ "需要查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"时。" ] @@ -5666,10 +5267,7 @@ "cli_name": "list", "cli_path": "calendar event list", "confirmation": "not_required", - "description": "查询当前用户指定日历本下的日程列表,按起止时间检索。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户可访问的日程列表。**注意** 不传 --start/--end 时将查询今天的日程(00:00:00 ~ 23:59:59)。\n\t\t**calendar_id**: 不指定calendar_id时,默认查询当前用户主日历下的日程。也可指定calendar_id查询他人共享或者已订阅的日历。calendar_id可通过 dws calendar book list 查询。\n\t\t**权限**:查询共享日历下的日程时,至少要有reader权限。", "effect": "read", "group": "event", "idempotency": "idempotent", @@ -5683,7 +5281,7 @@ "primary_cli_path": "calendar event list", "reviewed": true, "risk": "low", - "title": "查询当前用户日程列表", + "title": "查询日程列表", "use_when": [ "需要查询当前用户可访问的日程列表;未指定起止时间时默认查询当天日程时。" ] @@ -5700,10 +5298,7 @@ "cli_name": "list", "cli_path": "calendar book list", "confirmation": "not_required", - "description": "查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历。主日历 id 固定为 \"primary\"。\n\t\t\t共享日历本中有来自 xxx 的,且权限大于reader,那么通过 event list --calendar-id \u003cxxx的日历本id\u003e 可查到xxx完整的日程安排", "effect": "read", "group": "book", "idempotency": "idempotent", @@ -5717,7 +5312,7 @@ "primary_cli_path": "calendar book list", "reviewed": true, "risk": "low", - "title": "查询用户日历列表", + "title": "查询用户的日历列表", "use_when": [ "需要查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历时。" ] @@ -5734,10 +5329,7 @@ "cli_name": "list-groups", "cli_path": "calendar room list-groups", "confirmation": "not_required", - "description": "分页查询当前企业下的会议室分组列表,返回每个分组的名称(groupName)、唯一 ID(groupId)及其父分组 ID(parentId,0 表示根分组)。结果按组织架构权限过滤,仅包含调用者有权限查看的分组。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "会议室分组列表", "effect": "read", "group": "room", "idempotency": "idempotent", @@ -5751,7 +5343,7 @@ "primary_cli_path": "calendar room list-groups", "reviewed": true, "risk": "low", - "title": "查询会议室分组列表", + "title": "会议室分组列表", "use_when": [ "需要会议室分组列表时。" ] @@ -5768,10 +5360,7 @@ "cli_name": "suggest", "cli_path": "calendar event suggest", "confirmation": "not_required", - "description": "可根据参会人员的信息,推荐日程时间。用于日程时间未确定,解决会议时间协调问题。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对于非明确时间或一段时间范围的约会场景,可基于所有参会人的忙闲状态,推荐多个可用的时间块方案,用于解决会议时间协调问题。", "effect": "read", "group": "event", "idempotency": "idempotent", @@ -5802,7 +5391,7 @@ "cli_name": "search", "cli_path": "calendar room search", "confirmation": "not_required", - "description": "查询 [startTime, endTime] 时间段内所有可用的会议室。要求整个时间段内都空闲且当前用户可预定。适用于有明确时间段要求的查询。", + "description": "**搜索会议室** 支持两种模式:\n\n\t\t\t1. **按名称搜索**(仅传 --room-name,不传 --start/--end):\n\t\t\t 根据会议室名称模糊搜索,返回所有匹配的会议室,不检查可用性。\n\t\t\t 适用于\"找到某个会议室\"的场景。\n\n\t\t\t2. **按时间段搜索可用会议室**(传 --start/--end,或不传任何参数):\n\t\t\t 查询指定时间段内所有可用的会议室。不传 --start/--end 时默认查询当前时间起 1 小时内的会议室。\n\t\t\t 注意,大部分会议室仅在工作时间可用,如果检索时间不在工作时间可能查不到任何结果。\n\t\t\t 时间约束:start 必须是未来的时间(API 限制:start can not less current time)。\n\t\t\t\t- 若传入的 --start 早于当前时间,CLI 自动修正为 now+1min。\n\t\t\t\t- 若传入的 --end 早于当前时间,视为无效请求返回错误(无法检索过去的时间段)。\n\n\t\t\t使用 --room-name 按会议室名称过滤时,CLI 原样透传给服务端做模糊匹配。调用方(模型/脚本)在传入前应主动精简名称,剔除用户口语里常带的通用后缀(如「会议室」「大会议室」「小会议室」),只保留核心专名,避免因后缀导致匹配不到。例如用户说「永澄亭会议室」时,应传 --room-name 永澄亭。\n\t\t\t如果知道roomId,想查该会议室的预订记录,直接用dws calendar busy search 指令。\n\t\t\t此指令搜索到的会议室结果中,有两个值需要注意:\n\t\t\t\t- customApprovalProcess: true - 表示该会议室设置了自定义审批流程,只能通过客户端完成预订。\n\t\t\t\t- supportRecurring: true - 表示该会议室支持循环预定;false - 表示不支持循环预定,直接加入到循环日程会失败。", "effect": "read", "group": "room", "idempotency": "idempotent", @@ -5816,7 +5405,7 @@ "primary_cli_path": "calendar room search", "reviewed": true, "risk": "low", - "title": "查询空闲会议室", + "title": "搜索会议室 (按名称搜索或按时间段查可用会议室)", "use_when": [ "需要按名称检索会议室,或按时间、会议室组和名称查询可用会议室时。" ] @@ -5833,7 +5422,7 @@ "cli_name": "search", "cli_path": "calendar busy search", "confirmation": "not_required", - "description": "可查询指定用户或者会议室在给定时间范围内的闲忙状态,返回已占用时间段的信息(注意只有时间信息)。结果受组织可见性策略控制:仅当调用者有权限查看该用户日历时方可获取有效数据。适用于安排会议前快速确认他人可用时间,或者查看指定会议室的预订状态。", + "description": "查询指定用户或会议室在给定时间范围内的闲忙状态。--users 与 --rooms 至少指定其一,也可以同时指定(查询用户+会议室)。", "effect": "read", "group": "busy", "idempotency": "idempotent", @@ -5847,7 +5436,7 @@ "primary_cli_path": "calendar busy search", "reviewed": true, "risk": "low", - "title": "获取用户闲忙信息", + "title": "查询用户 / 会议室闲忙状态", "use_when": [ "需要查询指定用户或会议室在给定时间范围内的闲忙状态时。" ] @@ -5864,10 +5453,7 @@ "cli_name": "delete", "cli_path": "calendar attendee delete", "confirmation": "user_required", - "description": "从已存在的指定日程中移除参与者,支持批量移除多人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "移除日程的参会人。注意:订阅日历下的日程无参会人,因此不可移除", "effect": "write", "group": "attendee", "idempotency": "unknown", @@ -5881,7 +5467,7 @@ "primary_cli_path": "calendar attendee delete", "reviewed": true, "risk": "high", - "title": "删除日程参与人", + "title": "移除参会人", "use_when": [ "需要移除日程的参会人时。" ] @@ -5898,10 +5484,7 @@ "cli_name": "respond", "cli_path": "calendar event respond", "confirmation": "not_required", - "description": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。注意:订阅日历下的日程无参会人,因此不可响应", "effect": "write", "group": "event", "idempotency": "unknown", @@ -5915,7 +5498,7 @@ "primary_cli_path": "calendar event respond", "reviewed": true, "risk": "medium", - "title": "响应日程", + "title": "响应日程(接受/拒绝/暂定)", "use_when": [ "需要作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)时。" ] @@ -5932,10 +5515,7 @@ "cli_name": "search", "cli_path": "calendar book search", "confirmation": "not_required", - "description": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用list_calendars", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用 list。", "effect": "read", "group": "book", "idempotency": "idempotent", @@ -5949,7 +5529,7 @@ "primary_cli_path": "calendar book search", "reviewed": true, "risk": "low", - "title": "搜索日历本列表", + "title": "搜索日历本", "use_when": [ "需要搜索当前用户拥有的日历本,支持按日历本名模糊搜索时。" ] @@ -5966,10 +5546,7 @@ "cli_name": "update", "cli_path": "calendar event update", "confirmation": "not_required", - "description": "修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。(修改参与人需要使用给日程添加参与人或给日程删除参与人工具)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "支持修改标题、描述、时间、地点、忙碌状态等。如需修改会议室,请使用 dws calendar room [add|delete];如需修改参会人,请使用 dws calendar attendee [add|delete]。\n\n\t\t修改周期日程的循环规则时,--recurrence-* 系列必须整体传入:只传其中一个(比如只改 --recurrence-count)会把循环规则覆盖成不完整的状态。\n\t\t至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。\n\t\t如果只想微调已有周期日程的某一个循环字段,请先通过 dws calendar event get --id \u003cID\u003e 读取现有 recurrence,然后在命令中重新提供完整的 pattern + range 字段集合。", "effect": "write", "group": "event", "idempotency": "unknown", @@ -6080,9 +5657,6 @@ "cli_path": "chat group-role add", "confirmation": "not_required", "description": "添加群身份", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "group-role", "idempotency": "unknown", @@ -6113,10 +5687,7 @@ "cli_name": "add-emoji", "cli_path": "chat message add-emoji", "confirmation": "not_required", - "description": "消息添加 emoji 回应", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对消息添加 emoji 表情回应", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6130,7 +5701,7 @@ "primary_cli_path": "chat message add-emoji", "reviewed": true, "risk": "medium", - "title": "消息添加 emoji 回应", + "title": "对消息添加 emoji 表情回应", "use_when": [ "需要对已有消息添加一个 emoji reaction 时" ] @@ -6147,10 +5718,7 @@ "cli_name": "add", "cli_path": "chat group members add", "confirmation": "not_required", - "description": "添加群成员", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "向指定群聊添加成员,需传入群 ID 与用户标识列表。支持 userId 和 openDingTalkId 混传。", "effect": "write", "group": "group.members", "idempotency": "unknown", @@ -6164,7 +5732,7 @@ "primary_cli_path": "chat group members add", "reviewed": true, "risk": "medium", - "title": "add_group_member", + "title": "添加群成员", "use_when": [ "已知群 ID 和成员 ID,需要邀请成员入群时" ] @@ -6182,14 +5750,11 @@ "cli_path": "chat message add-favorite", "confirmation": "not_required", "description": "收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作会修改当前用户的消息收藏状态。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "message", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "add_message_favorite", "primary_cli_path": "chat message add-favorite", "reviewed": true, @@ -6211,10 +5776,7 @@ "cli_name": "add-bot", "cli_path": "chat group members add-bot", "confirmation": "not_required", - "description": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错。", "effect": "write", "group": "group.members", "idempotency": "unknown", @@ -6228,7 +5790,7 @@ "primary_cli_path": "chat group members add-bot", "reviewed": true, "risk": "medium", - "title": "将企业机器人添加我有权限的群中", + "title": "将机器人添加到群中", "use_when": [ "已知 robotCode 且需要在有管理权限的群中安装机器人时" ] @@ -6245,10 +5807,7 @@ "cli_name": "add-text-emotion", "cli_path": "chat message add-text-emotion", "confirmation": "not_required", - "description": "添加文字表情", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对消息添加文字表情回应", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6262,7 +5821,7 @@ "primary_cli_path": "chat message add-text-emotion", "reviewed": true, "risk": "medium", - "title": "添加文字表情", + "title": "对消息添加文字表情回应", "use_when": [ "已有文字表情定义并要附加到消息时" ] @@ -6279,10 +5838,7 @@ "cli_name": "combine-forward", "cli_path": "chat message combine-forward", "confirmation": "not_required", - "description": "合并转发消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将多条消息合并后转发到目标会话。需要指定源会话 ID、源消息 ID 列表(逗号分隔)、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6296,7 +5852,7 @@ "primary_cli_path": "chat message combine-forward", "reviewed": true, "risk": "medium", - "title": "合并转发消息", + "title": "合并转发多条消息", "use_when": [ "需要保留多条源消息并作为合集转发时" ] @@ -6313,10 +5869,7 @@ "cli_name": "send-card", "cli_path": "chat message send-card", "confirmation": "not_required", - "description": "创建并推送流式卡片", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "向群聊或单聊创建并推送流式卡片。群聊传 --group,单聊传 --receiver,二者互斥。\n创建时无需传入卡片内容,后续通过 update-card 更新内容。\n\n注意:send-card 必须和 update-card 搭配使用。发送卡片后,使用返回的 bizId 调用 update-card 更新内容,\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6330,7 +5883,7 @@ "primary_cli_path": "chat message send-card", "reviewed": true, "risk": "medium", - "title": "create_and_send_card", + "title": "创建并推送流式卡片", "use_when": [ "需要卡片式交互且已准备接收会话或用户时" ] @@ -6347,7 +5900,7 @@ "cli_name": "create", "cli_path": "chat group create", "confirmation": "not_required", - "description": "创建一个群聊,支持指定群名称、初始成员列表等参数。可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈。默认为内部群。当选择内部群时如果所选成员非组织内成员会创建失败,创建成功后会返回。", + "description": "创建一个群聊,支持指定群名称、初始成员列表等参数。\n可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈等多种类型群。\n默认创建内部群。当选择内部群时如果所选成员非组织内成员会创建失败。", "effect": "write", "group": "group", "idempotency": "unknown", @@ -6361,7 +5914,7 @@ "primary_cli_path": "chat group create", "reviewed": true, "risk": "medium", - "title": "create_group_conversation", + "title": "创建群(支持内部群/外部群/普通群/话题圈)", "use_when": [ "用户明确要新建群聊或话题圈时" ] @@ -6379,14 +5932,11 @@ "cli_path": "chat category create-smart", "confirmation": "not_required", "description": "创建智能会话分组,可指定群名称关键词和群内成员 openDingTalkId 作为匹配规则。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "category", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "create_smart_conv_category", "primary_cli_path": "chat category create-smart", "reviewed": true, @@ -6408,10 +5958,7 @@ "cli_name": "create-text-emotion", "cli_path": "chat message create-text-emotion", "confirmation": "not_required", - "description": "创建文字表情", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一个新的文字表情模板。当内置表情(见 chat-emoji-list.md)中没有所需表情时,使用此命令创建并获取 emotionId,随后可用于 add-text-emotion。", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6425,7 +5972,7 @@ "primary_cli_path": "chat message create-text-emotion", "reviewed": true, "risk": "medium", - "title": "创建文字表情", + "title": "创建文字表情(获取 emotionId)", "use_when": [ "需要定义新的文字表情资源时" ] @@ -6441,12 +5988,9 @@ "canonical_path": "chat.dismiss_group", "cli_name": "dismiss", "cli_path": "chat group dismiss", - "confirmation": "not_required", - "description": "解散群聊", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", + "confirmation": "user_required", + "description": "解散指定群聊。该操作不可逆,需要群主权限;必须先获得用户确认,再追加 --yes 执行。", + "effect": "destructive", "group": "group", "idempotency": "unknown", "interface_mode": "mcp", @@ -6458,7 +6002,7 @@ "name": "dismiss_group", "primary_cli_path": "chat group dismiss", "reviewed": true, - "risk": "medium", + "risk": "high", "title": "解散群聊", "use_when": [ "群主明确要求永久解散整个群时" @@ -6506,10 +6050,7 @@ "cli_name": "forward", "cli_path": "chat message forward", "confirmation": "not_required", - "description": "单条消息转发", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将一条消息从源会话转发到目标会话。需要指定源会话 ID、源消息 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6523,7 +6064,7 @@ "primary_cli_path": "chat message forward", "reviewed": true, "risk": "medium", - "title": "单条消息转发", + "title": "转发单条消息(源/目标会话均支持单聊/群聊)", "use_when": [ "已知源消息与源、目标会话 ID 时" ] @@ -6540,10 +6081,7 @@ "cli_name": "forward-topic", "cli_path": "chat message forward-topic", "confirmation": "not_required", - "description": "转发某个话题到其他会话", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将一条话题消息从源会话转发到目标会话。需要指定源消息 ID、源会话 ID、话题 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)\n\n话题 ID(srcOpenConvThreadId)格式为 \"convThread\" + 加密后的 convThreadId,\n可通过 dws chat message list 返回的话题信息获取。", "effect": "write", "group": "message", "idempotency": "unknown", @@ -6557,7 +6095,7 @@ "primary_cli_path": "chat message forward-topic", "reviewed": true, "risk": "medium", - "title": "转发某个话题到其他会话", + "title": "转发话题消息到目标会话", "use_when": [ "需要转发话题圈中的主题及上下文时" ] @@ -6575,9 +6113,6 @@ "cli_path": "chat group get-by-group-id", "confirmation": "not_required", "description": "根据群号获取群聊信息", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "group", "idempotency": "idempotent", @@ -6608,10 +6143,7 @@ "cli_name": "conversation-info", "cli_path": "chat conversation-info", "confirmation": "not_required", - "description": "获取会话的基础信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定会话的基础信息。\n发送本地文件消息请优先使用 dws chat message send --msg-type file --file-path \u003c本地文件\u003e,CLI 不再要求调用方获取或传递 spaceId。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -6624,7 +6156,7 @@ "primary_cli_path": "chat conversation-info", "reviewed": true, "risk": "low", - "title": "get_conversation_info", + "title": "获取会话基础信息", "use_when": [ "已知群 ID 或用户标识并需要解析会话详情时" ] @@ -6641,10 +6173,7 @@ "cli_name": "invite-url", "cli_path": "chat group invite-url", "confirmation": "not_required", - "description": "获取群邀请链接", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取群聊邀请链接。可选 --expires-seconds 指定链接有效期(秒),0 表示永久有效,不传则使用服务端默认值。", "effect": "read", "group": "group", "idempotency": "idempotent", @@ -6675,10 +6204,7 @@ "cli_name": "list", "cli_path": "chat message list", "confirmation": "not_required", - "description": "拉取指定群聊的会话消息内容", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取指定群聊或单聊的会话消息内容。--group 指定群聊,--user 指定单聊用户(userId),--open-dingtalk-id 指定单聊用户(openDingTalkId),三者互斥。推荐使用 --direction newer/older 控制时间方向:newer 表示从给定时间往现在拉,older 表示从给定时间往以前拉。hasMore=true 时用结果中的边界 createTime 作为下次 --time 翻页。如果返回的会话消息中包含 openConvThreadId 字段,说明是话题消息,可以调用 dws chat message list-topic-replies 拉取话题回复消息列表,openConvThreadId 作为 topic-id 参数。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -6692,7 +6218,7 @@ "primary_cli_path": "chat message list", "reviewed": true, "risk": "low", - "title": "list_conversation_message_v2", + "title": "拉取会话消息内容", "use_when": [ "用户明确指定某个会话并要查看其消息记录时" ] @@ -6709,10 +6235,7 @@ "cli_name": "list-conversations", "cli_path": "chat category list-conversations", "confirmation": "not_required", - "description": "拉取用户指定自定义会话分组下的会话", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取指定自定义会话分组下的会话", "effect": "read", "group": "category", "idempotency": "idempotent", @@ -6726,7 +6249,7 @@ "primary_cli_path": "chat category list-conversations", "reviewed": true, "risk": "low", - "title": "list_conversations_by_category", + "title": "拉取指定自定义会话分组下的会话", "use_when": [ "已知分组 ID 并需要查看其中会话时" ] @@ -6743,10 +6266,7 @@ "cli_name": "list", "cli_path": "chat group-role list", "confirmation": "not_required", - "description": "拉取会话的群身份", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取会话的群身份列表", "effect": "read", "group": "group-role", "idempotency": "idempotent", @@ -6760,7 +6280,7 @@ "primary_cli_path": "chat group-role list", "reviewed": true, "risk": "low", - "title": "拉取会话的群身份", + "title": "拉取会话的群身份列表", "use_when": [ "需要取得角色 ID 或查看角色定义时" ] @@ -6777,10 +6297,7 @@ "cli_name": "bots", "cli_path": "chat group bots", "confirmation": "not_required", - "description": "获取群内所有机器人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定群聊中的所有机器人列表。", "effect": "read", "group": "group", "idempotency": "idempotent", @@ -6794,7 +6311,7 @@ "primary_cli_path": "chat group bots", "reviewed": true, "risk": "low", - "title": "list_group_bots", + "title": "查看群内所有机器人", "use_when": [ "需要核对群内机器人或取得 openBotId 时" ] @@ -6811,10 +6328,7 @@ "cli_name": "list-direct", "cli_path": "chat message list-direct", "confirmation": "not_required", - "description": "拉取指定用户的单聊会话消息内容", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按对方 userId 或 openDingTalkId 拉取单聊会话消息。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -6828,7 +6342,7 @@ "primary_cli_path": "chat message list-direct", "reviewed": true, "risk": "low", - "title": "list_individual_chat_message", + "title": "拉取单聊会话消息", "use_when": [ "用户明确要求查看和某人的一对一聊天时" ] @@ -6846,14 +6360,11 @@ "cli_path": "chat message list-favorites", "confirmation": "not_required", "description": "查询当前用户收藏的消息列表,支持数字游标分页。\n\n首次请求可省略分页参数,CLI 会按 Open 服务契约传 cursor=0、size=\"20\"。\n返回 hasMore=true 时,将 nextCursor 作为下一次的 --cursor。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "message", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_message_favorites", "primary_cli_path": "chat message list-favorites", "reviewed": true, @@ -6875,10 +6386,7 @@ "cli_name": "list-by-ids", "cli_path": "chat message list-by-ids", "confirmation": "not_required", - "description": "批量查消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据消息 ID 批量查询消息", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -6892,7 +6400,7 @@ "primary_cli_path": "chat message list-by-ids", "reviewed": true, "risk": "low", - "title": "批量查消息", + "title": "根据消息 ID 批量查询消息", "use_when": [ "已经持有一组 msgId 并需要精确取回消息时" ] @@ -6909,10 +6417,7 @@ "cli_name": "list-my-groups", "cli_path": "chat group list-my-groups", "confirmation": "not_required", - "description": "拉取我创建/管理的群", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取当前用户作为群主或管理员的群列表。\n可通过 --role 过滤角色:OWNER 仅群主、ADMIN 仅管理员,不传则返回全部。\n可通过 --limit 限制返回数量,不传则返回所有符合条件的群。", "effect": "read", "group": "group", "idempotency": "idempotent", @@ -6943,10 +6448,7 @@ "cli_name": "list-pin-msg", "cli_path": "chat message list-pin-msg", "confirmation": "not_required", - "description": "拉取会话中钉住的(pin)消息列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取指定会话中被钉住的消息列表,支持游标分页。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -6977,10 +6479,7 @@ "cli_name": "list-focused", "cli_path": "chat message list-focused", "confirmation": "not_required", - "description": "拉特别关注人的消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取当前用户特别关注人的消息。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -6994,7 +6493,7 @@ "primary_cli_path": "chat message list-focused", "reviewed": true, "risk": "low", - "title": "list_special_focus_messages", + "title": "拉取特别关注人的消息", "use_when": [ "需要查看特别关注或重点消息列表时" ] @@ -7011,10 +6510,7 @@ "cli_name": "list-top-conversations", "cli_path": "chat list-top-conversations", "confirmation": "not_required", - "description": "拉取用户的置顶会话", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拉取当前用户的置顶会话列表。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -7027,7 +6523,7 @@ "primary_cli_path": "chat list-top-conversations", "reviewed": true, "risk": "low", - "title": "list_top_conversations", + "title": "拉取置顶会话列表", "use_when": [ "需要查看现有置顶会话清单时" ] @@ -7044,10 +6540,7 @@ "cli_name": "list-topic-replies", "cli_path": "chat message list-topic-replies", "confirmation": "not_required", - "description": "针对话题群中的单个话题,分页拉取话题的回复消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定群聊中某条话题消息的全部回复。--group 指定群会话 ID,--topic-id 指定话题 ID(由 dws chat message list 返回)。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7061,7 +6554,7 @@ "primary_cli_path": "chat message list-topic-replies", "reviewed": true, "risk": "low", - "title": "list_topic_replies", + "title": "拉取群话题回复消息列表", "use_when": [ "已知话题 ID 并需要查看回复串时" ] @@ -7079,9 +6572,6 @@ "cli_path": "chat category list", "confirmation": "not_required", "description": "获取用户自定义会话分组", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "category", "idempotency": "idempotent", @@ -7112,10 +6602,7 @@ "cli_name": "query-user", "cli_path": "chat group-role query-user", "confirmation": "not_required", - "description": "根据用户提供的群和成员为在群里查询成员的群身份", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询群成员的群身份", "effect": "read", "group": "group-role", "idempotency": "idempotent", @@ -7146,10 +6633,7 @@ "cli_name": "query-send-status", "cli_path": "chat message query-send-status", "confirmation": "not_required", - "description": "查询以当前用户的身份发送的消息的发送状态", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询以当前用户身份发送的消息的发送状态。需要传入发送消息时返回的 openTaskId。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7163,7 +6647,7 @@ "primary_cli_path": "chat message query-send-status", "reviewed": true, "risk": "low", - "title": "查询以当前用户的身份发送的消息的发送状态", + "title": "查询消息发送状态", "use_when": [ "发送命令返回 openTaskId 后需要确认投递结果时" ] @@ -7180,10 +6664,7 @@ "cli_name": "read-status", "cli_path": "chat message read-status", "confirmation": "not_required", - "description": "查询消息的已读/未读状态", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定会话中消息的已读/未读状态(仅消息发送者可查询自己发出的消息)。--conversation-id 指定会话 openConversationId(群聊或单聊均可),--message-id 指定消息 ID(由 dws chat message list 返回的 openMessageId,必须是当前用户发送的消息)。目标用户 userId 使用 --user/--users;目标用户 openDingTalkId 使用 --target-open-dingtalk-ids;不传目标用户则返回所有接收者的状态。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7214,10 +6695,7 @@ "cli_name": "quit", "cli_path": "chat group quit", "confirmation": "not_required", - "description": "用户退群", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "当前用户退出指定群聊。退出后将无法查看群消息。", "effect": "write", "group": "group", "idempotency": "unknown", @@ -7231,7 +6709,7 @@ "primary_cli_path": "chat group quit", "reviewed": true, "risk": "medium", - "title": "用户退群", + "title": "退出群聊", "use_when": [ "用户明确要求自己离开群聊时" ] @@ -7248,10 +6726,7 @@ "cli_name": "recall", "cli_path": "chat message recall", "confirmation": "user_required", - "description": "撤回用户发送的消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "撤回当前用户发送的消息。需要指定会话 ID 和消息 ID。", "effect": "destructive", "group": "message", "idempotency": "unknown", @@ -7283,9 +6758,6 @@ "cli_path": "chat message recall-by-bot", "confirmation": "user_required", "description": "群聊:传 --group 与 --keys;单聊:仅传 --keys。--keys 为发送时返回的 processQueryKey 列表,逗号分隔。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "group": "message", "idempotency": "unknown", @@ -7313,9 +6785,6 @@ "cli_path": "chat group-role remove", "confirmation": "user_required", "description": "删除群身份", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "group": "group-role", "idempotency": "unknown", @@ -7346,10 +6815,7 @@ "cli_name": "remove-user", "cli_path": "chat group-role remove-user", "confirmation": "user_required", - "description": "移除用户的群身份", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "移除用户的指定群身份", "effect": "destructive", "group": "group-role", "idempotency": "unknown", @@ -7363,7 +6829,7 @@ "primary_cli_path": "chat group-role remove-user", "reviewed": true, "risk": "high", - "title": "移除用户的群身份", + "title": "移除用户的指定群身份", "use_when": [ "需要保留角色定义但解除成员角色时" ] @@ -7380,10 +6846,7 @@ "cli_name": "remove-emoji", "cli_path": "chat message remove-emoji", "confirmation": "not_required", - "description": "消息删除emoji回应", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "移除消息的 emoji 表情回应", "effect": "write", "group": "message", "idempotency": "unknown", @@ -7397,7 +6860,7 @@ "primary_cli_path": "chat message remove-emoji", "reviewed": true, "risk": "medium", - "title": "消息删除emoji回应", + "title": "移除消息的 emoji 表情回应", "use_when": [ "需要取消此前添加的 emoji reaction 时" ] @@ -7414,7 +6877,7 @@ "cli_name": "remove", "cli_path": "chat group members remove", "confirmation": "user_required", - "description": "移除群成员", + "description": "从指定群聊中移除成员,需传入群 ID 与待移除的用户 ID 列表。", "effect": "destructive", "group": "group.members", "idempotency": "unknown", @@ -7428,7 +6891,7 @@ "primary_cli_path": "chat group members remove", "reviewed": true, "risk": "high", - "title": "remove_group_member", + "title": "移除群成员", "use_when": [ "群管理员明确要移除一个或多个普通成员时" ] @@ -7446,14 +6909,11 @@ "cli_path": "chat message remove-favorite", "confirmation": "not_required", "description": "取消收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作只移除当前用户的收藏标记,不会删除原消息。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "message", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "remove_message_favorite", "primary_cli_path": "chat message remove-favorite", "reviewed": true, @@ -7475,10 +6935,7 @@ "cli_name": "remove-bot", "cli_path": "chat group members remove-bot", "confirmation": "user_required", - "description": "从群内移除机器人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将指定机器人从群聊中移除。需要群管理员或群主权限。", "effect": "destructive", "group": "group.members", "idempotency": "unknown", @@ -7492,7 +6949,7 @@ "primary_cli_path": "chat group members remove-bot", "reviewed": true, "risk": "high", - "title": "remove_robot_in_group", + "title": "从群内移除机器人", "use_when": [ "已知群 ID 和 openBotId,需要卸载群机器人时" ] @@ -7509,10 +6966,7 @@ "cli_name": "remove-text-emotion", "cli_path": "chat message remove-text-emotion", "confirmation": "not_required", - "description": "删除文字表情", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "移除消息的文字表情回应", "effect": "write", "group": "message", "idempotency": "unknown", @@ -7526,7 +6980,7 @@ "primary_cli_path": "chat message remove-text-emotion", "reviewed": true, "risk": "medium", - "title": "删除文字表情", + "title": "移除消息的文字表情回应", "use_when": [ "需要取消已添加的文字表情时" ] @@ -7543,7 +6997,7 @@ "cli_name": "reply", "cli_path": "chat message reply", "confirmation": "not_required", - "description": "以用户身份发消息,支持多种消息类型", + "description": "以当前用户身份引用某条消息并回复。需要指定会话 ID、被引用消息 ID、原消息发送者 openDingTalkId,以及回复内容。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (人员信息可通过 dws contact user search --keyword \"姓名\" --format json 获取)", "effect": "write", "group": "message", "idempotency": "unknown", @@ -7563,7 +7017,7 @@ "tips": [ "发送前确认引用消息、接收会话和回复内容" ], - "title": "send_personal_message", + "title": "引用回复消息(支持单聊/群聊)", "use_when": [ "用户要针对某条已有消息进行引用回复时" ] @@ -7580,10 +7034,7 @@ "cli_name": "list-mentions", "cli_path": "chat message list-mentions", "confirmation": "not_required", - "description": "搜索at自己的消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索时间范围内 @我 的消息,可选指定群聊。返回结果包含单聊和群聊标识。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7597,7 +7048,7 @@ "primary_cli_path": "chat message list-mentions", "reviewed": true, "risk": "low", - "title": "search_at_me_message", + "title": "拉取 @我 的消息", "use_when": [ "需要找出 @我的消息和待关注事项时" ] @@ -7614,10 +7065,7 @@ "cli_name": "find", "cli_path": "chat bot find", "confirmation": "not_required", - "description": "搜索机器人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按关键词搜索当前用户可用的【全部】机器人(含他人创建、官方机器人),支持游标分页。\n\n如何在 find 与 search 之间选择:\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search(dws chat bot search)\n\n返回字段差异(核心区分点):\n - find 额外返回 openDingTalkId(可用于给机器人发单聊消息)\n - search 没有 openDingTalkId\n\n如果后续需要给机器人发单聊消息,必须用 find 拿 openDingTalkId。", "effect": "read", "group": "bot", "idempotency": "idempotent", @@ -7631,7 +7079,7 @@ "primary_cli_path": "chat bot find", "reviewed": true, "risk": "low", - "title": "search_bots", + "title": "搜索【全部可用】机器人(含他人/官方,额外返回 openDingTalkId 可发单聊)", "use_when": [ "需要发现可添加或可使用的机器人时" ] @@ -7648,10 +7096,7 @@ "cli_name": "search-common", "cli_path": "chat search-common", "confirmation": "not_required", - "description": "通过人员名称搜索共同群聊", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据昵称列表搜索共同群聊。--nicks 指定要搜索的人员昵称(逗号分隔,必填)。--match-mode 控制匹配模式:AND 表示所有人都在群里,OR 表示任一人在群里(默认 AND)。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -7664,7 +7109,7 @@ "primary_cli_path": "chat search-common", "reviewed": true, "risk": "low", - "title": "search_common_groups", + "title": "搜索共同群(查询指定人共同所在的群聊)", "use_when": [ "需要找两人或多人共同群聊时" ] @@ -7681,23 +7126,17 @@ "cli_name": "search", "cli_path": "chat search", "confirmation": "not_required", - "description": "根据群名称关键词,搜索符合条件的群,返回群的openconversion_id、群名称等信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据关键词搜索群聊列表。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。\n\n注意:\n1. query 不要拆分得太细,应使用群名称中连续的核心词作为关键词(如群名\"项目冲刺群\"应搜\"项目冲刺\"而非拆成\"项目\"+\"冲刺\"分别搜索)。\n2. 当搜索结果返回多个群聊时,应列出候选群让用户确认目标群聊,不要自行假定并直接进行后续操作。", "effect": "read", "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", "metadata_source": "embedded-mcp-metadata", "name": "search_groups", "primary_cli_path": "chat search", "reviewed": true, "risk": "low", - "title": "search_groups_by_keyword", + "title": "根据关键词搜索群聊", "use_when": [ "只知道群名或关键词,需要取得群 ID 时" ] @@ -7714,10 +7153,7 @@ "cli_name": "search-advanced", "cli_path": "chat message search-advanced", "confirmation": "not_required", - "description": "搜索消息,支持多种维度:时间范围、关键词、发送者、at我的、at指定用户、会话", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "支持按关键词、发送者、@我、@指定人、指定会话、时间范围等多维度搜索消息。发送者 userId 使用 --user/--users;发送者或 @ 人的 openDingTalkId 使用 --sender-ids/--at-ids。所有参数均为可选,至少指定一个搜索条件。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7731,7 +7167,7 @@ "primary_cli_path": "chat message search-advanced", "reviewed": true, "risk": "low", - "title": "搜索消息", + "title": "多维度搜索消息", "use_when": [ "需要多维过滤或关键词可选的高级消息搜索时" ] @@ -7748,10 +7184,7 @@ "cli_name": "search", "cli_path": "chat message search", "confirmation": "not_required", - "description": "按关键词搜索消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在当前用户的会话中按关键词搜索消息。--query 指定搜索关键词(必填)。可选 --group 限定搜索某个会话,不传则搜索所有会话。时间参数 --start/--end(ISO-8601)限定搜索时间范围。分页参数 --limit(默认 100)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7765,7 +7198,7 @@ "primary_cli_path": "chat message search", "reviewed": true, "risk": "low", - "title": "search_messages_by_keyword", + "title": "按关键词搜索消息", "use_when": [ "需要用关键词查找消息且过滤条件较简单时" ] @@ -7782,10 +7215,7 @@ "cli_name": "list-by-sender", "cli_path": "chat message list-by-sender", "confirmation": "not_required", - "description": "根据发送者拉消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索特定人发送给我的消息,返回结果包含单聊和群聊标识。--sender-user-id 指定发送者 userId,--sender-open-dingtalk-id 指定发送者 openDingTalkId,二者互斥。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7799,7 +7229,7 @@ "primary_cli_path": "chat message list-by-sender", "reviewed": true, "risk": "low", - "title": "search_messages_by_sender", + "title": "拉取指定发送者的消息(包含单聊和群聊)", "use_when": [ "需要查某人发送过的消息且不限定单聊时" ] @@ -7816,10 +7246,7 @@ "cli_name": "list-all", "cli_path": "chat message list-all", "confirmation": "not_required", - "description": "根据指定时间范围,分页搜索历史消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "分页拉取当前登录用户在指定时间范围内的所有会话消息。--start 和 --end 限定时间范围,--limit 指定每页数量,--cursor 传分页游标(首页传 0)。服务端按 cursor 分页返回,hasMore=true 时用返回的 nextCursor 值继续翻页。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -7833,7 +7260,7 @@ "primary_cli_path": "chat message list-all", "reviewed": true, "risk": "low", - "title": "search_messages_by_time_range", + "title": "拉取指定时间范围内当前用户的所有会话消息", "use_when": [ "需要汇总一段时间内所有可见会话消息时" ] @@ -7850,10 +7277,7 @@ "cli_name": "search", "cli_path": "chat bot search", "confirmation": "not_required", - "description": "搜索我创建的机器人,可获取机器人robotCode等信息。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索【当前登录用户自己创建】的机器人,按 robotName 模糊匹配 + 页码分页。\n\n如何在 search 与 find 之间选择:\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find(dws chat bot find)\n\n注意:search 没有 openDingTalkId,如果需要给机器人发单聊消息请用 find。", "effect": "read", "group": "bot", "idempotency": "idempotent", @@ -7867,7 +7291,7 @@ "primary_cli_path": "chat bot search", "reviewed": true, "risk": "low", - "title": "搜索我创建的企业机器人", + "title": "搜索【我自己创建】的机器人(仅本人创建的,不含他人/官方机器人)", "use_when": [ "需要确认自己可管理或已创建的机器人时" ] @@ -7884,10 +7308,7 @@ "cli_name": "send-by-webhook", "cli_path": "chat message send-by-webhook", "confirmation": "not_required", - "description": "使用自定义机器人发送群消息,请注意自定义机器人与企业机器人的区别。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "通过自定义机器人 Webhook 发送群消息。@ 人时需在 --text 中包含 @userId 或 @手机号,否则 @ 不生效。\n\n⚠️ 重要:该接口会真实发送消息到目标群聊,不可用于测试或试探性调用。调用前必须确认消息内容无误。", "effect": "write", "group": "message", "idempotency": "unknown", @@ -7901,7 +7322,7 @@ "primary_cli_path": "chat message send-by-webhook", "reviewed": true, "risk": "medium", - "title": "自定义机器人发送群消息", + "title": "自定义机器人 Webhook 发送群消息", "use_when": [ "已有 Webhook token 并要推送告警或自动通知时" ] @@ -7918,10 +7339,7 @@ "cli_name": "send", "cli_path": "chat message send", "confirmation": "not_required", - "description": "以用户身份发消息,支持多种消息类型", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "以当前用户身份发送消息。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。\n\n目标选择(三选一,必填):\n --group 群聊 openconversation_id\n --user 单聊接收人 userId\n --open-dingtalk-id 单聊接收人 openDingTalkId\n\n纯文本 / Markdown 消息(默认):\n 无需指定 --msg-type,直接传消息内容即可。推荐使用 --text flag 传递内容(尤其当内容含换行、引号等特殊字符时),也支持位置参数。可选 --title 作为消息标题。\n\n富媒体消息(通过 --msg-type 指定类型):\n image — 发送图片:--msg-type image --media-id(通过 dt_media_upload 上传获得)\n file/audio/video — 发送文件、音频、视频:传本地 --file-path,CLI 会上传后按 file 消息发送", "effect": "write", "group": "message", "idempotency": "unknown", @@ -7939,7 +7357,7 @@ "发送前确认目标和内容;文件消息使用 --msg-type file --file-path", "需要 24 小时内防重复投递时提供稳定的 --uuid" ], - "title": "send_personal_message", + "title": "以当前用户身份发送消息(--group 群聊 / --user 或 --open-dingtalk-id 单聊)", "use_when": [ "用户明确要以个人身份发送文本或媒体消息时" ] @@ -7957,9 +7375,6 @@ "cli_path": "chat message send-by-bot", "confirmation": "not_required", "description": "群聊:传 --group 指定群;单聊:传 --users 或 --open-dingtalk-ids 指定用户列表,与 --group 只能选其一,不能同时指定。--text 支持 Markdown。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "message", "idempotency": "unknown", @@ -7986,10 +7401,7 @@ "cli_name": "set-user", "cli_path": "chat group-role set-user", "confirmation": "not_required", - "description": "根据用户提供的群和身份为用户设置群身份", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置用户的群身份(覆盖该用户的全部群身份)", "effect": "write", "group": "group-role", "idempotency": "unknown", @@ -8003,7 +7415,7 @@ "primary_cli_path": "chat group-role set-user", "reviewed": true, "risk": "medium", - "title": "set_custom_user_roles", + "title": "设置用户的群身份(覆盖该用户的全部群身份)", "use_when": [ "需要把一个或多个已有角色分配给成员时" ] @@ -8020,10 +7432,7 @@ "cli_name": "group-mute-member", "cli_path": "chat group-mute-member", "confirmation": "not_required", - "description": "管理群禁言成员", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将指定群成员加入或移出禁言名单。\n--mute-time 禁言时长(毫秒),仅支持 5min(300000) / 1h(3600000) / 1d(86400000) / 7d(604800000) / 30d(2592000000)。\n默认加入禁言名单,传 --off 则移除。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -8036,7 +7445,7 @@ "primary_cli_path": "chat group-mute-member", "reviewed": true, "risk": "medium", - "title": "管理群禁言成员", + "title": "指定群成员禁言 / 取消禁言", "use_when": [ "需要按成员设置禁言时长或解除禁言时" ] @@ -8053,10 +7462,7 @@ "cli_name": "group-mute", "cli_path": "chat group-mute", "confirmation": "not_required", - "description": "设置/取消群全员禁言", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置或取消群全员禁言。默认开启全员禁言,传 --off 则取消。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -8069,7 +7475,7 @@ "primary_cli_path": "chat group-mute", "reviewed": true, "risk": "medium", - "title": "设置/取消群全员禁言", + "title": "全员禁言 / 取消全员禁言", "use_when": [ "需要控制整个群的发言权限时" ] @@ -8086,10 +7492,7 @@ "cli_name": "set-pin-msg", "cli_path": "chat message set-pin-msg", "confirmation": "not_required", - "description": "设置钉住(pin)某条消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将指定消息设置为钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "effect": "write", "group": "message", "idempotency": "unknown", @@ -8103,7 +7506,7 @@ "primary_cli_path": "chat message set-pin-msg", "reviewed": true, "risk": "medium", - "title": "设置钉住(pin)消息", + "title": "钉住消息(Pin)", "use_when": [ "需要在会话中置顶一条已知消息时" ] @@ -8120,10 +7523,7 @@ "cli_name": "set-top", "cli_path": "chat set-top", "confirmation": "not_required", - "description": "会话置顶/取消置顶", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置或取消会话置顶。默认设置置顶,传 --off 则取消置顶。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -8136,7 +7536,7 @@ "primary_cli_path": "chat set-top", "reviewed": true, "risk": "medium", - "title": "会话置顶/取消置顶", + "title": "会话置顶 / 取消置顶(支持单聊/群聊)", "use_when": [ "需要改变某个会话在列表中的置顶状态时" ] @@ -8153,10 +7553,7 @@ "cli_name": "transfer-owner", "cli_path": "chat group transfer-owner", "confirmation": "not_required", - "description": "群主转让", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "转让群主", "effect": "write", "group": "group", "idempotency": "unknown", @@ -8170,7 +7567,7 @@ "primary_cli_path": "chat group transfer-owner", "reviewed": true, "risk": "medium", - "title": "群主转让", + "title": "转让群主", "use_when": [ "现群主明确指定新群主时" ] @@ -8187,10 +7584,7 @@ "cli_name": "list-unread-conversations", "cli_path": "chat message list-unread-conversations", "confirmation": "not_required", - "description": "unread_message_conversation_list", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户有未读消息的会话列表,可选通过 --count 控制返回的会话条数。", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -8204,7 +7598,7 @@ "primary_cli_path": "chat message list-unread-conversations", "reviewed": true, "risk": "low", - "title": "unread_message_conversation_list", + "title": "获取未读会话列表", "use_when": [ "需要定位哪些会话还有未读内容时" ] @@ -8221,10 +7615,7 @@ "cli_name": "unset-pin-msg", "cli_path": "chat message unset-pin-msg", "confirmation": "not_required", - "description": "取消某条钉住的(pin)消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "取消指定消息的钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "effect": "write", "group": "message", "idempotency": "unknown", @@ -8238,7 +7629,7 @@ "primary_cli_path": "chat message unset-pin-msg", "reviewed": true, "risk": "medium", - "title": "取消钉住的消息", + "title": "取消钉住消息(Unpin)", "use_when": [ "需要移除一条已知置顶消息时" ] @@ -8255,10 +7646,7 @@ "cli_name": "set-admin", "cli_path": "chat group set-admin", "confirmation": "not_required", - "description": "设置/取消群成员为管理员", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将指定群成员设置为管理员或取消管理员身份。默认设为管理员,传 --off 则取消。", "effect": "write", "group": "group", "idempotency": "unknown", @@ -8272,7 +7660,7 @@ "primary_cli_path": "chat group set-admin", "reviewed": true, "risk": "medium", - "title": "设置/取消群成员为管理员", + "title": "设置 / 取消群管理员", "use_when": [ "需要变更指定成员的群管理员身份时" ] @@ -8289,10 +7677,7 @@ "cli_name": "update", "cli_path": "chat group-role update", "confirmation": "not_required", - "description": "更新群身份", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新群身份名称", "effect": "write", "group": "group-role", "idempotency": "unknown", @@ -8306,7 +7691,7 @@ "primary_cli_path": "chat group-role update", "reviewed": true, "risk": "medium", - "title": "更新群身份", + "title": "更新群身份名称", "use_when": [ "已知角色 ID 并需要重命名该角色时" ] @@ -8323,10 +7708,7 @@ "cli_name": "update-icon", "cli_path": "chat group update-icon", "confirmation": "not_required", - "description": "更新群头像", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定群聊的群头像。需传入群 ID 和头像 mediaId。", "effect": "write", "group": "group", "idempotency": "unknown", @@ -8358,9 +7740,6 @@ "cli_path": "chat group rename", "confirmation": "not_required", "description": "更新群名称", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "group", "idempotency": "unknown", @@ -8374,7 +7753,7 @@ "primary_cli_path": "chat group rename", "reviewed": true, "risk": "medium", - "title": "update_group_name", + "title": "更新群名称", "use_when": [ "需要给已有群聊重命名时" ] @@ -8391,10 +7770,7 @@ "cli_name": "update-settings", "cli_path": "chat group update-settings", "confirmation": "not_required", - "description": "更新群设置", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定群聊的设置项。--setting-key 指定设置项,--status 指定值(0=关闭,1=开启)。\n\n支持的 settingKey:\n authority 仅群主和管理员可管理\n joinValidation 入群许可\n onlyAdminCanAtAll 仅群主和管理员可@所有人\n searchable 群可被搜索\n addFriendForbidden 禁止群内私聊\n toolbarStatus 群快捷栏状态\n pluginCustomizeVerify 仅群主和管理员可管理快捷栏\n onlyAdminCanDING 谁可以在群内发DING\n allMembersCanCreateMcsConf 谁可以在群里发起视频和语音会议\n onlyAdminCanSetMsgTop 谁可以把群消息置顶\n onlyAdminCanPinMsg 谁可以把群消息钉住\n onlyAdminCanSendFile 谁可以上传文件、文件夹和钉盘文件\n allMembersCanCreateCalendar 群成员日历可见性\n groupEmailDisabled 群邮件组\n groupRedEnvelopeSwitch 发红包\n groupLiveAuthority 谁可以发起直播\n groupBillAuthority 群收款开关", "effect": "write", "group": "group", "idempotency": "unknown", @@ -8425,10 +7801,7 @@ "cli_name": "mute", "cli_path": "chat mute", "confirmation": "not_required", - "description": "群免打扰开关", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "开启或关闭会话消息免打扰(支持单聊和群聊)。默认开启免打扰,传 --off 则关闭免打扰。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -8441,7 +7814,7 @@ "primary_cli_path": "chat mute", "reviewed": true, "risk": "medium", - "title": "群免打扰开关", + "title": "会话消息免打扰", "use_when": [ "用户明确要静音或恢复某个会话通知时" ] @@ -8458,10 +7831,7 @@ "cli_name": "set-history", "cli_path": "chat group set-history", "confirmation": "not_required", - "description": "设置新成员入群可查看历史消息选项", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "设置新成员入群后可查看的历史消息范围。--option 取值:\n FORBIDDEN 禁止查看历史消息\n RECENT_100 可查看最近 100 条消息\n ALL 可查看全部历史消息", "effect": "write", "group": "group", "idempotency": "unknown", @@ -8492,10 +7862,7 @@ "cli_name": "update-card", "cli_path": "chat message update-card", "confirmation": "not_required", - "description": "流式更新卡片内容", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新已发送的流式卡片内容。--biz-id 为 send-card 返回的业务 ID,--flow-status 控制流式状态。\n\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。", "effect": "write", "group": "message", "idempotency": "unknown", @@ -8605,10 +7972,7 @@ "cli_name": "get", "cli_path": "contact user profile get", "confirmation": "not_required", - "description": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n返回字段枚举说明:\n - employeeType 员工类型:0 无类型,1 全职,2 兼职,3 实习,4 劳务派遣,5 退休返聘,6 劳务外包\n - employeeStatus 员工状态:-1 无状态,1 待入职,2 试用,3 正式,4 离职,5 待离职,6 试岗,7 已退休\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n--staff-id 为查询员工 ID,--fields 为指定字段集合(逗号分隔),可通过\ncontact user profile fields 获取可用字段列表。\n\n【适用场景】\n - 查询某员工的学历、家庭、银行卡、紧急联系人、合同等档案信息\n\n【不适用场景】\n - 查询用户的部门、主管、管理员权限 → 请用 contact user get", "effect": "read", "group": "user.profile", "idempotency": "idempotent", @@ -8622,7 +7986,7 @@ "primary_cli_path": "contact user profile get", "reviewed": true, "risk": "low", - "title": "查询员工花名册字段信息", + "title": "查询员工花名册字段信息(个人档案)", "use_when": [ "已知员工 ID,需要读取权限范围内的花名册字段值时" ] @@ -8639,10 +8003,7 @@ "cli_name": "get-self", "cli_path": "contact user get-self", "confirmation": "not_required", - "description": "获取当前登录用户的基本信息(如姓名、工号、手机号)、当前组织信息(corpId、组织名称)、直属主管信息、所属部门列表(含部门 ID 与名称)以及角色信息(如管理员类型、自定义角色标签等)。返回内容受组织隐私与权限策略控制:若某些字段(如主管、手机号)被设为不可见,则可能被过滤或省略。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前登录用户的 userId 与基本信息。\n\n触发词:我是谁 / 我的信息 / 我的 userId / 当前用户 / 本人 / self / me / whoami / current。\n别名:self / me / whoami / current 均等价于 get-self。\n无需参数;禁止用 `dws contact user get --ids me/self` 代替(会返回空数据的假成功)。", "effect": "read", "group": "user", "idempotency": "idempotent", @@ -8656,7 +8017,7 @@ "primary_cli_path": "contact user get-self", "reviewed": true, "risk": "low", - "title": "获取当前用户详情", + "title": "获取当前用户信息(我是谁 / 本人)", "use_when": [ "需要取得当前登录用户的 userId 和基本信息时" ] @@ -8673,10 +8034,7 @@ "cli_name": "get-info", "cli_path": "contact dept get-info", "confirmation": "not_required", - "description": "根据指定的部门 ID,获取部门详情。结果受组织架构可见性控制:仅返回调用者有权限查看的部门信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取部门详情(部门ID、名称、人数)", "effect": "read", "group": "dept", "idempotency": "idempotent", @@ -8690,7 +8048,7 @@ "primary_cli_path": "contact dept get-info", "reviewed": true, "risk": "low", - "title": "查询部门详情", + "title": "获取部门详情(部门ID、名称、人数)", "use_when": [ "已知 deptId,需要部门名称、人数等详情时" ] @@ -8707,10 +8065,7 @@ "cli_name": "list-members", "cli_path": "contact dept list-members", "confirmation": "not_required", - "description": "获取指定部门下的所有成员,返回每位成员的用户 ID(userId)和显示名称(如真实姓名或昵称)。结果受组织可见性控制:若调用者无权查看某成员(例如该成员所在子部门被隐藏,或其个人信息设为私密),则该成员不会出现在返回列表中。适用于需要展示部门人员列表、选择协作成员等场景,仅支持调用者有权限访问的部门。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查看指定部门的成员列表。\n\n范围:仅返回传入 deptId 的**本部门**直接成员,**不递归下级部门**。\n跨层级需求:先 'dws contact dept list-children --dept \u003c父deptId\u003e' 枚举子部门,再对子 deptId 分别或合并调用本命令。", "effect": "read", "group": "dept", "idempotency": "idempotent", @@ -8724,7 +8079,7 @@ "primary_cli_path": "contact dept list-members", "reviewed": true, "risk": "low", - "title": "获取部门下所有成员", + "title": "查看部门成员(仅本部门,不含下级)", "use_when": [ "需要按一个或多个 deptId 查看部门成员名单时" ] @@ -8741,10 +8096,7 @@ "cli_name": "list-children", "cli_path": "contact dept list-children", "confirmation": "not_required", - "description": "根据指定的部门 ID,获取其直接子部门列表,返回每个子部门的部门 ID、名称。结果受组织架构可见性控制:仅返回调用者有权限查看的子部门;若父部门不可见或无子部门,则返回空列表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查看子部门", "effect": "read", "group": "dept", "idempotency": "idempotent", @@ -8758,7 +8110,7 @@ "primary_cli_path": "contact dept list-children", "reviewed": true, "risk": "low", - "title": "获取部门的子部门", + "title": "查看子部门", "use_when": [ "已知父部门 deptId,需要列出直属子部门时" ] @@ -8775,10 +8127,7 @@ "cli_name": "get", "cli_path": "contact user get", "confirmation": "not_required", - "description": "获取指定用户 ID 列表对应的员工详细信息,包括人员基本信息(ID、名称、主管名称、主管userId等)、所属角色信息、所在部门信息。返回结果受组织可见性规则限制:若调用者无权查看某员工(如部门隐藏、手机号设为私密等),则相应字段可能被过滤或不返回该员工。适用于需要批量获取同事信息的场景,如组织架构展示、审批人选择等。仅返回调用者权限范围内的有效数据。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量获取用户详情,返回用户的组织管理信息(来自通讯录领域)。\n\n返回字段:\n - isAdmin: 是否为管理员\n - orgEmployeeModel.orgUserId / orgUserName: 用户 ID / 姓名\n - orgEmployeeModel.orgName / orgId: 所属组织名称 / ID\n - orgEmployeeModel.orgMasterUserId / orgMasterDisplayName: 直属主管\n - orgEmployeeModel.depts: 所属部门列表(含 deptId、deptName)\n - orgEmployeeModel.labels: 角色列表\n\n【适用场景】\n - 想知道某个用户在哪个部门、上级是谁、是不是管理员\n\n【不适用场景】\n - 查询学历、家庭、银行卡、合同、紧急联系人等档案信息 → 请用 contact user profile get", "effect": "read", "group": "user", "idempotency": "idempotent", @@ -8792,7 +8141,7 @@ "primary_cli_path": "contact user get", "reviewed": true, "risk": "low", - "title": "get_user_info_by_user_ids", + "title": "批量获取用户详情(组织管理信息)", "use_when": [ "已知一个或多个 userId,需要批量读取用户详情时" ] @@ -8809,10 +8158,7 @@ "cli_name": "fields", "cli_path": "contact user profile fields", "confirmation": "not_required", - "description": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n\n【典型用法】\n 通常作为 contact user profile get 的前置步骤,用于获取可查询的字段 code 列表。", "effect": "read", "group": "user.profile", "idempotency": "idempotent", @@ -8826,7 +8172,7 @@ "primary_cli_path": "contact user profile fields", "reviewed": true, "risk": "low", - "title": "查询花名册有权限字段列表", + "title": "查询花名册有权限的字段列表", "use_when": [ "查询花名册前,需要先确认当前用户可见的字段 code 时" ] @@ -8843,10 +8189,7 @@ "cli_name": "list-my-followings", "cli_path": "contact relation list-my-followings", "confirmation": "not_required", - "description": "获取我的特别关注列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户的特别关注列表", "effect": "read", "group": "relation", "idempotency": "idempotent", @@ -8860,7 +8203,7 @@ "primary_cli_path": "contact relation list-my-followings", "reviewed": true, "risk": "low", - "title": "获取我的特别关注列表", + "title": "获取当前用户的特别关注列表", "use_when": [ "需要查看当前用户特别关注或星标联系人时" ] @@ -8877,10 +8220,7 @@ "cli_name": "search", "cli_path": "contact user dismission search", "confirmation": "not_required", - "description": "获取离职员工列表,支持按照员工姓名、离职时间范围、部门过滤", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "分页获取离职员工列表,支持按员工姓名、离职时间范围、部门进行过滤。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n --name 员工姓名,模糊搜索(可选)\n --start 离职日期查询范围开始,格式 YYYY-MM-DD(可选)\n --end 离职日期查询范围结束,格式 YYYY-MM-DD(可选)\n --depts 部门 ID 列表,逗号分隔(可选)\n --hide-retirement 是否隐藏退休,默认 true(可选)\n --hide-partner 是否隐藏合作伙伴,默认 false(可选)\n --page 页码,从 1 开始(可选,默认 1)\n --limit 页大小,200 以内(可选,默认 20)\n\n注意:--start 和 --end 必须同时设置或同时不设置,不允许只设置其中一个。\n\n【适用场景】\n - 查询公司离职员工名单\n - 按时间范围/部门/姓名筛选离职员工\n\n【不适用场景】\n - 查询在职员工 → 使用 contact user search", "effect": "read", "group": "user.dismission", "idempotency": "idempotent", @@ -8894,7 +8234,7 @@ "primary_cli_path": "contact user dismission search", "reviewed": true, "risk": "low", - "title": "query_dismission_employee_list", + "title": "分页获取离职员工列表", "use_when": [ "需要按姓名、离职时间或部门查询离职员工时" ] @@ -8911,10 +8251,7 @@ "cli_name": "search", "cli_path": "contact user search", "confirmation": "not_required", - "description": "根据关键词搜索好友和同事", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按关键词搜索用户", "effect": "read", "group": "user", "idempotency": "idempotent", @@ -8928,7 +8265,7 @@ "primary_cli_path": "contact user search", "reviewed": true, "risk": "low", - "title": "根据关键词搜索好友和同事", + "title": "按关键词搜索用户", "use_when": [ "需要按姓名或关键词搜索通讯录用户时" ] @@ -8945,10 +8282,7 @@ "cli_name": "search", "cli_path": "contact dept search", "confirmation": "not_required", - "description": "根据关键词模糊搜索部门,返回匹配的部门列表,包含每个部门的 ID、名称。搜索范围限于调用者有权限查看的组织架构;若关键词无匹配结果或部门因可见性设置被隐藏,则相应部门不会出现在结果中。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "搜索部门", "effect": "read", "group": "dept", "idempotency": "idempotent", @@ -8979,10 +8313,7 @@ "cli_name": "search-mobile", "cli_path": "contact user search-mobile", "confirmation": "not_required", - "description": "通过手机号搜索获取用户名称和userId。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按手机号搜索用户", "effect": "read", "group": "user", "idempotency": "idempotent", @@ -8996,7 +8327,7 @@ "primary_cli_path": "contact user search-mobile", "reviewed": true, "risk": "low", - "title": "通过手机号获取成员userId和名称", + "title": "按手机号搜索用户", "use_when": [ "已知手机号,需要精确搜索用户时" ] @@ -9088,16 +8419,13 @@ "canonical_path": "dev.add_dev_app_members", "cli_name": "add", "cli_path": "dev app member add", - "confirmation": "not_required", + "confirmation": "user_required", "description": "添加开放平台应用成员", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.member", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "add_dev_app_members", "primary_cli_path": "dev app member add", "reviewed": true, @@ -9118,16 +8446,13 @@ "canonical_path": "dev.apply_dev_app_permissions", "cli_name": "add", "cli_path": "dev app permission add", - "confirmation": "not_required", + "confirmation": "user_required", "description": "申请开放平台应用权限点", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.permission", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "apply_dev_app_permissions", "primary_cli_path": "dev app permission add", "reviewed": true, @@ -9202,16 +8527,13 @@ "canonical_path": "dev.create_dev_app", "cli_name": "create", "cli_path": "dev app create", - "confirmation": "not_required", + "confirmation": "user_required", "description": "创建开放平台企业内部应用", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "create_dev_app", "primary_cli_path": "dev app create", "reviewed": true, @@ -9232,16 +8554,13 @@ "canonical_path": "dev.create_dev_app_version", "cli_name": "create", "cli_path": "dev app version create", - "confirmation": "not_required", + "confirmation": "user_required", "description": "基于当前配置创建应用新版本", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.version", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "create_dev_app_version", "primary_cli_path": "dev app version create", "reviewed": true, @@ -9264,14 +8583,11 @@ "cli_path": "dev app delete", "confirmation": "user_required", "description": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "group": "app", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "delete_dev_app", "primary_cli_path": "dev app delete", "reviewed": true, @@ -9294,14 +8610,11 @@ "cli_path": "dev app disable", "confirmation": "user_required", "description": "停用开放平台企业内部应用", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "disable_dev_app", "primary_cli_path": "dev app disable", "reviewed": true, @@ -9324,14 +8637,11 @@ "cli_path": "dev app robot disable", "confirmation": "user_required", "description": "停用现有应用的机器人能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.robot", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "disable_dev_app_robot", "primary_cli_path": "dev app robot disable", "reviewed": true, @@ -9352,16 +8662,13 @@ "canonical_path": "dev.enable_dev_app", "cli_name": "enable", "cli_path": "dev app enable", - "confirmation": "not_required", + "confirmation": "user_required", "description": "启用开放平台企业内部应用", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "enable_dev_app", "primary_cli_path": "dev app enable", "reviewed": true, @@ -9382,16 +8689,13 @@ "canonical_path": "dev.enable_dev_app_robot", "cli_name": "enable", "cli_path": "dev app robot enable", - "confirmation": "not_required", + "confirmation": "user_required", "description": "启用现有应用机器人能力(纯启用,无需配置字段)", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.robot", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "enable_dev_app_robot", "primary_cli_path": "dev app robot enable", "reviewed": true, @@ -9414,14 +8718,11 @@ "cli_path": "dev app get", "confirmation": "not_required", "description": "查询开放平台企业内部应用详情", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_dev_app", "primary_cli_path": "dev app get", "reviewed": true, @@ -9444,14 +8745,11 @@ "cli_path": "dev app credentials get", "confirmation": "not_required", "description": "读取开放平台应用凭证", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.credentials", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_dev_app_credentials", "primary_cli_path": "dev app credentials get", "reviewed": true, @@ -9474,14 +8772,11 @@ "cli_path": "dev app version get", "confirmation": "not_required", "description": "查询指定版本详情", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.version", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_dev_app_version_detail", "primary_cli_path": "dev app version get", "reviewed": true, @@ -9504,14 +8799,11 @@ "cli_path": "dev app version status", "confirmation": "not_required", "description": "查询版本发布/审批状态", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.version", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_dev_app_version_status", "primary_cli_path": "dev app version status", "reviewed": true, @@ -9534,14 +8826,11 @@ "cli_path": "dev app robot get", "confirmation": "not_required", "description": "查询现有应用的机器人配置", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.robot", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_extension_robot_config", "primary_cli_path": "dev app robot get", "reviewed": true, @@ -9564,14 +8853,11 @@ "cli_path": "dev app webapp get", "confirmation": "not_required", "description": "查询网页应用配置", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.webapp", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_extension_webapp_config", "primary_cli_path": "dev app webapp get", "reviewed": true, @@ -9594,14 +8880,11 @@ "cli_path": "dev app list", "confirmation": "not_required", "description": "查询开放平台企业内部应用列表", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_dev_app", "primary_cli_path": "dev app list", "reviewed": true, @@ -9624,14 +8907,11 @@ "cli_path": "dev app event list", "confirmation": "not_required", "description": "查询应用已订阅的事件列表", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.event", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_dev_app_events", "primary_cli_path": "dev app event list", "reviewed": true, @@ -9654,14 +8934,11 @@ "cli_path": "dev app member list", "confirmation": "not_required", "description": "查询开放平台应用成员", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.member", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_dev_app_members", "primary_cli_path": "dev app member list", "reviewed": true, @@ -9684,14 +8961,11 @@ "cli_path": "dev app permission list", "confirmation": "not_required", "description": "查询开放平台应用权限列表", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.permission", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_dev_app_permissions", "primary_cli_path": "dev app permission list", "reviewed": true, @@ -9714,14 +8988,11 @@ "cli_path": "dev app version list", "confirmation": "not_required", "description": "分页查询应用版本列表", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.version", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_dev_app_versions", "primary_cli_path": "dev app version list", "reviewed": true, @@ -9742,16 +9013,13 @@ "canonical_path": "dev.publish_dev_app_version", "cli_name": "publish", "cli_path": "dev app version publish", - "confirmation": "not_required", + "confirmation": "user_required", "description": "发布指定版本(含高敏权限需 --confirmed-sensitive)", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.version", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "publish_dev_app_version", "primary_cli_path": "dev app version publish", "reviewed": true, @@ -9774,14 +9042,11 @@ "cli_path": "dev app robot result", "confirmation": "not_required", "description": "查询机器人异步创建任务结果", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "group": "app.robot", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "query_robot_create_result", "primary_cli_path": "dev app robot result", "reviewed": true, @@ -9804,14 +9069,11 @@ "cli_path": "dev app member remove", "confirmation": "user_required", "description": "移除开放平台应用成员", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "group": "app.member", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "remove_dev_app_members", "primary_cli_path": "dev app member remove", "reviewed": true, @@ -9834,14 +9096,11 @@ "cli_path": "dev app permission remove", "confirmation": "user_required", "description": "取消开放平台应用权限点", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "group": "app.permission", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "remove_dev_app_permissions", "primary_cli_path": "dev app permission remove", "reviewed": true, @@ -9863,10 +9122,7 @@ "cli_name": "search", "cli_path": "dev doc search", "confirmation": "not_required", - "description": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。", "effect": "read", "group": "doc", "idempotency": "idempotent", @@ -9880,7 +9136,7 @@ "primary_cli_path": "dev doc search", "reviewed": true, "risk": "low", - "title": "search_open_platform_docs", + "title": "搜索开放平台文档", "use_when": [ "明确需要验证或使用 dev doc search 入口时" ] @@ -9896,16 +9152,13 @@ "canonical_path": "dev.set_extension_robot_config", "cli_name": "config", "cli_path": "dev app robot config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "创建或更新现有应用的机器人配置(upsert)", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.robot", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "set_extension_robot_config", "primary_cli_path": "dev app robot config", "reviewed": true, @@ -9926,16 +9179,13 @@ "canonical_path": "dev.set_extension_webapp_config", "cli_name": "config", "cli_path": "dev app webapp config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "配置网页应用能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.webapp", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "set_extension_webapp_config", "primary_cli_path": "dev app webapp config", "reviewed": true, @@ -9956,16 +9206,13 @@ "canonical_path": "dev.submit_robot_create_task", "cli_name": "submit", "cli_path": "dev app robot submit", - "confirmation": "not_required", + "confirmation": "user_required", "description": "异步提交钉钉智能体机器人创建任务(支持失败重试)", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.robot", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "submit_robot_create_task", "primary_cli_path": "dev app robot submit", "reviewed": true, @@ -9986,16 +9233,13 @@ "canonical_path": "dev.subscribe_dev_app_events", "cli_name": "subscribe", "cli_path": "dev app event subscribe", - "confirmation": "not_required", + "confirmation": "user_required", "description": "订阅应用事件回调", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.event", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "subscribe_dev_app_events", "primary_cli_path": "dev app event subscribe", "reviewed": true, @@ -10016,16 +9260,13 @@ "canonical_path": "dev.unsubscribe_dev_app_events", "cli_name": "unsubscribe", "cli_path": "dev app event unsubscribe", - "confirmation": "not_required", + "confirmation": "user_required", "description": "取消订阅应用事件", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.event", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "unsubscribe_dev_app_events", "primary_cli_path": "dev app event unsubscribe", "reviewed": true, @@ -10046,16 +9287,13 @@ "canonical_path": "dev.update_dev_app", "cli_name": "update", "cli_path": "dev app update", - "confirmation": "not_required", + "confirmation": "user_required", "description": "修改开放平台企业内部应用基础信息", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "update_dev_app", "primary_cli_path": "dev app update", "reviewed": true, @@ -10076,16 +9314,13 @@ "canonical_path": "dev.update_dev_app_security_config", "cli_name": "config", "cli_path": "dev app security config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "更新开放平台应用安全配置", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "group": "app.security", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "update_dev_app_security_config", "primary_cli_path": "dev app security config", "reviewed": true, @@ -10187,10 +9422,7 @@ "cli_name": "search", "cli_path": "devdoc article search", "confirmation": "not_required", - "description": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。", "effect": "read", "group": "article", "idempotency": "idempotent", @@ -10204,7 +9436,7 @@ "primary_cli_path": "devdoc article search", "reviewed": true, "risk": "low", - "title": "search_open_platform_docs", + "title": "搜索开放平台文档", "use_when": [ "需要查找钉钉 OpenAPI、字段、错误码或接入指南时" ] @@ -10299,10 +9531,7 @@ "cli_name": "recall", "cli_path": "ding message recall", "confirmation": "user_required", - "description": "撤回已发送的DING消息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "撤回 DING 消息", "effect": "destructive", "group": "message", "idempotency": "unknown", @@ -10316,7 +9545,7 @@ "primary_cli_path": "ding message recall", "reviewed": true, "risk": "high", - "title": "撤回已发送的DING消息", + "title": "撤回 DING 消息", "use_when": [ "用户明确要撤回一个已知 openDingId 的机器人 DING 时" ] @@ -10334,9 +9563,6 @@ "cli_path": "ding message send", "confirmation": "not_required", "description": "发送 DING 消息给指定用户,支持配置机器人编码、接收人、提醒类型和消息内容。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "message", "idempotency": "unknown", @@ -10350,7 +9576,7 @@ "primary_cli_path": "ding message send", "reviewed": true, "risk": "medium", - "title": "发送DING消息", + "title": "发送 DING 消息", "use_when": [ "用户明确要以机器人身份发送应用内、短信或电话 DING 时" ] @@ -10446,10 +9672,7 @@ "cli_name": "add", "cli_path": "doc permission add", "confirmation": "not_required", - "description": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为指定文档(或文件夹/文件)添加一个或多个协作成员,并授予指定角色。\n\n通过 --user 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "effect": "write", "group": "permission", "idempotency": "unknown", @@ -10463,7 +9686,7 @@ "primary_cli_path": "doc permission add", "reviewed": true, "risk": "medium", - "title": "添加节点成员", + "title": "添加文档协作者", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission add 兼容入口时" ] @@ -10480,10 +9703,7 @@ "cli_name": "copy", "cli_path": "doc copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时复制到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -10496,7 +9716,7 @@ "primary_cli_path": "doc copy", "reviewed": true, "risk": "medium", - "title": "将指定节点复制到目标文件夹", + "title": "复制文档/文件到指定位置", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc copy 兼容入口时" ] @@ -10513,10 +9733,7 @@ "cli_name": "create", "cli_path": "doc comment create", "confirmation": "not_required", - "description": "在钉钉文档中创建全文评论,评论不关联文档内具体位置,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建划词评论(关联文档内指定文本范围),请使用 create_inline_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定文档上创建一条评论。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "effect": "write", "group": "comment", "idempotency": "unknown", @@ -10530,7 +9747,7 @@ "primary_cli_path": "doc comment create", "reviewed": true, "risk": "medium", - "title": "创建全文评论", + "title": "创建文档评论", "use_when": [ "需要创建文档评论时" ] @@ -10547,10 +9764,7 @@ "cli_name": "create", "cli_path": "doc create", "confirmation": "not_required", - "description": "创建一篇文字类型的钉钉在线文档(扩展名=adoc)。\r\n支持创建空文档或带有初始 Markdown 内容的文档。(如需创建钉钉AI表格、钉钉表格、钉钉脑图等其他类型的文件,使用 create_file 工具)\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。\r\n内容长度上限 10000 字符,超出请使用 update_document 工具分批追加写入。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一篇新的钉钉在线文档。\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n初始内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -10563,7 +9777,7 @@ "primary_cli_path": "doc create", "reviewed": true, "risk": "medium", - "title": "创建钉钉文档", + "title": "创建文档", "use_when": [ "需要创建一篇新的在线文档时" ] @@ -10580,10 +9794,7 @@ "cli_name": "create", "cli_path": "doc file create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定目录下新增文件。支持的文件类型 (--type):\n adoc 钉钉在线文档\n axls 钉钉表格\n appt 钉钉演示\n adraw 钉钉白板\n amind 钉钉脑图\n able 钉钉多维表\n folder 文件夹\n\n兼容旧版 accessType: \"0\"=adoc \"1\"=axls \"2\"=appt \"3\"=adraw \"6\"=amind \"7\"=able \"13\"=folder\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)", "effect": "write", "group": "file", "idempotency": "unknown", @@ -10597,7 +9808,7 @@ "primary_cli_path": "doc file create", "reviewed": true, "risk": "medium", - "title": "创建节点", + "title": "创建文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc file create 兼容入口创建节点时。" ] @@ -10614,10 +9825,7 @@ "cli_name": "create", "cli_path": "doc folder create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件夹。\r\n\r\n支持在文件夹下或知识库下创建子文件夹。\r\n创建后返回新文件夹的节点 ID,可用于后续在该文件夹下创建文档或子文件夹。\r\n操作受权限控制,仅当调用者对父节点有写入权限时可成功创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定位置创建文件夹。\n创建位置优先级: --folder (父文件夹) \u003e --workspace \u003e 默认 (我的文档根目录)", "effect": "write", "group": "folder", "idempotency": "unknown", @@ -10648,10 +9856,7 @@ "cli_name": "create-inline", "cli_path": "doc comment create-inline", "confirmation": "not_required", - "description": "在钉钉文档中创建划词评论,评论关联文档内指定块的文本范围,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- blockId、start、end 均为必填,用于定位评论标记的文本范围。\r\n- selectedText 可选填,填写后评论列表中会展示「引用原文:xxx」。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建全文评论(不关联文档内具体位置),请使用 create_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定文档的选中文本区域上创建一条划词评论。\n\n需要指定评论标记所在的块 ID (--block-id)、起始偏移量 (--start) 和结束偏移量 (--end)。\n块 ID 可通过 dws doc block list --node \u003cnodeId\u003e 获取。\n\n可通过 --selected-text 传入选中文本内容,评论列表中会展示「引用原文:xxx」。\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "effect": "write", "group": "comment", "idempotency": "unknown", @@ -10686,8 +9891,8 @@ "effect": "destructive", "group": "comment", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "delete_comment", "primary_cli_path": "doc comment delete", "reviewed": true, @@ -10709,7 +9914,7 @@ "cli_name": "delete", "cli_path": "doc delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将文档或文件移入回收站。\n\n注意: 这是一个危险操作,文档将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n\n权限要求: 对文档有\"管理\"权限。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -10722,7 +9927,7 @@ "primary_cli_path": "doc delete", "reviewed": true, "risk": "high", - "title": "删除节点", + "title": "删除文档/文件到回收站", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc delete 兼容入口,并已确认删除目标时" ] @@ -10739,7 +9944,7 @@ "cli_name": "delete", "cli_path": "doc block delete", "confirmation": "user_required", - "description": "在指定文档中删除指定块元素,需要提供文档ID(dentryUuid)与块元素ID(blockId)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。", + "description": "删除块元素", "effect": "destructive", "group": "block", "idempotency": "unknown", @@ -10770,10 +9975,7 @@ "cli_name": "download", "cli_path": "doc media download", "confirmation": "not_required", - "description": "获取钉钉文档中指定附件的临时下载 URL。\r\n传入文档标识 nodeId 和附件资源标识 resourceId,返回附件的 OSS 临时下载链接 downloadUrl。\r\n前置依赖:需先调用 list_document_blocks 获取文档块列表,从中找到 blockType 为 attachment 的块元素,提取其 resourceId 作为本工具的入参。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取钉钉文档中指定附件的 OSS 临时下载链接。\n\n传入 nodeId(文档标识)和 resourceId(附件资源 ID),返回 downloadUrl。\nresourceId 需通过 dws doc block list 获取:查询目标文档的块列表,\n找到 blockType 为 attachment 的元素,取其 resourceId。", "effect": "read", "group": "media", "idempotency": "idempotent", @@ -10787,7 +9989,7 @@ "primary_cli_path": "doc media download", "reviewed": true, "risk": "low", - "title": "下载指定钉钉文档中的指定附件", + "title": "下载文档附件", "use_when": [ "需要获取文档附件的临时下载链接时" ] @@ -10804,7 +10006,7 @@ "cli_name": "download", "cli_path": "doc download", "confirmation": "not_required", - "description": "获取文件下载凭证,供 AI Agent 自行发起 HTTP GET 请求下载文件内容。本工具是两步下载流程的第一步(也是唯一需要调用的 MCP Tool)。\r\n\r\n完整下载流程:\r\n Step 1:调用本工具,传入文件节点 ID(nodeId),获取下载 URL(resourceUrl)和签名请求头(headers)。\r\n Step 2:AI Agent 自行发起 HTTP GET 请求:\r\n - URL:使用 resourceUrl 中的第一个 URL(优先级最高)。\r\n - Headers:将 headers 中所有键值对作为请求头携带。\r\n - 期望响应:HTTP 200,Body 为文件二进制内容。\r\n - 注意:下载凭证有过期时间(expirationSeconds),请在过期前完成下载;若已过期,需重新调用本工具获取新凭证。", + "description": "下载钉钉文档空间中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地", "dry_run": { "preview_kind": "plan" }, @@ -10820,7 +10022,7 @@ "primary_cli_path": "doc download", "reviewed": true, "risk": "low", - "title": "获取文件下载凭证", + "title": "下载文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc download 兼容入口时" ] @@ -10837,10 +10039,7 @@ "cli_name": "read", "cli_path": "doc read", "confirmation": "not_required", - "description": "获取钉钉文档的内容,以 Markdown 格式返回。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线文档。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取文档内容,以 Markdown 格式返回。支持传入文档 URL 或 ID。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -10853,7 +10052,7 @@ "primary_cli_path": "doc read", "reviewed": true, "risk": "low", - "title": "获取钉钉文档内容", + "title": "读取文档内容 (Markdown)", "use_when": [ "需要读取在线文档正文内容时" ] @@ -10870,10 +10069,7 @@ "cli_name": "info", "cli_path": "doc info", "confirmation": "not_required", - "description": "获取存储在钉钉文档(含知识库)、钉盘相关文件的元信息,包括文档标题、类型、创建者、创建时间等。\r\n返回字段中的 contentType 和 extension 是后续工具路由的关键依据。\r\n\r\n⚠️ 重要:当用户需要获取任何钉钉文件的内容时,必须先调用本工具,\r\n再根据返回的 contentType 和 extension 字段按以下规则选择对应工具:\r\n\r\n- contentType=ALIDOC, extension=adoc → 调用 get_document_content(nodeId),返回 Markdown 内容\r\n- contentType=ALIDOC, extension=axls → 调用钉钉表格 MCP: get_all_sheets(nodeId) 获取工作表列表,再调用 get_range(nodeId, sheetId, range) 读取数据\r\n- contentType=ALIDOC, extension=able → 调用钉钉AI表格 MCP: get_tables(nodeId) 获取数据表列表(nodeId 即 baseId),再调用 query_records(nodeId, tableId) 查询记录\r\n- contentType≠ALIDOC 且 nodeType=file → 调用 download_file(nodeId),返回文件下载链接", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取文档标题、类型、创建者、创建时间、权限等元信息 (不含内容)。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -10886,7 +10082,7 @@ "primary_cli_path": "doc info", "reviewed": true, "risk": "low", - "title": "获取节点基本信息", + "title": "获取文档元信息", "use_when": [ "只需文档标题、类型、创建者、时间或权限等元信息时" ] @@ -10910,8 +10106,8 @@ "effect": "write", "group": "import", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "import_get", "primary_cli_path": "doc import get", "reviewed": true, @@ -10933,10 +10129,7 @@ "cli_name": "insert", "cli_path": "doc block insert", "confirmation": "not_required", - "description": "将一个新的块元素插入指定文档,需要提供文档ID(dentryUuid)与块元素内容(必须包含 blockType 及对应类型的属性对象)。可以支持在指定块元素(传入blockId或index)的头部或尾部插入块元素。操作受文档权限控制,仅当调用者拥有编辑权限时生效。\r\n\r\n【附件插入说明】\r\n若 blockType 为 \"attachment\":\r\n1. 必须先调用 get_doc_attachment_upload_info 工具获取该附件的属性(resourceId)。\r\n2. 将获取到的信息整合进 element 的 attachment 对象中,然后再调用此工具。\r\n\r\n【get_doc_attachment_upload_info 接口使用说明】\r\n获取向指定钉钉文档上传附件所需的 OSS 上传凭证信息。\r\n使用流程:\r\n1. 调用 get_doc_attachment_upload_info 接口,传入文档标识(nodeId)、文件名、文件大小和 MIME 类型,获取上传凭证。\r\n2. 使用返回的 uploadUrl 通过 HTTP PUT 请求将文件内容上传至 OSS,需设置以下请求头:\r\n Content-Type:与入参 mimeType 保持一致,例如 `application/pdf`\r\n Content-Length:与入参 fileSize 保持一致,单位为字节\r\n3. 上传成功后,使用返回的 resourceId 在文档中插入类型为附件的块元素。\r\n\r\n注意事项:\r\n1. uploadUrl 具有时效性,请在获取后尽快完成上传,避免凭证过期。\r\n2. fileSize 必须与实际文件大小一致,否则上传可能失败。\r\n3. mimeType 应与实际文件类型匹配,例如 PDF 文件传 application/pdf。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "向文档插入块元素。通过 --element 传入 JSON 格式的块元素。\n可用 --text 快速插入段落,--heading + --level 快速插入标题。\n\n块类型: paragraph, heading, blockquote, callout, columns,\n orderedList, unorderedList, table, sheet, attachment, slot", "effect": "write", "group": "block", "idempotency": "unknown", @@ -10967,10 +10160,7 @@ "cli_name": "list", "cli_path": "doc comment list", "confirmation": "not_required", - "description": "获取钉钉文档的评论列表,支持分页查询、按评论类型和解决状态过滤。\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n操作受权限控制,仅当调用者对文档有读取及以上权限时可获取评论。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定文档的评论列表,支持分页、按评论类型和解决状态过滤。\n\n评论类型 (--type):\n global 全文评论\n inline 划词评论\n 不传返回所有评论\n\n解决状态 (--resolve-status):\n resolved 已解决\n unresolved 未解决\n 不传返回所有评论", "effect": "read", "group": "comment", "idempotency": "idempotent", @@ -10984,7 +10174,7 @@ "primary_cli_path": "doc comment list", "reviewed": true, "risk": "low", - "title": "获取文档评论列表", + "title": "查询文档评论列表", "use_when": [ "需要查询文档评论列表时" ] @@ -11001,10 +10191,7 @@ "cli_name": "list", "cli_path": "doc block list", "confirmation": "not_required", - "description": "查询指定钉钉文档下的一级块元素列表,需要提供dentryUuid。支持按按起始位置、终止位置范围及块类型过滤。操作受文档权限控制,当调用者拥有编辑或查看或下载权限时生效。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询文档的一级块元素列表,支持按位置范围和块类型过滤。", "effect": "read", "group": "block", "idempotency": "idempotent", @@ -11018,7 +10205,7 @@ "primary_cli_path": "doc block list", "reviewed": true, "risk": "low", - "title": "查询指定钉钉文档下的一级块元素列表", + "title": "查询块元素", "use_when": [ "需要查询文档一级块元素列表时" ] @@ -11035,10 +10222,7 @@ "cli_name": "list", "cli_path": "doc list", "confirmation": "not_required", - "description": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出文件夹或知识库下的直接子节点 (文件夹/文档/文件等)。\n定位优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n跨语义组别名: --node / --file-id 在 list 场景等价于 --folder\n (当 nodeId 实际指向文件夹节点时, 直觉式调用 --node \u003cFOLDER_NODE_ID\u003e 也可正常工作; 推荐用 --folder 表意更清晰)。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -11051,7 +10235,7 @@ "primary_cli_path": "doc list", "reviewed": true, "risk": "low", - "title": "列出指定文件夹或知识库下的直接子节点列表", + "title": "遍历文件列表", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc list 兼容入口时" ] @@ -11068,10 +10252,7 @@ "cli_name": "list", "cli_path": "doc permission list", "confirmation": "not_required", - "description": "查询知识库节点当前的成员权限列表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定节点的协作者列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围。", "effect": "read", "group": "permission", "idempotency": "idempotent", @@ -11085,7 +10266,7 @@ "primary_cli_path": "doc permission list", "reviewed": true, "risk": "low", - "title": "查询节点成员列表", + "title": "查询文档协作者列表", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission list 兼容入口时" ] @@ -11132,10 +10313,7 @@ "cli_name": "move", "cli_path": "doc move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将文档或文件移动到指定文件夹或知识库。移动后原位置的文档将不再存在。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时移动到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11148,7 +10326,7 @@ "primary_cli_path": "doc move", "reviewed": true, "risk": "medium", - "title": "移动节点", + "title": "移动文档/文件到指定位置", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc move 兼容入口时" ] @@ -11165,7 +10343,7 @@ "cli_name": "get", "cli_path": "doc export get", "confirmation": "not_required", - "description": "用于查询通过 submit_export_job 提交的文字文档导出任务的执行状态,任务完成时返回文件下载链接。", + "description": "根据 jobId 查询文档导出任务的执行结果。\n通常不需要手动调用,dws doc export 会自动完成轮询。\n仅在导出命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n PROCESSING 处理中\n SUCCESS 导出成功,返回 downloadUrl\n FAILED 导出失败", "dry_run": { "preview_kind": "plan" }, @@ -11182,7 +10360,7 @@ "primary_cli_path": "doc export get", "reviewed": true, "risk": "low", - "title": "查询文档导出任务状态", + "title": "查询导出任务结果(手动兜底)", "use_when": [ "已有导出 jobId,需要查询任务状态或下载结果时" ] @@ -11199,10 +10377,7 @@ "cli_name": "remove", "cli_path": "doc permission remove", "confirmation": "user_required", - "description": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "从指定节点移除一个或多个协作成员的权限(仅支持 USER 类型)。\n\n移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需在该节点具备 EDITOR 及以上角色(OWNER / MANAGER / EDITOR)。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "effect": "destructive", "group": "permission", "idempotency": "unknown", @@ -11216,7 +10391,7 @@ "primary_cli_path": "doc permission remove", "reviewed": true, "risk": "high", - "title": "移除节点成员权限", + "title": "移除文档协作者权限", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission remove 兼容入口,并已确认撤权目标时" ] @@ -11233,10 +10408,7 @@ "cli_name": "rename", "cli_path": "doc rename", "confirmation": "not_required", - "description": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "修改文档或文件的名称。用户说重命名、rename、改名、修改文档名称/标题时走 doc rename。\n不要用 doc update 修改列表/链接展示名称,也不要重新 create。\n\n权限要求: 对文档有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11249,7 +10421,7 @@ "primary_cli_path": "doc rename", "reviewed": true, "risk": "medium", - "title": "对指定节点进行重命名", + "title": "重命名文档/文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc rename 兼容入口时" ] @@ -11266,10 +10438,7 @@ "cli_name": "reply", "cli_path": "doc comment reply", "confirmation": "not_required", - "description": "回复钉钉文档中的已有评论,支持普通文字回复和表情贴图回复,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,通过 replyCommentKey 指定被回复的评论(可从 create_comment 或 list_comments 的返回结果中获取)。\r\n- 普通回复:填写 content,不填 emoji。\r\n- 表情贴图回复:填写 content(表情名称),同时将 emoji 设为 true。表情回复的 categoryFeature 会自动从被回复评论继承。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n操作受权限控制,仅当调用者对文档有评论权限时可回复评论。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "回复指定文档中的一条评论。\n\n--comment-key 为被回复评论的唯一标识(即 list 返回的 commentKey),格式:{13位毫秒时间戳}{32位UUID},共45位。\ncommentKey可从 dws doc comment create 或 dws doc comment list 返回结果中获取。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"\n\n设置 --emoji 时,本次回复将作为表情贴图回复,--content 填写表情名称。", "effect": "write", "group": "comment", "idempotency": "unknown", @@ -11300,10 +10469,7 @@ "cli_name": "search", "cli_path": "doc search", "confirmation": "not_required", - "description": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据关键词搜索当前用户有权限访问的文档列表。不传关键词则返回最近访问的文档。\n\n支持按扩展名、创建/访问时间范围、创建者、编辑者、@提及用户、知识库等维度过滤。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -11334,14 +10500,11 @@ "cli_path": "doc template apply", "confirmation": "not_required", "description": "使用指定模板创建新文档。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "template", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_apply", "primary_cli_path": "doc template apply", "reviewed": true, @@ -11364,14 +10527,11 @@ "cli_path": "doc template list", "confirmation": "not_required", "description": "获取当前用户可用的文档模板列表,支持按来源筛选。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "template", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_list", "primary_cli_path": "doc template list", "reviewed": true, @@ -11394,14 +10554,11 @@ "cli_path": "doc template search", "confirmation": "not_required", "description": "根据关键词搜索文档模板。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "template", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_search", "primary_cli_path": "doc template search", "reviewed": true, @@ -11424,14 +10581,11 @@ "cli_path": "doc comment update", "confirmation": "not_required", "description": "更新指定文档中的一条评论。\n\n--comment-key 为待更新评论的唯一标识,可从 comment list、create 或 create-inline 的返回结果中获取。\n可通过 --mention 指定更新后评论中被 @ 的用户 uid 列表。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "comment", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "update_comment", "primary_cli_path": "doc comment update", "reviewed": true, @@ -11453,7 +10607,7 @@ "cli_name": "update", "cli_path": "doc update", "confirmation": "not_required", - "description": "更新钉钉文档的内容,扩展名=adoc,其他类型在线文档不能使用此mcp服务,支持两种更新模式。\r\n\r\n## 更新模式\r\n\r\n1. **overwrite**(覆盖,默认):清空文档全部内容后重新写入。适用于需要完整替换文档内容的场景。⚠️ 会丢失原有内容,请谨慎使用。\r\n2. **append**(追加):在文档末尾追加新内容。最安全的模式,不影响现有内容。\r\n 支持通过 index 参数指定插入位置(从 0 开始);不传 index 时追加到末尾。\r\n block 的 index 可通过 list_document_blocks 工具获取。\r\n 插入成功后,该位置及之后的所有 block 的 index 会依次 +1。\r\n\r\n## 注意事项\r\n- 默认模式为 overwrite,不传 mode 时使用覆盖模式\r\n- overwrite 模式会清空所有内容,包括图片、评论等,请谨慎使用\r\n- 写入内容长度上限 10000 字符,超出请分批写入", + "description": "更新文档的 Markdown 内容。\n --mode overwrite: 覆盖 (清空原内容后重写)\n --mode append: 追加 (在末尾追加,最安全)\n 注意: --mode 为必填参数,必须显式指定 overwrite 或 append。\n\nWARNING: --mode overwrite 为破坏性写入,会清空原文档全部内容。\n - 必须显式传 --yes 才会执行覆盖;不传 --yes 时命令直接返回错误。\n - 可先用 --dry-run 预览待写入内容与当前内容的差异 (不调远端 update)。\n - 调用前建议先用 dws doc read 备份现状;调用后建议再次 read 校验。\n\n内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)\n\n插入位置(仅 mode=append 生效):\n --index N 将内容插入到文档第 N 个 block 之前(从 0 开始)。\n 不传时追加到末尾。block index 可通过 doc block list 获取。\n 插入成功后,该位置及之后所有 block 的 index 会依次 +1。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11466,7 +10620,7 @@ "primary_cli_path": "doc update", "reviewed": true, "risk": "medium", - "title": "更新钉钉文档的内容", + "title": "更新文档内容", "use_when": [ "需要更新文档内容(追加 / 覆盖)时" ] @@ -11483,10 +10637,7 @@ "cli_name": "update", "cli_path": "doc block update", "confirmation": "not_required", - "description": "更新指定文档的指定块元素内容或样式,需要提供文档ID(dentryUuid)、块元素ID(blockId)与块元素内容(必须包含 blockType 及对应类型的属性对象)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新文档中指定块的内容或样式。需提供 --block-id 和块元素内容。\n可用 --text 快速更新为段落,--heading + --level 快速更新为标题。", "effect": "write", "group": "block", "idempotency": "unknown", @@ -11517,10 +10668,7 @@ "cli_name": "update", "cli_path": "doc permission update", "confirmation": "user_required", - "description": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定节点已有协作者的权限角色(仅支持 USER 类型成员)。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\n- 若成员的角色来自父节点的权限继承(PASS_ON),且继承角色高于目标角色,接口会拒绝操作。\n\n仅可更新已存在协作关系的用户,新增协作者请使用 dws doc permission add。", "effect": "write", "group": "permission", "idempotency": "unknown", @@ -11534,7 +10682,7 @@ "primary_cli_path": "doc permission update", "reviewed": true, "risk": "high", - "title": "变更节点成员角色", + "title": "更新文档协作者权限", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission update 兼容入口时" ] @@ -11581,14 +10729,11 @@ "cli_path": "doc version list", "confirmation": "not_required", "description": "查看文档历史版本列表", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "version", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "version_list", "primary_cli_path": "doc version list", "reviewed": true, @@ -11614,8 +10759,8 @@ "effect": "destructive", "group": "version", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "version_revert", "primary_cli_path": "doc version revert", "reviewed": true, @@ -11638,14 +10783,11 @@ "cli_path": "doc version save", "confirmation": "not_required", "description": "手动保存文档版本快照", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "version", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "version_save", "primary_cli_path": "doc version save", "reviewed": true, @@ -11745,10 +10887,7 @@ "cli_name": "add", "cli_path": "drive permission add", "confirmation": "not_required", - "description": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为文档空间节点添加协作成员并授予指定角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER", "effect": "write", "group": "permission", "idempotency": "unknown", @@ -11762,7 +10901,7 @@ "primary_cli_path": "drive permission add", "reviewed": true, "risk": "medium", - "title": "添加节点成员", + "title": "添加协作者", "use_when": [ "需要为文档空间节点添加协作成员并授予指定角色时" ] @@ -11779,10 +10918,7 @@ "cli_name": "commit", "cli_path": "drive commit", "confirmation": "not_required", - "description": "文件上传流程:\r\nStep 1:调用 get_upload_info 获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用本接口提交文件,传入Step 1返回的 uploadId 与对应的 fileName、fileSize 完成文件上传", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "提交文件上传", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11795,7 +10931,7 @@ "primary_cli_path": "drive commit", "reviewed": true, "risk": "medium", - "title": "commit_upload", + "title": "提交文件上传", "use_when": [ "需要提交文件上传时" ] @@ -11812,10 +10948,7 @@ "cli_name": "copy", "cli_path": "drive copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将文档空间中的文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n不传 --folder 时复制到 --workspace 根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11828,7 +10961,7 @@ "primary_cli_path": "drive copy", "reviewed": true, "risk": "medium", - "title": "将指定节点复制到目标文件夹", + "title": "复制文件/文档到指定位置", "use_when": [ "需要将文档空间中的文档或文件复制到指定文件夹或知识库时" ] @@ -11845,10 +10978,7 @@ "cli_name": "mkdir", "cli_path": "drive mkdir", "confirmation": "not_required", - "description": "在钉盘中创建一个新文件夹\r\n最简用法:只传 name,文件夹会创建在当前用户「我的文件」的根目录下。\r\n如果想创建在某个子文件夹里,传 parentId(从 list_files 或 create_folder 的返回值中获取)。\r\n创建成功后返回 fileId,可直接用于后续操作(如在该文件夹下继续创建子文件夹或上传文件)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建文件夹", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -11879,13 +11009,10 @@ "cli_path": "drive shortcut", "confirmation": "not_required", "description": "为指定源节点创建快捷方式,并放置到目标文件夹或知识库。\n\n通过 --node 指定源节点。--folder 和 --workspace 均为可选;都不传时由服务端选择默认位置。\n若同时指定,--folder 是目标文件夹,--workspace 用于指定其所属知识库。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "create_shortcut", "primary_cli_path": "drive shortcut", "reviewed": true, @@ -11907,7 +11034,7 @@ "cli_name": "delete", "cli_path": "drive delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将钉盘中的文件或文件夹移入回收站。\n\n注意: 这是一个危险操作,文件将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n--node 对应 drive list 返回的 fileId 字段(即 dentryUuid)。\n\n权限要求: 对文档有\"管理\"权限。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -11920,7 +11047,7 @@ "primary_cli_path": "drive delete", "reviewed": true, "risk": "high", - "title": "删除节点", + "title": "删除文件/文件夹到回收站", "use_when": [ "需要将钉盘中的文件或文件夹移入回收站时" ] @@ -11937,7 +11064,7 @@ "cli_name": "download", "cli_path": "drive download", "confirmation": "not_required", - "description": "获取钉盘普通文件的下载链接。调用钉盘文件下载接口,返回 OSS 预签名下载链接,链接有效期 15 分钟", + "description": "下载钉盘中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。", "dry_run": { "preview_kind": "plan" }, @@ -11953,7 +11080,7 @@ "primary_cli_path": "drive download", "reviewed": true, "risk": "low", - "title": "下载文件", + "title": "下载钉盘文件到本地", "use_when": [ "需要下载钉盘或文档空间文件到本地时" ] @@ -11970,7 +11097,7 @@ "cli_name": "info", "cli_path": "drive info", "confirmation": "not_required", - "description": "获取钉盘中指定节点(文件或文件夹)的元数据信息,包括文件名、类型、状态、路径、创建时间、文件大小等", + "description": "获取钉盘文件/文件夹的元数据信息。\n\n如果目标文件属于钉钉文档(在线文档/表格/脑图等),会自动跟进调用\n钉钉文档接口获取更准确的文档信息(如真实文档名称),并合并输出。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -12001,13 +11128,10 @@ "cli_path": "drive stats", "confirmation": "not_required", "description": "获取指定节点的统计数据,包括阅读人数、阅读次数、编辑次数、评论数、点赞数、预览次数和下载次数等。\n\n不同文件类型返回的统计维度可能不同。--node 支持节点 ID 或文档 URL。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "get_node_stats", "primary_cli_path": "drive stats", "reviewed": true, @@ -12029,10 +11153,7 @@ "cli_name": "upload-info", "cli_path": "drive upload-info", "confirmation": "not_required", - "description": "文件上传流程:\r\nStep 1:调用本接口获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用commit_upload 提交文件,传入本接口返回的 uploadId 与对应的 fileName、fileSize 完成文件上传", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取文件上传信息", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -12045,7 +11166,7 @@ "primary_cli_path": "drive upload-info", "reviewed": true, "risk": "low", - "title": "get_upload_info", + "title": "获取文件上传信息", "use_when": [ "需要获取文件上传信息时" ] @@ -12062,23 +11183,17 @@ "cli_name": "list", "cli_path": "drive list", "confirmation": "not_required", - "description": "列出钉盘指定文件夹下的文件和文件夹,支持分页和排序\r\n最简用法:不传任何参数,列出默认空间根目录下的内容。\r\n如果想列出某个子文件夹的内容,传 parentId(从 create_folder 或 list_files 返回值中获取)。\r\n使用 nextToken 游标翻页:首次不传,后续翻页传上一次返回的 nextToken;nextToken 为 null 表示没有更多数据。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出文件和文件夹。根据参数自动路由到钉盘或文档空间。\n\n路由规则:\n 默认(无 --workspace) → 列出钉盘「我的文件」\n --space-id \u003c纯数字\u003e → 列出钉盘指定空间\n --workspace \u003c加密string/URL\u003e → 列出文档空间/知识库文件(等同于原 list-docs)\n --folder \u003cnodeId\u003e → 列出指定文件夹下的子节点", "effect": "read", "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "drive", - "rpc_name": "list_files" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", "metadata_source": "embedded-mcp-metadata", "name": "list_files", "primary_cli_path": "drive list", "reviewed": true, "risk": "low", - "title": "获取文件/文件夹列表", + "title": "获取文件/文件夹列表(统一入口)", "use_when": [ "需要按目录浏览钉盘或文档空间文件时" ] @@ -12095,10 +11210,7 @@ "cli_name": "list", "cli_path": "drive permission list", "confirmation": "not_required", - "description": "查询知识库节点当前的成员权限列表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询文档空间节点的协作者列表。", "effect": "read", "group": "permission", "idempotency": "idempotent", @@ -12112,7 +11224,7 @@ "primary_cli_path": "drive permission list", "reviewed": true, "risk": "low", - "title": "查询节点成员列表", + "title": "查询协作者列表", "use_when": [ "需要查询文档空间节点的协作者列表时" ] @@ -12129,10 +11241,7 @@ "cli_name": "list-spaces", "cli_path": "drive list-spaces", "confirmation": "not_required", - "description": "获取当前用户可访问的空间列表。\r\n最简用法:不传任何参数,返回所有企业空间。\r\n空间类型筛选:通过 spaceType 参数可以筛选返回的空间类型:\r\norgSpace(或 不传):返回企业空间列表\r\nmySpace:返回用户的\"我的文件\"个人空间\r\n支持游标分页,使用 nextToken 进行翻页(仅企业空间支持分页)。\r\n返回结果说明:\r\n当 spaceType 为 orgSpace ,返回企业团队空间列表\r\n当 spaceType 为 mySpace 时,返回单个\"我的文件\"空间\r\n如果 nextToken 不为空,表示还有更多空间可以查询(仅企业空间)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "⚠️ 此命令已迁移到 wiki space list,请使用:\n dws wiki space list --type orgSpace # 企业空间\n dws wiki space list --type mySpace # 我的文件\n\n列出当前用户可访问的钉盘空间,返回 spaceId、spaceName、rootFolderId 等信息。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -12145,7 +11254,7 @@ "primary_cli_path": "drive list-spaces", "reviewed": true, "risk": "low", - "title": "list_spaces", + "title": "获取钉盘空间列表 (deprecated → dws wiki space list --type orgSpace/mySpace)", "use_when": [ "兼容场景下需要枚举钉盘空间时" ] @@ -12162,10 +11271,7 @@ "cli_name": "move", "cli_path": "drive move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将文档空间中的文档或文件移动到指定文件夹或知识库。移动后原位置不再存在。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -12178,7 +11284,7 @@ "primary_cli_path": "drive move", "reviewed": true, "risk": "medium", - "title": "移动节点", + "title": "移动文件/文档到指定位置", "use_when": [ "需要将文档空间中的文档或文件移动到指定文件夹或知识库时" ] @@ -12195,10 +11301,7 @@ "cli_name": "remove", "cli_path": "drive permission remove", "confirmation": "user_required", - "description": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "从文档空间节点移除协作成员的权限。", "effect": "destructive", "group": "permission", "idempotency": "unknown", @@ -12212,7 +11315,7 @@ "primary_cli_path": "drive permission remove", "reviewed": true, "risk": "high", - "title": "移除节点成员权限", + "title": "移除协作者权限", "use_when": [ "需要从文档空间节点移除协作成员的权限时" ] @@ -12229,10 +11332,7 @@ "cli_name": "update", "cli_path": "drive permission update", "confirmation": "not_required", - "description": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新文档空间节点已有协作者的权限角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER", "effect": "write", "group": "permission", "idempotency": "unknown", @@ -12246,7 +11346,7 @@ "primary_cli_path": "drive permission update", "reviewed": true, "risk": "medium", - "title": "变更节点成员角色", + "title": "更新协作者权限", "use_when": [ "需要更新文档空间节点已有协作者的权限角色时" ] @@ -12264,14 +11364,11 @@ "cli_path": "drive publish get", "confirmation": "not_required", "description": "查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "publish", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "publish_get", "primary_cli_path": "drive publish get", "reviewed": true, @@ -12297,8 +11394,8 @@ "effect": "write", "group": "publish", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "publish_set", "primary_cli_path": "drive publish set", "reviewed": true, @@ -12324,8 +11421,8 @@ "effect": "write", "group": "publish", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "publish_unset", "primary_cli_path": "drive publish unset", "reviewed": true, @@ -12348,13 +11445,10 @@ "cli_path": "drive recent", "confirmation": "not_required", "description": "获取当前用户最近访问或编辑过的文档列表。\n\n支持按文档类型、操作类型、创建人、所属组织过滤。所有过滤条件均为可选,不传则不过滤。\n\n操作类型 (--operate-type):\n 0 最近访问(含打开+编辑)(默认)\n 1 最近编辑\n 不传默认仅返回最近访问(0)\n\n创建人类型 (--creator-type):\n 0 全部 (默认)\n 1 我创建的\n 2 他人创建的", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "recent", "primary_cli_path": "drive recent", "reviewed": true, @@ -12377,14 +11471,11 @@ "cli_path": "drive recycle list", "confirmation": "not_required", "description": "查看回收站文件列表", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "recycle", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "recycle_list", "primary_cli_path": "drive recycle list", "reviewed": true, @@ -12407,18 +11498,15 @@ "cli_path": "drive recycle restore", "confirmation": "not_required", "description": "还原回收站中的文件", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "group": "recycle", - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "recycle_restore", "primary_cli_path": "drive recycle restore", "reviewed": true, - "risk": "low", + "risk": "medium", "title": "还原回收站中的文件", "use_when": [ "需要还原回收站文件时" @@ -12436,10 +11524,7 @@ "cli_name": "rename", "cli_path": "drive rename", "confirmation": "not_required", - "description": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "修改文档空间中文档或文件的名称。\n\n权限要求: 对文档有\"编辑\"权限。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -12452,7 +11537,7 @@ "primary_cli_path": "drive rename", "reviewed": true, "risk": "medium", - "title": "对指定节点进行重命名", + "title": "重命名文件/文档", "use_when": [ "需要修改文档空间中文档或文件的名称时" ] @@ -12469,7 +11554,7 @@ "cli_name": "search", "cli_path": "drive search", "confirmation": "not_required", - "description": "在钉盘空间中搜索文件、文件夹或空间,支持通过 searchTarget 参数切换搜索目标。\r\n\r\n支持三种搜索目标:\r\n1. searchTarget=all(默认):同时搜索文件和空间,返回混合结果\r\n2. searchTarget=file:搜索钉盘中的文件和文件夹,支持按文件类型、扩展名过滤\r\n3. searchTarget=space:搜索钉盘团队空间,返回匹配的空间列表,可快速定位目标空间\r\n\r\n推荐搜索流程:\r\n- 不确定目标 → searchTarget=all 获取所有匹配结果\r\n- 明确知道空间名 → searchTarget=space 定位空间 → list_files(parentId=rootFolderId) 遍历\r\n- 知道文件名/内容关键词 → searchTarget=file 直接搜索文件\r\n- 需要浏览指定空间的全部内容 → 使用 list_files(spaceId=xxx) 遍历,而非搜索\r\n\r\n搜索结果通过 type 字段区分:SPACE(空间)、FILE(普通文件)、FOLDER(文件夹)、ALIDOC(钉钉在线文档)。\r\n搜索范围为用户在当前组织内有权限访问的所有钉盘文件(我的文件+团队文件)。\r\n\r\n重要提示:搜索结果按相关性排序,第一页结果最相关。如果第一页未找到目标,建议优先调整搜索条件(更精确的关键词、添加 fileTypes/extensions 过滤、缩小时间范围等),而不是反复翻页。", + "description": "全局搜索文件,默认同时搜索钉盘和文档空间,合并返回结果。\n\n搜索范围 (--target):\n all (默认)同时搜钉盘文件与文档空间,聚合返回\n file 只搜钉盘文件/文件夹,支持 --file-types / --extensions\n space 只搜钉盘团队空间\n\n如果需要在某个知识库内搜索,请使用 dws wiki node search --workspace \u003cworkspaceId\u003e。\n\n结果中 source 字段区分来源:drive / doc。\n提示:结果按相关性排序,首页未命中时优先调整关键词 / 过滤条件,而非反复翻页。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -12482,7 +11567,7 @@ "primary_cli_path": "drive search", "reviewed": true, "risk": "low", - "title": "钉盘文件搜索", + "title": "搜索文件(聚合钉盘+文档空间)", "use_when": [ "不知道文件位置,需要按名称或条件全局搜索时" ] @@ -12608,8 +11693,8 @@ "description": "订阅 DingTalk 个人事件并将每条事件以 NDJSON 输出到 stdout。\n\n输出格式(事件流默认 ndjson;显式 -f json/pretty/raw 可覆盖;-f table/csv 对\n事件流无意义会 fallback 到 ndjson):\n ndjson (默认) 一行一对象,适合 jq / 管道处理\n json 每事件多行美化 JSON(必须配 --max-events 或 --duration)\n pretty 同 json,未来加颜色\n raw 仅 SDK 原始 payload,无外层封装\n compact 扁平化 + 解析嵌套 + 抽取语义字段(Agent 友好)\n\n默认使用当前 OAuth 登录态自动创建/复用个人订阅并建立个人长连接;非默认组织加\n--profile。连上后 stderr 打就绪行 [event] ready,等它出现再读 stdout;停机用\nSIGTERM、关 stdin,或先用 dws event stop \u003csubscribe_id\u003e --dry-run 预览、确认后加\n--yes,绝不要 kill -9。\n--event-types/--filter 只影响本地 bus → consume 这一段投递;普通个人事件消费\n通常不需要设置。", "effect": "write", "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", "name": "consume", "primary_cli_path": "event consume", "reviewed": true, @@ -12686,8 +11771,8 @@ "description": "显示当前用户个人事件订阅、personal bus 状态和本地 consume 进程。", "effect": "read", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", "name": "status", "primary_cli_path": "event status", "reviewed": true, @@ -12715,8 +11800,8 @@ }, "effect": "destructive", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", "name": "stop", "primary_cli_path": "event stop", "reviewed": true, @@ -12815,10 +11900,7 @@ "cli_name": "list", "cli_path": "live stream list", "confirmation": "not_required", - "description": "获取当前用户发起的直播列表,包含每场直播的基础信息与统计数据。返回字段包括:直播标题、封面图 URL、直播 ID、主播昵称、开始/结束时间戳、播放时长(毫秒)、观看量(UV)及直播状态(如已结束)。数据按分页返回,支持判断是否还有更多内容。适用于个人直播管理、历史记录查看等场景,仅展示当前用户有权限访问的直播内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查看我的直播列表", "effect": "read", "group": "stream", "idempotency": "idempotent", @@ -12832,7 +11914,7 @@ "primary_cli_path": "live stream list", "reviewed": true, "risk": "low", - "title": "获取当前用户发起的直播列表", + "title": "查看我的直播列表", "use_when": [ "用户要查看自己的直播或直播列表时" ] @@ -12928,10 +12010,7 @@ "cli_name": "batch-delete", "cli_path": "mail message batch-delete", "confirmation": "user_required", - "description": "批量删除邮件", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量删除指定邮件(移入已删除文件夹或永久删除)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "destructive", "group": "message", "idempotency": "unknown", @@ -12962,10 +12041,7 @@ "cli_name": "batch-delete", "cli_path": "mail contact batch-delete", "confirmation": "user_required", - "description": "批量删除用户邮箱联系人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量删除指定的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "destructive", "group": "contact", "idempotency": "unknown", @@ -12979,7 +12055,7 @@ "primary_cli_path": "mail contact batch-delete", "reviewed": true, "risk": "high", - "title": "batch_delete_user_mail_contacts", + "title": "批量删除邮件联系人", "use_when": [ "需要从自己的联系人列表移除多个已知 contactId 时" ] @@ -12996,10 +12072,7 @@ "cli_name": "batch-move", "cli_path": "mail message batch-move", "confirmation": "not_required", - "description": "批量移动邮件到指定文件夹", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将多封邮件批量移动到目标文件夹。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "message", "idempotency": "unknown", @@ -13013,7 +12086,7 @@ "primary_cli_path": "mail message batch-move", "reviewed": true, "risk": "medium", - "title": "批量移动邮件", + "title": "批量移动邮件到指定文件夹", "use_when": [ "已知邮件 ID 列表和目标 folderId 时" ] @@ -13030,7 +12103,7 @@ "cli_name": "download", "cli_path": "mail attachment download", "confirmation": "not_required", - "description": "下载邮件附件", + "description": "下载指定邮件的某个附件到本地文件。\n\n流程说明:\n 1. 调用 create_download_session 获取下载链接(stream id)\n 2. 通过 HTTP GET 下载附件内容并保存到本地\n\n参数说明:\n --email 用户邮箱地址(必填)\n --message-id 邮件唯一标识(必填)\n --attachment-id 附件唯一标识,取自 attachment list 的 id 字段(必填)\n --name 保存到本地的文件名(必填,取自 attachment list 的 name 字段)\n --output 保存目录,默认为当前目录\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "attachment", "idempotency": "idempotent", @@ -13044,7 +12117,7 @@ "primary_cli_path": "mail attachment download", "reviewed": true, "risk": "low", - "title": "创建附件下载会话", + "title": "下载邮件附件到本地", "use_when": [ "已知邮件 ID、附件 ID 和文件名,需要保存单个附件时" ] @@ -13061,10 +12134,7 @@ "cli_name": "create", "cli_path": "mail draft create", "confirmation": "not_required", - "description": "创建邮件草稿", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一封邮件草稿,保存到草稿箱(folderId:5)。支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿创建与附件上传,草稿保留在草稿箱(不发送)。\n\n返回字段:\n messageId 新建草稿的邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "draft", "idempotency": "unknown", @@ -13078,7 +12148,7 @@ "primary_cli_path": "mail draft create", "reviewed": true, "risk": "medium", - "title": "创建邮件草稿", + "title": "创建草稿", "use_when": [ "需要先保存收件人、主题、正文或附件供后续编辑时" ] @@ -13095,7 +12165,7 @@ "cli_name": "forward", "cli_path": "mail message forward", "confirmation": "not_required", - "description": "创建转发草稿", + "description": "将指定邮件转发给其他收件人。\n\n返回字段:\n messageId 新生成的转发邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "message", "idempotency": "unknown", @@ -13109,7 +12179,7 @@ "primary_cli_path": "mail message forward", "reviewed": true, "risk": "medium", - "title": "创建转发草稿", + "title": "转发邮件", "use_when": [ "已知原邮件 ID,需要编辑收件人或附言后再发送时" ] @@ -13126,10 +12196,7 @@ "cli_name": "create", "cli_path": "mail folder create", "confirmation": "not_required", - "description": "该工具支持在指定邮箱下创建邮件文件夹。可以创建顶层文件夹,也可以在指定父文件夹下创建子文件夹。创建成功后返回新文件夹的 ID 和元信息。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定邮箱下创建邮件文件夹。\n\n不传 --folder 时创建顶层文件夹;传入 --folder 时在指定父文件夹下创建子文件夹。\n注意:--folder 需要填写父文件夹 ID,不是文件夹名称。父文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result.folder 创建成功后的文件夹信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "folder", "idempotency": "unknown", @@ -13160,7 +12227,7 @@ "cli_name": "reply", "cli_path": "mail message reply", "confirmation": "not_required", - "description": "创建回复草稿", + "description": "回复指定邮件(仅回复发件人)。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "message", "idempotency": "unknown", @@ -13174,7 +12241,7 @@ "primary_cli_path": "mail message reply", "reviewed": true, "risk": "medium", - "title": "创建回复草稿", + "title": "回复邮件", "use_when": [ "已知原邮件 ID 并要回复发件人时" ] @@ -13191,7 +12258,7 @@ "cli_name": "reply-all", "cli_path": "mail message reply-all", "confirmation": "not_required", - "description": "创建回复全部草稿", + "description": "回复邮件给发件人及所有原始收件人。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "message", "idempotency": "unknown", @@ -13205,7 +12272,7 @@ "primary_cli_path": "mail message reply-all", "reviewed": true, "risk": "medium", - "title": "create_replyall_draft", + "title": "回复所有人", "use_when": [ "已知原邮件 ID 且回复需要覆盖所有相关收件人时" ] @@ -13222,10 +12289,7 @@ "cli_name": "create", "cli_path": "mail contact create", "confirmation": "not_required", - "description": "创建用户邮箱联系人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一个新的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "contact", "idempotency": "unknown", @@ -13239,7 +12303,7 @@ "primary_cli_path": "mail contact create", "reviewed": true, "risk": "medium", - "title": "create_user_mail_contact", + "title": "创建邮件联系人", "use_when": [ "需要把一个邮件地址保存到自己的联系人列表时" ] @@ -13256,10 +12320,7 @@ "cli_name": "create", "cli_path": "mail template create", "confirmation": "not_required", - "description": "创建个人邮件模板", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一个新的邮件模板。\n\n返回字段:\n 模板创建结果\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "template", "idempotency": "unknown", @@ -13273,7 +12334,7 @@ "primary_cli_path": "mail template create", "reviewed": true, "risk": "medium", - "title": "create_user_message_template", + "title": "创建邮件模板", "use_when": [ "需要保存固定主题、正文或收件人供重复使用时" ] @@ -13290,10 +12351,7 @@ "cli_name": "delete", "cli_path": "mail folder delete", "confirmation": "user_required", - "description": "该工具支持删除指定邮箱下的邮件文件夹。需要传入要删除的文件夹 ID,文件夹 ID 可通过列出邮件文件夹获得。不要把文件夹名称当作 ID。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除指定邮箱下的邮件文件夹。\n\n注意:--id 需要填写要删除的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 删除结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "destructive", "group": "folder", "idempotency": "unknown", @@ -13324,10 +12382,7 @@ "cli_name": "delete", "cli_path": "mail template delete", "confirmation": "user_required", - "description": "删除用户邮件模板", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据模板 ID 删除指定邮件模板。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "destructive", "group": "template", "idempotency": "unknown", @@ -13341,7 +12396,7 @@ "primary_cli_path": "mail template delete", "reviewed": true, "risk": "high", - "title": "delete_user_message_template", + "title": "删除邮件模板", "use_when": [ "已知 templateId 且明确不再需要该模板时" ] @@ -13358,10 +12413,7 @@ "cli_name": "get", "cli_path": "mail message get", "confirmation": "not_required", - "description": "根据 messageId 获取邮件详情", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据邮件 ID 获取邮件完整内容,包含正文。\n\n返回字段:\n message 邮件完整信息,包含主题、发件人、收件人、正文、附件等\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -13375,7 +12427,7 @@ "primary_cli_path": "mail message get", "reviewed": true, "risk": "low", - "title": "根据 messageId 获取邮件详情", + "title": "查看邮件完整内容", "use_when": [ "搜索或列表已返回 messageId,需要打开邮件内容时" ] @@ -13392,10 +12444,7 @@ "cli_name": "get", "cli_path": "mail thread get", "confirmation": "not_required", - "description": "通过会话 ID 获取指定邮箱中的会话信息,默认仅返回会话基本信息,可通过 $select 参数指定需要额外返回的字段(如 $select=messages 返回会话内的邮件列表)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据会话 ID 获取会话(thread)详情。\n\n返回字段:\n id 会话唯一标识\n subject 会话主题\n summary 会话摘要信息\n lastModifiedDateTime 会话最后修改时间\n messageCount 会话邮件数量\n tags 会话 tag 信息\n senders 会话发件人列表(email / name)\n isRead 会话是否已读(全部已读/未读)\n priority 会话重要性,取会话内邮件最高优先级(PRY_HIGH / PRY_NORMAL)\n flag 会话标识,取会话内最近邮件的标识(FLAG_NONE / FLAG_REPLY / FLAG_FORWARD)\n hasAttachments 会话是否包含附件(不含 inline 资源)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "thread", "idempotency": "idempotent", @@ -13409,7 +12458,7 @@ "primary_cli_path": "mail thread get", "reviewed": true, "risk": "low", - "title": "获取会话信息", + "title": "获取会话详情", "use_when": [ "已知 conversationId 并需要查看同一会话中的邮件上下文时" ] @@ -13426,10 +12475,7 @@ "cli_name": "get", "cli_path": "mail template get", "confirmation": "not_required", - "description": "获取用户邮件模板详情", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据模板 ID 获取邮件模板的完整信息。\n\n返回字段:\n 模板完整信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "template", "idempotency": "idempotent", @@ -13443,7 +12489,7 @@ "primary_cli_path": "mail template get", "reviewed": true, "risk": "low", - "title": "get_user_message_template", + "title": "获取邮件模板详情", "use_when": [ "已知 templateId 并需要查看主题、正文或收件人时" ] @@ -13461,9 +12507,6 @@ "cli_path": "mail message list", "confirmation": "not_required", "description": "列出指定文件夹中的邮件列表(默认为收件箱)。\n\n底层通过 KQL 查询 folderId 实现,返回邮件 ID 及元信息(不含正文)。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "message", "idempotency": "idempotent", @@ -13490,10 +12533,7 @@ "cli_name": "list", "cli_path": "mail folder list", "confirmation": "not_required", - "description": "该工具支持列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\r\n注意:该工具只会返回文件夹的 ID 和元信息(folderId为空则返回顶层文件夹,非空则返回指定父文件夹的子文件夹)", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\n不传 --folder 则返回顶层文件夹,传入则返回该文件夹的子文件夹列表。\n\n返回字段(folders 数组):\n id 文件夹唯一标识\n displayName 文件夹显示名称\n parentFolderId 父文件夹 ID\n childFolderCount 子文件夹数量\n totalItemCount 邮件总数\n unreadItemCount 未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "folder", "idempotency": "idempotent", @@ -13507,7 +12547,7 @@ "primary_cli_path": "mail folder list", "reviewed": true, "risk": "low", - "title": "列出邮件文件夹", + "title": "列举邮件文件夹", "use_when": [ "需要取得 folderId 或浏览邮箱目录时" ] @@ -13524,10 +12564,7 @@ "cli_name": "list", "cli_path": "mail attachment list", "confirmation": "not_required", - "description": "列举邮件附件", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定邮件的所有附件信息。\n\n返回字段(attachments 数组):\n id 附件唯一标识\n name 附件文件名\n contentType 附件 MIME 类型\n size 附件大小(字节)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "attachment", "idempotency": "idempotent", @@ -13558,10 +12595,7 @@ "cli_name": "list", "cli_path": "mail tag list", "confirmation": "not_required", - "description": "该工具支持列出指定邮箱下的所有邮件标签。只会返回标签 的 ID 和元信息(名称、父标签、邮件数量、未读数量等。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定邮箱下的所有邮件标签,返回标签的 ID 和元信息。\n\n返回字段(tags 数组):\n id 标签唯一标识\n name 标签显示名称\n parentId 父标签 ID\n totalItemCount 标签下邮件总数\n unreadItemCount 标签下未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "tag", "idempotency": "idempotent", @@ -13575,7 +12609,7 @@ "primary_cli_path": "mail tag list", "reviewed": true, "risk": "low", - "title": "列出邮件标签", + "title": "列举邮件标签", "use_when": [ "需要取得标签 ID 或查看现有标签时" ] @@ -13592,10 +12626,7 @@ "cli_name": "list", "cli_path": "mail contact list", "confirmation": "not_required", - "description": "列出用户邮箱联系人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定邮箱的所有邮件联系人。\n\n返回字段:\n 联系人列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "contact", "idempotency": "idempotent", @@ -13609,7 +12640,7 @@ "primary_cli_path": "mail contact list", "reviewed": true, "risk": "low", - "title": "list_user_mail_contacts", + "title": "列举邮件联系人", "use_when": [ "需要浏览自己的联系人或取得 contactId 时" ] @@ -13626,10 +12657,7 @@ "cli_name": "list", "cli_path": "mail mailbox list", "confirmation": "not_required", - "description": "查询当前钉钉用户可以使用的 Email 地址列表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户绑定的所有邮箱地址。\n\n返回字段:\n emailAccounts 邮箱列表,每条包含邮箱地址(email)、账号类型(type)、所属企业(orgName)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "mailbox", "idempotency": "idempotent", @@ -13643,7 +12671,7 @@ "primary_cli_path": "mail mailbox list", "reviewed": true, "risk": "low", - "title": "列出可用邮箱地址", + "title": "查询可用邮箱地址", "use_when": [ "需要选择当前用户企业邮箱或个人邮箱时" ] @@ -13660,10 +12688,7 @@ "cli_name": "list", "cli_path": "mail template list", "confirmation": "not_required", - "description": "列出用户邮件模板", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定邮箱的所有邮件模板。\n\n返回字段:\n 模板列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "template", "idempotency": "idempotent", @@ -13677,7 +12702,7 @@ "primary_cli_path": "mail template list", "reviewed": true, "risk": "low", - "title": "list_user_message_templates", + "title": "列举邮件模板", "use_when": [ "需要浏览模板或取得 templateId 时" ] @@ -13694,10 +12719,7 @@ "cli_name": "search", "cli_path": "mail message search", "confirmation": "not_required", - "description": "使用类似 KQL 的查询表达式搜索邮件。\r\n该工具支持通过灵活的查询表达式、分页、排序和字段选择来搜索邮件。\r\n\r\n注意:该工具只会返回邮件的ID和元信息,不会返回完整的邮件正文内容", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "使用类 KQL 查询表达式搜索邮件,仅返回邮件 ID 及元信息(不含正文)。\n\n支持的查询字段:\n date, size, tag, folderId, isRead, hasAttachments,\n subject, attachname, body, from, to\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n字段说明:\n date ISO8601 日期时间,支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: date\u003e2025-06-01T00:00:00Z\n size 邮件大小(字节),支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: size\u003e1024\n folderId 文件夹 ID(整数),必须用数字,不能用文件夹名称\n 示例: folderId:2\n isRead 是否已读,布尔值 true/false\n 示例: isRead:false\n hasAttachments 是否有附件,布尔值 true/false\n 示例: hasAttachments:true\n subject 邮件主题,含空格须加双引号\n 示例: subject:周报 subject:\"项目 进展\"\n body 邮件正文,含空格须加双引号\n 示例: body:会议纪要 body:\"Q1 总结\"\n attachname 附件文件名,含空格须加双引号\n 示例: attachname:report.pdf\n from 发件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: from:alice@company.com from:\"张 三\" from:\"alice\u003ca@b.com\u003e\"\n to 收件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: to:bob@company.com to:\"李 四\" to:\"alice\u003ca@b.com\u003e\"\n\n示例查询:\n date\u003e2025-01-01T00:00:00Z AND (NOT folderId:3) AND (NOT folderId:6)\n (from:\"alice\") OR (to:\"alice\u003ca@b.com\u003e\" AND folderId:1)\n subject:\"周报\" AND hasAttachments:true\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "message", "idempotency": "idempotent", @@ -13711,7 +12733,7 @@ "primary_cli_path": "mail message search", "reviewed": true, "risk": "low", - "title": "搜索邮件", + "title": "搜索邮件 (KQL 语法)", "use_when": [ "需要按主题、发件人、日期、附件或组合条件精确筛选时" ] @@ -13728,10 +12750,7 @@ "cli_name": "search", "cli_path": "mail user search", "confirmation": "not_required", - "description": "搜索账号", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按关键词或工号搜索邮箱用户,返回匹配的用户列表及分页游标。\n\n注意:仅企业邮箱(非 @dingtalk.com 个人邮箱)可使用此功能;\n使用个人邮箱(如 xxx@dingtalk.com)调用将因无权限而报错。\n\n搜索方式(二选一):\n --keyword 按姓名/关键词搜索(当未提供 --employee-no 时为必填)\n --employee-no 按工号精确搜索;提供工号时 keyword 不再必填\n\n返回字段:\n users 匹配的用户列表,每条包含用户 ID、邮箱地址、姓名、昵称、工号、职位、工作地\n nextCursor 下一页游标,传入 --cursor 翻页\n hasMore 是否还有更多数据\n\nuser 对象字段:\n id 用户 ID\n email 展示使用的邮件地址\n name 用户名(人名)\n nickname 用户昵称(或者花名)\n employeeNo 工号\n jobTitle 职位\n workLocation 工作地\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "read", "group": "user", "idempotency": "idempotent", @@ -13745,7 +12764,7 @@ "primary_cli_path": "mail user search", "reviewed": true, "risk": "low", - "title": "搜索账号", + "title": "搜索邮箱用户", "use_when": [ "需要查找他人的企业邮箱地址时" ] @@ -13762,10 +12781,7 @@ "cli_name": "send", "cli_path": "mail draft send", "confirmation": "not_required", - "description": "发送草稿箱中的邮件", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将草稿箱中已有的草稿发送出去。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "draft", "idempotency": "unknown", @@ -13779,7 +12795,7 @@ "primary_cli_path": "mail draft send", "reviewed": true, "risk": "medium", - "title": "发送邮件草稿", + "title": "发送草稿", "use_when": [ "已知草稿 messageId 且用户要求发送该草稿时" ] @@ -13796,10 +12812,7 @@ "cli_name": "send", "cli_path": "mail message send", "confirmation": "not_required", - "description": "使用指定的Email地址作为发件人发送一封邮件。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "发送一封邮件到指定收件人,支持添加普通附件和内联附件(如图片)。\n\n当指定 --attachment 或 --inline-attachment 时,自动执行以下流程:\n 1. 创建草稿\n 2. 为每个普通附件(isInline=false)创建上传会话并上传文件内容\n 3. 为每个内联附件(isInline=true,自动生成 contentId)创建上传会话并上传文件内容\n 4. 发送草稿\n\n内联附件说明:\n 使用 --inline-attachment 指定内联图片(支持 jpg/jpeg/png/gif/webp/bmp/svg),CLI 自动生成 contentId(格式:inline-{文件名}-{序号}@alimail.com)\n 在 --content 中使用占位符 [inline:文件名] 引用内联图片,CLI 自动将正文转为 HTML 并注入 \u003cimg\u003e 标签\n 若 content 中无对应占位符,内联图片会自动追加到正文末尾\n 注意:仅支持图片类型作为内联附件,视频、音频、PDF 等文件请改用 --attachment\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "message", "idempotency": "unknown", @@ -13830,10 +12843,7 @@ "cli_name": "update", "cli_path": "mail draft update", "confirmation": "not_required", - "description": "更新邮件草稿", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新草稿箱中已有草稿的内容,支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿更新与附件上传,草稿保留在草稿箱(不发送)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "draft", "idempotency": "unknown", @@ -13847,7 +12857,7 @@ "primary_cli_path": "mail draft update", "reviewed": true, "risk": "medium", - "title": "更新邮件草稿", + "title": "更新草稿", "use_when": [ "已知草稿 messageId 并需要修改主题、正文或收件人时" ] @@ -13864,10 +12874,7 @@ "cli_name": "update", "cli_path": "mail folder update", "confirmation": "not_required", - "description": "该工具支持修改指定邮箱下邮件文件夹的名称。需要传入要更新的文件夹 ID 和新名称。文件夹 ID 可通过列出邮件文件夹获得,不要把文件夹名称当作 ID。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定邮箱下邮件文件夹的名称。\n\n注意:--id 需要填写要更新的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 更新结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "folder", "idempotency": "unknown", @@ -13898,10 +12905,7 @@ "cli_name": "update", "cli_path": "mail contact update", "confirmation": "not_required", - "description": "修改用户邮箱联系人信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新已有邮件联系人的信息。仅传入需要更新的字段即可。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "contact", "idempotency": "unknown", @@ -13915,7 +12919,7 @@ "primary_cli_path": "mail contact update", "reviewed": true, "risk": "medium", - "title": "update_user_mail_contact", + "title": "更新邮件联系人", "use_when": [ "已知 contactId 并需要改显示名或邮箱信息时" ] @@ -13932,10 +12936,7 @@ "cli_name": "update", "cli_path": "mail template update", "confirmation": "not_required", - "description": "更新用户邮件模板", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新已有邮件模板的内容。仅传入需要更新的字段即可。\n\n注意: 邮箱服务端仅支持更新草稿模板 (创建时带 --is-draft);\n非草稿模板不可修改 (服务端返回 Invalid parameter),只能删除后重建。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "effect": "write", "group": "template", "idempotency": "unknown", @@ -13949,7 +12950,7 @@ "primary_cli_path": "mail template update", "reviewed": true, "risk": "medium", - "title": "update_user_message_template", + "title": "更新邮件模板", "use_when": [ "已知 templateId 并需要修改名称、主题、正文或收件人时" ] @@ -14031,7 +13032,7 @@ "id": "minutes", "name": "AI 听记 / 会议纪要", "runtime": true, - "tool_count": 29, + "tool_count": 31, "tools": [ { "agent_metadata_source": "embedded-skill-metadata", @@ -14045,10 +13046,7 @@ "cli_name": "add", "cli_path": "minutes permission add", "confirmation": "not_required", - "description": "批量给多个听记增加成员,并且设置成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量给多个听记增加成员,并设置成员的权限。\n\n权限类型 (--policy):\n 0 = 管理员\n 1 = 所有者\n 2 = 可编辑\n 3 = 可查看/下载\n 4 = 仅查看\n\n权限子模块 (--sub-resources,可选,逗号分隔):\n OrigContent = 原始内容\n Summary = 纪要\n Analysis = 分析\n Note = 笔记", "effect": "write", "group": "permission", "idempotency": "unknown", @@ -14062,7 +13060,7 @@ "primary_cli_path": "minutes permission add", "reviewed": true, "risk": "medium", - "title": "add_member_permission", + "title": "批量添加听记成员并设置权限", "use_when": [ "当用户明确要求批量给多个听记增加成员,并设置成员的权限,且已确认目标对象和所需参数时使用。" ] @@ -14079,10 +13077,7 @@ "cli_name": "add", "cli_path": "minutes hot-word add", "confirmation": "not_required", - "description": "添加听记个人热词\r\n对于听记语音识别中,需要优化识别结果的专有名词、人名、以及其他用户需要添加热词的场景使用\r\n热词长度不超过10个汉字或5个英文单词", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率。\n支持一次添加多个热词(逗号分隔),每个热词长度不超过 10 个汉字或 5 个英文单词。", "effect": "write", "group": "hot-word", "idempotency": "unknown", @@ -14096,7 +13091,7 @@ "primary_cli_path": "minutes hot-word add", "reviewed": true, "risk": "medium", - "title": "add_personal_hot_word", + "title": "添加个人热词", "use_when": [ "当用户明确要求添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率,且已确认目标对象和所需参数时使用。" ] @@ -14113,10 +13108,7 @@ "cli_name": "batch", "cli_path": "minutes get batch", "confirmation": "not_required", - "description": "根据听记taskUuid列表批量查询听记详情。输入参数:taskUuid列表(string[],必填,每个元素为听记的唯一标识符,最少传入1个)。返回对应听记的详情列表,每条记录包含:听记标题、时长、参与人列表、创建时间、听记唯一标识taskUuid、听记状态。适用于已知特定听记taskUuid需批量获取详情的列表展示场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据 taskUuid 列表批量查询听记详情。\n返回字段:听记标题、时长、参与人列表、创建时间、taskUuid、听记状态。", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14130,7 +13122,7 @@ "primary_cli_path": "minutes get batch", "reviewed": true, "risk": "low", - "title": "batch_get_minutes_details", + "title": "批量查询听记详情", "use_when": [ "当用户需要根据 taskUuid 列表批量查询听记详情,并能提供命令所需的查询条件时使用。" ] @@ -14147,10 +13139,7 @@ "cli_name": "cancel", "cli_path": "minutes upload cancel", "confirmation": "not_required", - "description": "取消文件上传会话\r\n当需要取消create_upload_session创建的会话时使用该接口,传入要取消的会话ID", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "取消 create 创建的上传会话,传入要取消的会话 ID。", "effect": "write", "group": "upload", "idempotency": "unknown", @@ -14164,7 +13153,7 @@ "primary_cli_path": "minutes upload cancel", "reviewed": true, "risk": "medium", - "title": "cancel_upload_session", + "title": "取消文件上传会话", "use_when": [ "当用户明确要求取消 create 创建的上传会话,传入要取消的会话 ID,且已确认目标对象和所需参数时使用。" ] @@ -14181,10 +13170,7 @@ "cli_name": "complete", "cli_path": "minutes upload complete", "confirmation": "not_required", - "description": "文件上传完成后,创建听记。\r\n必须在create_upload_session之后、预签名URL上传`curl -X PUT \"{presignedUrl}\" -T \"/path/to/file.mp4\"`完成后调用。\r\n调用流程参考create_upload_session介绍。\r\n幂等:同一sessionId重复调用直接返回已有的任务,不会重复创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "文件上传完成后,创建听记。\n必须在 create 之后、预签名 URL 上传完成后调用。\n调用流程:\n 1. dws minutes upload create ... → 获取 sessionId 和 presignedUrl\n 2. curl -X PUT \"\u003cpresignedUrl\u003e\" -T \"/path/to/file.mp4\"\n 3. dws minutes upload complete --session-id \u003csessionId\u003e\n\n幂等:同一 sessionId 重复调用直接返回已有的任务,不会重复创建。", "effect": "write", "group": "upload", "idempotency": "unknown", @@ -14198,7 +13184,7 @@ "primary_cli_path": "minutes upload complete", "reviewed": true, "risk": "medium", - "title": "complete_upload_session", + "title": "完成文件上传并创建听记", "use_when": [ "当用户明确要求文件上传完成后,创建听记,且已确认目标对象和所需参数时使用。" ] @@ -14215,10 +13201,7 @@ "cli_name": "create", "cli_path": "minutes mind-graph create", "confirmation": "not_required", - "description": "触发创建听记思维导图任务。触发成功后,你需要知道听记思维导图任务状态,每2s调用一次query_mind_graph_status,如果状态是“进行中”需要保持轮询。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态。\n状态:0=进行中,1=成功,2=失败。", "effect": "write", "group": "mind-graph", "idempotency": "unknown", @@ -14232,7 +13215,7 @@ "primary_cli_path": "minutes mind-graph create", "reviewed": true, "risk": "medium", - "title": "create_mind_graph", + "title": "创建思维导图", "use_when": [ "当用户明确要求触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态,且已确认目标对象和所需参数时使用。" ] @@ -14249,13 +13232,10 @@ "cli_name": "create", "cli_path": "minutes speaker summary create", "confirmation": "not_required", - "description": "触发创建发言人的段落总结任务,该任务将听记的发言人的所有撰写内容汇总总结,触发后需要继续调用查询接口去查询总结任务的结果", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "description": "触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结。\n触发后需调用 dws minutes speaker summary get 查询总结结果。\n--ids 和 --task-uuids 等价,均可使用。", + "effect": "write", "group": "speaker.summary", - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "minutes", @@ -14265,8 +13245,8 @@ "name": "create_speaker_summary", "primary_cli_path": "minutes speaker summary create", "reviewed": true, - "risk": "low", - "title": "create_speaker_summary", + "risk": "medium", + "title": "触发创建发言人段落总结任务", "use_when": [ "当用户明确要求触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结,且已确认目标对象和所需参数时使用。" ] @@ -14283,10 +13263,7 @@ "cli_name": "create", "cli_path": "minutes upload create", "confirmation": "not_required", - "description": "创建文件上传会话,获取预签名上传URL\r\n调用方拿到 URL 后,直接用HTTP PUT将文件上传到该URL\r\n必须与complete_upload_session配合使用\r\n1.调用create_upload_session获取预签名上传URL和上传ID\r\n2.HTTP PUT预签名上传URL上传文件(不带HEADER)\r\n3.调用complete_upload_session传入会话ID", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建文件上传会话,获取预签名上传URL。\n调用方拿到 URL 后,直接用 HTTP PUT 将文件上传到该 URL。\n必须与 complete 配合使用:\n 1. 调用 create 获取预签名上传 URL 和上传 ID\n 2. HTTP PUT 预签名上传 URL 上传文件(不带 HEADER)\n 3. 调用 complete 传入会话 ID", "effect": "write", "group": "upload", "idempotency": "unknown", @@ -14300,7 +13277,7 @@ "primary_cli_path": "minutes upload create", "reviewed": true, "risk": "medium", - "title": "create_upload_session", + "title": "创建文件上传会话", "use_when": [ "当用户明确要求创建文件上传会话,获取预签名上传URL,且已确认目标对象和所需参数时使用。" ] @@ -14317,10 +13294,7 @@ "cli_name": "summary", "cli_path": "minutes get summary", "confirmation": "not_required", - "description": "根据听记唯一标识获取由AI生成的听记内容摘要。输入参数:目标听记的唯一标识符taskUuid。返回Markdown格式的摘要文本,内容由AI对听记转写原文进行结构化提炼生成,涵盖会议主题、核心结论、关键讨论点等。适用于快速了解听记核心内容、会议记录整理、摘要分享等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式。\n内容涵盖会议主题、核心结论、关键讨论点等。", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14334,7 +13308,7 @@ "primary_cli_path": "minutes get summary", "reviewed": true, "risk": "low", - "title": "get_minutes_ai_summary", + "title": "获取听记 AI 摘要", "use_when": [ "当用户需要获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式,并能提供命令所需的查询条件时使用。" ] @@ -14351,10 +13325,7 @@ "cli_name": "info", "cli_path": "minutes get info", "confirmation": "not_required", - "description": "根据听记唯一标识获取该听记的基础元数据信息。输入参数:听记的唯一标识符taskUuid。返回字段包括:创建人、开始时间、截止时间、听记标题、听记访问链接URL。适用于展示听记详情页头部信息、跳转听记原始链接、信息摘要展示等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定听记的基础元数据信息。\n返回字段:创建人、开始时间、截止时间、听记标题、听记访问链接URL。", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14368,7 +13339,7 @@ "primary_cli_path": "minutes get info", "reviewed": true, "risk": "low", - "title": "get_minutes_basic_info", + "title": "获取听记基础信息", "use_when": [ "当用户需要获取指定听记的基础元数据信息,并能提供命令所需的查询条件时使用。" ] @@ -14385,10 +13356,7 @@ "cli_name": "keywords", "cli_path": "minutes get keywords", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记的关键字列表。输入参数:目标听记的唯一标识符taskUuid。返回关键字列表,每个元素为一个从听记内容中提取的核心关键词。适用于快速了解听记主题、关键词检索、内容分类打标及听记摘要辅助展示等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取听记关键字列表", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14402,7 +13370,7 @@ "primary_cli_path": "minutes get keywords", "reviewed": true, "risk": "low", - "title": "get_minutes_keywords", + "title": "获取听记关键字列表", "use_when": [ "当用户需要获取指定听记的关键字列表,并能提供命令所需的查询条件时使用。" ] @@ -14419,10 +13387,7 @@ "cli_name": "transcription", "cli_path": "minutes get transcription", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记的完整语音转写原文。输入参数:听记的唯一标识符 taskUuid。返回转写内容列表,每条记录包含:发言人信息、语音转写文本、对应时间戳。适用于用户回顾会议发言内容、按发言人检索原文、生成会议记录等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定听记的语音转写原文。\n每条记录包含:发言人信息、转写文本、对应时间戳。\n\n当用户明确要求查看或分析转写原文时,应默认拉取全部原文(自动翻页),\n不需要用户手动指定\"第一页\"。如果用户意图不是专门看原文(如查列表、\n看摘要),则不应主动调用此命令。\n\n字符上限保护:循环拉取累积超过 12000 字符时,应暂停并询问用户\n是否继续拉取后续分页内容。\n\n--direction:\n 0 = 正序(时间递增,默认)\n 1 = 倒序(时间递减)", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14436,7 +13401,7 @@ "primary_cli_path": "minutes get transcription", "reviewed": true, "risk": "low", - "title": "get_minutes_transcription", + "title": "获取听记语音转写原文", "use_when": [ "当用户需要获取指定听记的语音转写原文,并能提供命令所需的查询条件时使用。" ] @@ -14453,10 +13418,7 @@ "cli_name": "get", "cli_path": "minutes speaker summary get", "confirmation": "not_required", - "description": "查询发言人的段落总结任务的结果,该任务将听记的发言人的所有撰写内容汇总总结返回,配合创建任务使用", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询发言人段落总结任务的结果,返回每位发言人的发言汇总。\n需先调用 dws minutes speaker summary create 触发任务。\n--ids 和 --task-uuids 等价,均可使用。", "effect": "read", "group": "speaker.summary", "idempotency": "idempotent", @@ -14470,31 +13432,55 @@ "primary_cli_path": "minutes speaker summary get", "reviewed": true, "risk": "low", - "title": "get_speaker_summary", + "title": "查询发言人段落总结结果", "use_when": [ "当用户需要查询发言人段落总结任务的结果,返回每位发言人的发言汇总,并能提供命令所需的查询条件时使用。" ] }, { "agent_metadata_source": "embedded-skill-metadata", - "agent_summary": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "agent_summary": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", - "aliases": [ - "minutes list all", - "minutes list shared" - ], "availability": "available", "avoid_when": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" + ], + "canonical_path": "minutes.list_accessible_minutes", + "cli_name": "all", + "cli_path": "minutes list all", + "confirmation": "not_required", + "description": "查询我有权限访问的所有听记列表(包括我创建的、他人共享给我的等所有有权限的听记),支持按关键字和时间范围筛选。\n时间范围和时间关键词为可选参数,不传则返回所有有权限的听记。\n--limit 为可选参数,不传时默认返回 10 条。", + "effect": "read", + "group": "list", + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "metadata_source": "embedded-mcp-metadata", + "name": "list_accessible_minutes", + "primary_cli_path": "minutes list all", + "reviewed": true, + "risk": "low", + "title": "查询我有权限访问的所有听记列表", + "use_when": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ] + }, + { + "agent_metadata_source": "embedded-skill-metadata", + "agent_summary": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" ], "canonical_path": "minutes.list_by_keyword_and_time_range", "cli_name": "mine", "cli_path": "minutes list mine", "confirmation": "not_required", - "description": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", "effect": "read", "group": "list", "idempotency": "idempotent", @@ -14508,9 +13494,9 @@ "primary_cli_path": "minutes list mine", "reviewed": true, "risk": "low", - "title": "list_by_keyword_and_time_range", + "title": "查询我创建的听记列表", "use_when": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" ] }, { @@ -14525,10 +13511,7 @@ "cli_name": "todos", "cli_path": "minutes get todos", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记中提取的待办事项列表。输入参数:目标听记的唯一标识符taskUuid。返回待办事项列表,每条记录包含:待办事项内容、待办唯一ID、参与人信息、待办时间。适用于会后跟进行动项、任务分配追踪、按人员或时间筛选待办等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定听记中由系统提取的待办事项列表。\n每条记录包含:待办内容、待办唯一ID、参与人信息、待办时间。", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14542,7 +13525,7 @@ "primary_cli_path": "minutes get todos", "reviewed": true, "risk": "low", - "title": "list_minutes_todos", + "title": "获取听记中提取的待办事项", "use_when": [ "当用户需要查询指定听记中由系统提取的待办事项列表,并能提供命令所需的查询条件时使用。" ] @@ -14559,10 +13542,7 @@ "cli_name": "list", "cli_path": "minutes hot-word list", "confirmation": "not_required", - "description": "查询我的热词列表,返回个人的所有听记配置过的热词列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户配置的所有听记热词列表。\n无需传入额外参数,系统自动识别当前用户身份。\n返回用户已添加的全部热词,适用于查看已有热词、去重检查等场景。", "effect": "read", "group": "hot-word", "idempotency": "idempotent", @@ -14576,11 +13556,42 @@ "primary_cli_path": "minutes hot-word list", "reviewed": true, "risk": "low", - "title": "list_my_hotwords", + "title": "查询我的热词列表", "use_when": [ "当用户需要查询当前用户配置的所有听记热词列表,并能提供命令所需的查询条件时使用。" ] }, + { + "agent_metadata_source": "embedded-skill-metadata", + "agent_summary": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "canonical_path": "minutes.list_shared_minutes", + "cli_name": "shared", + "cli_path": "minutes list shared", + "confirmation": "not_required", + "description": "查询他人共享给我的听记列表,支持分页,支持按关键字和时间范围筛选。", + "effect": "read", + "group": "list", + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "metadata_source": "embedded-mcp-metadata", + "name": "list_shared_minutes", + "primary_cli_path": "minutes list shared", + "reviewed": true, + "risk": "low", + "title": "查询他人共享给我的听记列表", + "use_when": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + }, { "agent_metadata_source": "embedded-skill-metadata", "agent_summary": "查询指定听记的思维导图生成状态。", @@ -14593,10 +13604,7 @@ "cli_name": "status", "cli_path": "minutes mind-graph status", "confirmation": "not_required", - "description": "查询思维导图任务状态,根据taskUuid查询对应思维导图状态。\r\n返回的结果里,任务状态(taskStatus)如下:\r\n0-进行中,1-成功,2-失败\r\n如果没有返回任务状态,也视为成功", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定听记的思维导图生成状态。\n返回任务状态:0=进行中,1=成功,2=失败。如果没有返回任务状态,也视为成功。", "effect": "read", "group": "mind-graph", "idempotency": "idempotent", @@ -14610,7 +13618,7 @@ "primary_cli_path": "minutes mind-graph status", "reviewed": true, "risk": "low", - "title": "query_mind_graph_status", + "title": "查询思维导图状态", "use_when": [ "当用户需要查询指定听记的思维导图生成状态,并能提供命令所需的查询条件时使用。" ] @@ -14627,10 +13635,7 @@ "cli_name": "audio", "cli_path": "minutes get audio", "confirmation": "not_required", - "description": "查询听记的音频/视频地址,入参为 taskUuid 和操作人 uid,操作人需拥有该听记的\"读\"权限及以上才会返回;支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。在返回地址前会过滤以下场景:听记已被删除、A1 无痕模式听记、临存过期的听记(媒体未准备好或临时存储已过期)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询听记的音频/视频文件地址(OSS 链接)。\n操作人需拥有该听记的\"读\"权限及以上才会返回。\n支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。\n\n以下场景不返回地址:\n - 听记已被删除\n - A1 无痕模式听记\n - 临存过期的听记(媒体未准备好或临时存储已过期)", "effect": "read", "group": "get", "idempotency": "idempotent", @@ -14644,7 +13649,7 @@ "primary_cli_path": "minutes get audio", "reviewed": true, "risk": "low", - "title": "query_minutes_audio_url", + "title": "获取听记音频/视频地址", "use_when": [ "当用户需要查询听记的音频/视频文件地址(OSS 链接),并能提供命令所需的查询条件时使用。" ] @@ -14661,10 +13666,7 @@ "cli_name": "query", "cli_path": "minutes tag query", "confirmation": "not_required", - "description": "根据用户的标签或者分组信息来查询听记列表信息,用户的标签通过听记页面手动创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据用户的标签或分组 ID 查询该标签下的听记列表。\n标签/分组在听记页面手动创建,tagId 可通过 dws minutes tag list 获取。\n支持分页查询,使用 --limit 控制每页数量,--cursor 传入分页 token。", "effect": "read", "group": "tag", "idempotency": "idempotent", @@ -14678,7 +13680,7 @@ "primary_cli_path": "minutes tag query", "reviewed": true, "risk": "low", - "title": "query_minutes_by_tag_id", + "title": "根据标签ID查询听记列表", "use_when": [ "当用户需要根据用户的标签或分组 ID 查询该标签下的听记列表,并能提供命令所需的查询条件时使用。" ] @@ -14695,10 +13697,7 @@ "cli_name": "list", "cli_path": "minutes tag list", "confirmation": "not_required", - "description": "查询我的的听记的标签或者分组列表,标签或者分组在听记页面创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询当前用户的听记标签或分组列表。\n标签/分组在听记页面手动创建,此命令用于查看已有标签。\n无需传入额外参数,系统自动识别当前用户身份。\n返回所有标签/分组的列表,每条记录包含 tagId 和标签名称。\n获取到 tagId 后,可使用 dws minutes tag query --tag-id \u003ctagId\u003e 查询该标签下的听记列表。", "effect": "read", "group": "tag", "idempotency": "idempotent", @@ -14712,7 +13711,7 @@ "primary_cli_path": "minutes tag list", "reviewed": true, "risk": "low", - "title": "query_user_tag_list", + "title": "查询我的听记标签/分组列表", "use_when": [ "当用户需要查询当前用户的听记标签或分组列表,并能提供命令所需的查询条件时使用。" ] @@ -14730,14 +13729,11 @@ "cli_path": "minutes record pause", "confirmation": "not_required", "description": "暂停听记录音", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "record", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "record_pause", "primary_cli_path": "minutes record pause", "reviewed": true, @@ -14760,14 +13756,11 @@ "cli_path": "minutes record resume", "confirmation": "not_required", "description": "恢复听记录音", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "record", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "record_resume", "primary_cli_path": "minutes record resume", "reviewed": true, @@ -14790,14 +13783,11 @@ "cli_path": "minutes record start", "confirmation": "not_required", "description": "发起听记(开始录音)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "record", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "record_start", "primary_cli_path": "minutes record start", "reviewed": true, @@ -14820,14 +13810,11 @@ "cli_path": "minutes record stop", "confirmation": "not_required", "description": "结束听记录音", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "record", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "record_stop", "primary_cli_path": "minutes record stop", "reviewed": true, @@ -14849,10 +13836,7 @@ "cli_name": "remove", "cli_path": "minutes permission remove", "confirmation": "user_required", - "description": "批量移除多个听记的成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限。", "effect": "destructive", "group": "permission", "idempotency": "unknown", @@ -14866,7 +13850,7 @@ "primary_cli_path": "minutes permission remove", "reviewed": true, "risk": "high", - "title": "remove_member_permission", + "title": "批量移除听记成员权限", "use_when": [ "当用户明确要求批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限,且已确认目标对象和所需参数时使用。" ] @@ -14883,10 +13867,7 @@ "cli_name": "replace-text", "cli_path": "minutes replace-text", "confirmation": "user_required", - "description": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换为目标文字", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换。\n区分大小写,精确匹配。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -14899,7 +13880,7 @@ "primary_cli_path": "minutes replace-text", "reviewed": true, "risk": "high", - "title": "replace_minutes_text", + "title": "查找替换段落和纪要中匹配的文字", "use_when": [ "当用户明确要求把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换,且已确认目标对象和所需参数时使用。" ] @@ -14916,10 +13897,7 @@ "cli_name": "replace", "cli_path": "minutes speaker replace", "confirmation": "not_required", - "description": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人。\n支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。", "effect": "write", "group": "speaker", "idempotency": "unknown", @@ -14933,7 +13911,7 @@ "primary_cli_path": "minutes speaker replace", "reviewed": true, "risk": "medium", - "title": "replace_speaker", + "title": "替换发言人", "use_when": [ "当用户明确要求批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,且已确认目标对象和所需参数时使用。" ] @@ -14950,10 +13928,7 @@ "cli_name": "summary", "cli_path": "minutes update summary", "confirmation": "not_required", - "description": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。适用于用户手动编辑或 AI Agent 修改纪要的场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。\n适用于用户手动编辑或 AI Agent 修改纪要的场景。\n\n修改纪要的完整流程(读取 -\u003e 修改 -\u003e 校验 -\u003e 写回):\n1. 先调用 get summary 获取当前纪要原文\n2. 修改时必须保留原文中所有 Markdown 图片,仅优化文本内容\n3. 写回前执行 Markdown 格式校验,确保结构合理、可渲染\n4. 调用 update summary 将修改后的完整内容写回听记", "effect": "write", "group": "update", "idempotency": "unknown", @@ -14967,7 +13942,7 @@ "primary_cli_path": "minutes update summary", "reviewed": true, "risk": "medium", - "title": "update_minutes_summary", + "title": "更新纪要内容", "use_when": [ "当用户明确要求用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成,且已确认目标对象和所需参数时使用。" ] @@ -14984,10 +13959,7 @@ "cli_name": "title", "cli_path": "minutes update title", "confirmation": "not_required", - "description": "修改指定听记的标题名称。输入参数:taskUuid、newTitle 新的听记标题。操作成功返回更新结果状态。适用于用户对已有听记进行重命名、整理归档等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "修改听记标题", "effect": "write", "group": "update", "idempotency": "unknown", @@ -15001,7 +13973,7 @@ "primary_cli_path": "minutes update title", "reviewed": true, "risk": "medium", - "title": "update_minutes_title", + "title": "修改听记标题", "use_when": [ "当用户明确要求修改指定听记的标题,且已确认目标对象和所需参数时使用。" ] @@ -15096,10 +14068,7 @@ "cli_name": "approve", "cli_path": "oa approval approve", "confirmation": "not_required", - "description": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "同意审批", "effect": "write", "group": "approval", "idempotency": "unknown", @@ -15113,7 +14082,7 @@ "primary_cli_path": "oa approval approve", "reviewed": true, "risk": "medium", - "title": "approve_processInstance", + "title": "同意审批", "use_when": [ "需要同意审批时" ] @@ -15130,10 +14099,7 @@ "cli_name": "oa-comments", "cli_path": "oa approval oa-comments", "confirmation": "not_required", - "description": "用户添加审批评论", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对审批实例添加评论", "effect": "write", "group": "approval", "idempotency": "unknown", @@ -15147,7 +14113,7 @@ "primary_cli_path": "oa approval oa-comments", "reviewed": true, "risk": "medium", - "title": "dingflow_comments", + "title": "对审批实例添加评论", "use_when": [ "需要为审批实例添加评论时" ] @@ -15164,10 +14130,7 @@ "cli_name": "list-executed", "cli_path": "oa approval list-executed", "confirmation": "not_required", - "description": "获取员工已处理任务列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户已经处理过的审批单列表", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15181,7 +14144,7 @@ "primary_cli_path": "oa approval list-executed", "reviewed": true, "risk": "low", - "title": "get_done_tasks", + "title": "获取当前用户已经处理过的审批单列表", "use_when": [ "需要查看当前用户已经处理过的审批单时" ] @@ -15198,10 +14161,7 @@ "cli_name": "list-cc", "cli_path": "oa approval list-cc", "confirmation": "not_required", - "description": "获取抄送用户的列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取抄送当前用户的审批单列表", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15215,7 +14175,7 @@ "primary_cli_path": "oa approval list-cc", "reviewed": true, "risk": "low", - "title": "get_noticed_instances", + "title": "获取抄送当前用户的审批单列表", "use_when": [ "需要查看抄送给当前用户的审批单时" ] @@ -15232,10 +14192,7 @@ "cli_name": "detail", "cli_path": "oa approval detail", "confirmation": "not_required", - "description": "获取指定审批实例的详情信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取审批实例详情", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15249,7 +14206,7 @@ "primary_cli_path": "oa approval detail", "reviewed": true, "risk": "low", - "title": "get_processInstance_detail", + "title": "获取审批实例详情", "use_when": [ "已知审批实例 ID,需要查看表单与当前状态详情时" ] @@ -15266,10 +14223,7 @@ "cli_name": "records", "cli_path": "oa approval records", "confirmation": "not_required", - "description": "获取某个审批实例的审批操作记录信息,获取的是该审批实例有哪些人做了什么操作,以及操作结果是什么", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取审批操作记录", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15283,7 +14237,7 @@ "primary_cli_path": "oa approval records", "reviewed": true, "risk": "low", - "title": "get_processInstance_records", + "title": "获取审批操作记录", "use_when": [ "已知审批实例 ID,需要查看审批操作历史时" ] @@ -15300,10 +14254,7 @@ "cli_name": "list-submitted", "cli_path": "oa approval list-submitted", "confirmation": "not_required", - "description": "获取已提交实例列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户已发起的审批单列表", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15317,7 +14268,7 @@ "primary_cli_path": "oa approval list-submitted", "reviewed": true, "risk": "low", - "title": "get_submitted_instances", + "title": "获取当前用户已发起的审批单列表", "use_when": [ "需要查看当前用户已发起的审批单时" ] @@ -15334,10 +14285,7 @@ "cli_name": "list-initiated", "cli_path": "oa approval list-initiated", "confirmation": "not_required", - "description": "查询当前用户已发起的审批实例列表,查询的信息包含审批实例Id、审批实例发起时间、审批实例当前状态等基础信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询审批模板下已发起的审批记录", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15351,7 +14299,7 @@ "primary_cli_path": "oa approval list-initiated", "reviewed": true, "risk": "low", - "title": "list_initiated_instances", + "title": "查询审批模板下已发起的审批记录", "use_when": [ "已知审批模板 processCode,需要按时间查询其发起记录时" ] @@ -15368,10 +14316,7 @@ "cli_name": "list-pending", "cli_path": "oa approval list-pending", "confirmation": "not_required", - "description": "查询当前用户待处理的审批单列表,返回每条审批单的名称、唯一编码(如审批实例 ID)、处理跳转链接(用于一键进入审批页面)等关键信息。结果仅包含用户作为审批人且尚未处理的审批事项,适用于工作台待办集成、审批提醒等场景。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询待我处理的审批", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15385,7 +14330,7 @@ "primary_cli_path": "oa approval list-pending", "reviewed": true, "risk": "low", - "title": "list_pending_approvals", + "title": "查询待我处理的审批", "use_when": [ "需要查看当前用户待处理的审批单列表时" ] @@ -15402,10 +14347,7 @@ "cli_name": "tasks", "cli_path": "oa approval tasks", "confirmation": "not_required", - "description": "查询待我审批的任务Id,获取任务Id之后,可以执行同意、拒绝审批单操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询待我审批的任务 ID", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15419,7 +14361,7 @@ "primary_cli_path": "oa approval tasks", "reviewed": true, "risk": "low", - "title": "query_pending_tasks", + "title": "查询待我审批的任务 ID", "use_when": [ "已知审批实例 ID,需要取得当前用户待办 taskId 时" ] @@ -15436,10 +14378,7 @@ "cli_name": "list-forms", "cli_path": "oa approval list-forms", "confirmation": "not_required", - "description": "获取当前用户可见的审批表单列表,可获取审批表单的processCode。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户可见的审批表单列表", "effect": "read", "group": "approval", "idempotency": "idempotent", @@ -15453,7 +14392,7 @@ "primary_cli_path": "oa approval list-forms", "reviewed": true, "risk": "low", - "title": "list_user_visible_process", + "title": "获取当前用户可见的审批表单列表", "use_when": [ "需要查看当前用户可发起或可见的审批表单时" ] @@ -15470,10 +14409,7 @@ "cli_name": "oa-cc-noticer", "cli_path": "oa approval oa-cc-noticer", "confirmation": "not_required", - "description": "抄送审批人", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对审批实例进行抄送", "effect": "write", "group": "approval", "idempotency": "unknown", @@ -15487,7 +14423,7 @@ "primary_cli_path": "oa approval oa-cc-noticer", "reviewed": true, "risk": "medium", - "title": "oa_cc_noticer", + "title": "对审批实例进行抄送", "use_when": [ "需要为审批实例添加抄送人时" ] @@ -15504,10 +14440,7 @@ "cli_name": "redirect-task", "cli_path": "oa approval redirect-task", "confirmation": "not_required", - "description": "转交审批任务", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "转交审批任务给其他人", "effect": "write", "group": "approval", "idempotency": "unknown", @@ -15521,7 +14454,7 @@ "primary_cli_path": "oa approval redirect-task", "reviewed": true, "risk": "medium", - "title": "redirect_task", + "title": "转交审批任务给其他人", "use_when": [ "需要转交审批任务时" ] @@ -15538,10 +14471,7 @@ "cli_name": "reject", "cli_path": "oa approval reject", "confirmation": "user_required", - "description": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "拒绝审批", "effect": "destructive", "group": "approval", "idempotency": "unknown", @@ -15555,7 +14485,7 @@ "primary_cli_path": "oa approval reject", "reviewed": true, "risk": "high", - "title": "reject_processInstance", + "title": "拒绝审批", "use_when": [ "用户明确要求拒绝审批时" ] @@ -15572,7 +14502,7 @@ "cli_name": "revoke", "cli_path": "oa approval revoke", "confirmation": "user_required", - "description": "撤销当前用户已经发起的审批实例,需要的参数processInstanceId可以从", + "description": "撤销已发起的审批", "effect": "write", "group": "approval", "idempotency": "unknown", @@ -15586,7 +14516,7 @@ "primary_cli_path": "oa approval revoke", "reviewed": true, "risk": "high", - "title": "revoke_processInstance", + "title": "撤销已发起的审批", "use_when": [ "用户明确要求撤销已发起的审批时" ] @@ -15680,10 +14610,7 @@ "cli_name": "chmod", "cli_path": "pat chmod", "confirmation": "user_required", - "description": "按可信上下文为当前用户执行 PAT 批量授权,支持 dryRun 和 pending flow。", - "dry_run": { - "preview_kind": "request" - }, + "description": "授予指定 scope 的操作权限。\n\nscope 格式: \u003cproduct\u003e.\u003centity\u003e:\u003cpermission\u003e\n 例: aitable.record:query chat.message:list calendar.event:get\n\ngrantType 规则:\n once 一次性,执行一次后自动失效\n session 当前会话有效,需要 --session-id\n permanent 永久有效(默认)\n\n批量授权:\n dws pat chmod 支持一次传多个 scope 直接批量授予。\n 也支持 --products / --product 按产品编码批量展开 scope 模板,\n --domains / --domain 按产品域批量展开 scope 模板,\n --recommend 使用服务端推荐 scope 集合。\n 使用产品 / 域 / 推荐集合时,CLI 会先生成 batch plan,确认\n selected / skipped / pending,再对 selected scopes 执行 batch grant;\n --dry-run 只返回授权计划,不写入授权。真正执行批量授权必须显式\n 添加 --yes;未加 --yes 时 CLI 会阻断并提示 agent 先确认。\n\nagentCode 配置:\n 可通过 --agentCode 或 DINGTALK_DWS_AGENTCODE\n 指定;未传 agentCode 时,CLI 会省略该字段并由服务端默认兜底。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -15696,7 +14623,7 @@ "primary_cli_path": "pat chmod", "reviewed": true, "risk": "high", - "title": "批量授权", + "title": "授予指定权限", "use_when": [ "需要预览或授予一次性、会话或永久 PAT 行为 scope 时" ] @@ -15821,10 +14748,7 @@ "cli_name": "submit", "cli_path": "report entry submit", "confirmation": "not_required", - "description": "创建日志", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "按模版提交一份日报。--contents 为 JSON 数组,每项需含 key、sort、content、contentType、type,\n与远程 create_report 一致;可先通过 report template list / template get 取得 templateId 与控件定义。\n\n长内容(含中文换行 / Markdown)建议走 --contents-file 避免 shell 引号问题;\n也可用 --contents - 从 stdin 读取。\n提交成功后会自动反查详情,并在返回中追加 dingtalkOpenUrl / dingtalkOpenMarkdownLink 跳转链接字段。", "effect": "write", "group": "entry", "idempotency": "unknown", @@ -15838,7 +14762,7 @@ "primary_cli_path": "report entry submit", "reviewed": true, "risk": "medium", - "title": "create_report", + "title": "提交一份新日报(按模版)", "use_when": [ "已读取模板字段定义,需要按模板提交日报或周报时" ] @@ -15855,10 +14779,7 @@ "cli_name": "list", "cli_path": "report template list", "confirmation": "not_required", - "description": "获取当前员工可使用的日志模版信息,包含日志模板的名称、模板Id等", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户可用的日志模版列表", "effect": "read", "group": "template", "idempotency": "idempotent", @@ -15872,7 +14793,7 @@ "primary_cli_path": "report template list", "reviewed": true, "risk": "low", - "title": "get_available_report_templates", + "title": "获取当前用户可用的日志模版列表", "use_when": [ "提交日志前,需要先列出当前用户可用模板时" ] @@ -15892,10 +14813,7 @@ "cli_name": "list", "cli_path": "report inbox list", "confirmation": "not_required", - "description": "查询当前人收到的日志列表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出我收到的日报", "effect": "read", "group": "inbox", "idempotency": "idempotent", @@ -15909,7 +14827,7 @@ "primary_cli_path": "report inbox list", "reviewed": true, "risk": "low", - "title": "查询当前人收到的日志列表", + "title": "列出我收到的日报", "use_when": [ "需要列出别人发给当前用户的日志时" ] @@ -15929,10 +14847,7 @@ "cli_name": "get", "cli_path": "report entry get", "confirmation": "not_required", - "description": "获取指定一篇日志的详情信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "读取单份日报正文(含字段明细 + 钉钉跳转链接)", "effect": "read", "group": "entry", "idempotency": "idempotent", @@ -15946,7 +14861,7 @@ "primary_cli_path": "report entry get", "reviewed": true, "risk": "low", - "title": "get_report_entry_details", + "title": "读取单份日报正文(含字段明细 + 钉钉跳转链接)", "use_when": [ "已知 reportId,需要读取单份日志正文和钉钉跳转链接时" ] @@ -15966,10 +14881,7 @@ "cli_name": "stats", "cli_path": "report entry stats", "confirmation": "not_required", - "description": "获取日志统计数据,包括评论数量、点赞数量、已读数等", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "读取单份日报的已读统计", "effect": "read", "group": "entry", "idempotency": "idempotent", @@ -15983,7 +14895,7 @@ "primary_cli_path": "report entry stats", "reviewed": true, "risk": "low", - "title": "获取指定日志的统计数据", + "title": "读取单份日报的已读统计", "use_when": [ "已知 reportId,需要查看该日志已读统计时" ] @@ -16004,10 +14916,7 @@ "cli_name": "list", "cli_path": "report outbox list", "confirmation": "not_required", - "description": "查询当前人创建的日志详情列表,包含日志的内容、日志名称、创建时间、访问地址等信息", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出我发出的日报", "effect": "read", "group": "outbox", "idempotency": "idempotent", @@ -16021,7 +14930,7 @@ "primary_cli_path": "report outbox list", "reviewed": true, "risk": "low", - "title": "get_send_report_list", + "title": "列出我发出的日报", "use_when": [ "需要列出当前用户已发出的日志时" ] @@ -16041,10 +14950,7 @@ "cli_name": "get", "cli_path": "report template get", "confirmation": "not_required", - "description": "获取当前员工可使用的日志模版详情信息,包括日志模板Id、日志模板内字段的名称、字段类型、字段排序等", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "读取单个日志模版的字段定义", "effect": "read", "group": "template", "idempotency": "idempotent", @@ -16058,7 +14964,7 @@ "primary_cli_path": "report template get", "reviewed": true, "risk": "low", - "title": "get_template_details_by_name", + "title": "读取单个日志模版的字段定义", "use_when": [ "已知模板名称,需要读取字段定义以准备提交日志时" ] @@ -16156,10 +15062,7 @@ "cli_name": "add-dimension", "cli_path": "sheet add-dimension", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表末尾追加空行或空列。\r\n\r\n参数说明:\r\n- dimension:维度类型,ROWS 表示追加行,COLUMNS 表示追加列\r\n- length:追加数量,必须为正整数", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格的指定工作表末尾追加空行或空列。\n\n参数说明:\n --dimension 维度类型,ROWS 表示追加行,COLUMNS 表示追加列\n --length 追加数量,正整数(\u003e= 1),最多 5000", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16172,7 +15075,7 @@ "primary_cli_path": "sheet add-dimension", "reviewed": true, "risk": "medium", - "title": "追加行列", + "title": "在末尾追加空行或空列", "use_when": [ "当用户明确要求在钉钉表格的指定工作表末尾追加空行或空列,且已确认目标对象和所需参数时使用。" ] @@ -16189,10 +15092,7 @@ "cli_name": "append", "cli_path": "sheet append", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表末尾追加若干行数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 values 传入要追加的数据。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\r\n如果工作表为空,数据将从第一行开始写入。\r\n\r\nvalues 为二维数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\r\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\r\n\r\n返回追加数据所在的单元格范围(A1 表示法)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可追加。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉电子表格的指定工作表末尾追加若干行数据。\n\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\n如果工作表为空,数据将从第一行开始写入。\n\n--values 为二维 JSON 数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16205,7 +15105,7 @@ "primary_cli_path": "sheet append", "reviewed": true, "risk": "medium", - "title": "追加行", + "title": "在工作表末尾追加数据", "use_when": [ "当用户明确要求在钉钉电子表格的指定工作表末尾追加若干行数据,且已确认目标对象和所需参数时使用。" ] @@ -16221,19 +15121,16 @@ "canonical_path": "sheet.batch_update", "cli_name": "batch-update", "cli_path": "sheet batch-update", - "confirmation": "not_required", - "description": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", + "confirmation": "user_required", + "description": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n由于子操作可包含清除、删除等破坏性操作,真实执行必须获得用户确认后加 --yes。\n使用 --dry-run 可预览翻译后的完整请求,不需要 --yes,也不会调用远程接口。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md", + "effect": "destructive", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "batch_update", "primary_cli_path": "sheet batch-update", "reviewed": true, - "risk": "medium", + "risk": "high", "title": "批量执行多个写操作(原子事务)", "use_when": [ "当用户明确要求将多个写操作打包为一次原子请求执行,且已确认目标对象和所需参数时使用。" @@ -16252,14 +15149,11 @@ "cli_path": "sheet chart create", "confirmation": "not_required", "description": "在钉钉电子表格的指定工作表中创建一个浮动图表。\n\n--properties 为 JSON 格式,包含 position(锚点位置)、dimensions(尺寸)、chart(图表配置)三个必填字段,\n以及可选的 offset(偏移量)。支持 stdin heredoc 和 @file 两种传入方式。\n\nchart.type 支持: column(柱形图)、bar(条形图)、columnStacked(堆积柱形图)、barStacked(堆积条形图)、\nline(折线图)、lineStacked(堆积折线图)、area(面积图)、areaStacked(堆积面积图)、\nareaPercentStacked(百分比堆积面积图)、pie(饼图)、doughnut(环形图)、scatter(散点图)、\nradar(雷达图)。\nchart.series[].value / chart.series[].name / chart.category 使用 A1 区域表示法(如 \"A2:B10\"),\n不指定 sheet 前缀时默认使用 --sheet-id 的值。\nposition.col 使用列字母表示法(如 \"A\"、\"AA\"),不支持数字形式。\n\n创建成功后返回新图表的完整信息,包含系统分配的 chart-id。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "chart", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "chart_create", "primary_cli_path": "sheet chart create", "reviewed": true, @@ -16285,8 +15179,8 @@ "effect": "write", "group": "chart", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "chart_delete", "primary_cli_path": "sheet chart delete", "reviewed": true, @@ -16309,14 +15203,11 @@ "cli_path": "sheet chart list", "confirmation": "not_required", "description": "获取钉钉电子表格指定工作表中的浮动图表。\n\n支持两种模式:\n1. 列出全部图表:不传 --chart-id,返回该工作表中所有浮动图表的列表。\n2. 获取单个图表:传入 --chart-id,返回该图表的详细信息。\n\n返回内容包含每个图表的 ID、锚点位置、尺寸坐标以及完整图表配置(类型、数据系列、分类轴、标题、图例、坐标轴等)。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "chart", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "chart_list", "primary_cli_path": "sheet chart list", "reviewed": true, @@ -16339,14 +15230,11 @@ "cli_path": "sheet chart update", "confirmation": "not_required", "description": "更新钉钉电子表格中指定浮动图表的配置。\n\n注意:本接口采用 PUT 语义(完整覆盖),非增量更新。\n建议先通过 chart list(传入 --chart-id)获取当前配置,修改后整体传入。\n如果只需修改部分字段(如仅修改标题),仍需传入完整的 chart 配置以避免其他字段被清空。\n\n--properties 结构与 chart create 完全相同。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "chart", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "chart_update", "primary_cli_path": "sheet chart update", "reviewed": true, @@ -16367,12 +15255,9 @@ "canonical_path": "sheet.clear_range", "cli_name": "clear", "cli_path": "sheet range clear", - "confirmation": "not_required", - "description": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", + "confirmation": "user_required", + "description": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。\n\n清除类型 (--type):\n content 仅清除单元格的值,保留格式(默认)\n format 仅清除格式,保留值\n all 清除值和格式\n\n范围格式使用 A1 表示法:\n --range A1:B3 清除 A1 到 B3 的矩形区域\n --range A1 清除单个单元格\n --range A:C 清除整列范围\n\n该操作会删除内容或格式;必须先获得用户确认,再追加 --yes 执行。", + "effect": "destructive", "group": "range", "idempotency": "unknown", "interface_mode": "mcp", @@ -16384,8 +15269,8 @@ "name": "clear_range", "primary_cli_path": "sheet range clear", "reviewed": true, - "risk": "medium", - "title": "清除区域", + "risk": "high", + "title": "清除工作表指定区域", "use_when": [ "当用户明确要求清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部,且已确认目标对象和所需参数时使用。" ] @@ -16402,10 +15287,7 @@ "cli_name": "copy", "cli_path": "sheet copy", "confirmation": "not_required", - "description": "复制钉钉电子表格中的指定工作表,在同一表格中创建一个副本,可同时指定副本的目标位置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "复制指定工作表,在同一表格中创建一个副本。\n\n复制操作会将源工作表的所有内容(包括数据、格式、公式等)完整复制到新工作表中。\n\n可选参数:\n --name 指定副本名称;不传时系统自动生成(通常为\"源名称 副本\")。\n 名称与已有工作表重复时系统会自动重命名。\n --index 指定副本位置(0-based);不传时放在源工作表之后。\n 传 --index 时,CLI 会先复制,再追加一次位置更新,把副本移动到目标索引。\n\nname 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16435,10 +15317,7 @@ "cli_name": "create", "cli_path": "sheet cond-format create", "confirmation": "not_required", - "description": "在指定工作表中创建一条条件格式规则。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\r\n每条规则需要指定:应用范围(ranges)、条件类型及参数、命中时的单元格样式(cellStyle)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉电子表格的指定工作表中创建一条条件格式规则。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\n每条规则需要指定:应用范围(--ranges)、条件类型及参数(--condition)、命中时的单元格样式(--cell-style)。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--ranges 为 JSON 数组,A1 表示法,如 '[\"A1:E10\"]'。\n--condition 为 JSON 对象,包含条件类型及参数。每条规则只能选择一种条件类型。\n--cell-style 为 JSON 对象,指定条件命中时的样式。\n--data-bar-style 为 JSON 对象,仅数据条类型时使用。\n\n支持的条件类型(condition JSON 的 key,每次只能选一种):\n numberCondition 数值比较\n operator: equal/not-equal/greater/greater-equal/less/less-equal/between/not-between\n value1: 比较值(字符串,必填)\n value2: 第二比较值(字符串,仅 between/not-between 时必填)\n textCondition 文本匹配\n operator: contains/not-contains/starts-with/ends-with\n value: 匹配文本\n emptyCondition 空值判断(operator: is-empty/is-not-empty)\n errorCondition 错误值判断(operator: error/no-error)\n duplicateCondition 重复/唯一值(operator: duplicate/unique)\n formulaCondition 自定义公式(formula: \"=A1\u003e100\")\n rankCondition 排名(value: 数量, isPercent: 是否百分比, isBottom: 是否倒数)\n averageCondition 高于/低于平均值(isAbove: 是否高于, andEqual: 是否含等于)\n stdevCondition 标准差(value: 倍数, isAbove: 方向, andEqual: 是否含等于)\n dataBarCondition 数据条\n minPoint/maxPoint: { type: auto/maxmin/number/percent/percentile/formula, value: 端点值 }\n iconSetCondition 图标集\n iconSet: 数组,每项含 criteria({ type, value, gtOrEqual }) 和 icon({ type: \"id\", value: 图标ID })\n showIconOnly: 是否仅显示图标\n colorScaleCondition 色阶\n criterias: 数组(2或3项),每项含 { type: maxmin/number/percent/percentile/formula, value, color }\n\n--cell-style JSON 字段:\n backgroundColor 背景色(十六进制如 #FFCDD2)\n fontColor 字体颜色(十六进制如 #B71C1C)\n bold 是否加粗(布尔)\n italic 是否斜体(布尔)\n strikethrough 是否删除线(布尔)\n\n--data-bar-style JSON 字段(仅 dataBarCondition 时使用):\n fill 填充颜色数组 [正数颜色, 负数颜色],如 [\"#4CAF50\",\"#F44336\"]\n isGradient 是否渐变填充(布尔,默认 false)\n\n注意事项:\n - 创建后必须用 cond-format list 验证规则是否生效\n - 中文\"标红/高亮/染色\"默认指 backgroundColor,\"字体红\"才是 fontColor\n - 日期/空值公式必须防空:=AND(E1\u003c\u003e\"\", E1\u003c=TODAY()) 而非 =E1\u003c=TODAY()\n - 公式中用相对引用(如 =E1\u003c=TODAY())使公式随行变化,绝对引用只比较一个格\n - 创建前建议先 range read 读 3-5 行数据确认列对应关系", "effect": "write", "group": "cond-format", "idempotency": "unknown", @@ -16469,10 +15348,7 @@ "cli_name": "create", "cli_path": "sheet filter create", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中创建筛选。\r\n创建筛选后,工作表的指定范围将出现筛选下拉箭头,用户可通过 set_filter_criteria 设置具体的筛选条件。\r\n每个工作表只能有一个筛选,如果已存在筛选则会报错。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在工作表中创建全局筛选。\n\n每个工作表只能有一个全局筛选,已存在时会报错。\n--range 必须包含表头行(如 A1:E100),不能只包含数据行。\n--criteria 可选,不传则仅创建空筛选框架,后续可通过 filter update 设置条件。", "effect": "write", "group": "filter", "idempotency": "unknown", @@ -16486,7 +15362,7 @@ "primary_cli_path": "sheet filter create", "reviewed": true, "risk": "medium", - "title": "创建筛选", + "title": "创建全局筛选", "use_when": [ "当用户明确要求在工作表中创建全局筛选,且已确认目标对象和所需参数时使用。" ] @@ -16503,10 +15379,7 @@ "cli_name": "create", "cli_path": "sheet filter-view create", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中创建一个筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式。创建后可通过 set_filter_view_criteria 设置具体的筛选条件。\r\n同一工作表可以创建多个筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可创建。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉电子表格的指定工作表中创建一个筛选视图。\n\n用途:为指定数据区域创建一个可命名的个人化筛选视图,可选同时设置筛选条件。\n场景:用户需要针对某个数据区域建立固定的筛选视角(如\"高绩效员工\"\"研发部数据\"),方便反复查看。\n区分:\n - 与全局筛选不同,筛选视图是个人化的,不影响其他用户看到的数据。\n - 如果只需创建视图不设条件,后续可通过 update-criteria 单独设置。\n - 如果要一步到位,可通过 --criteria 在创建时直接设置筛选条件。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n同一工作表可以创建多个筛选视图。\n\n--criteria 为可选的 JSON 数组,每个元素包含 column(列偏移量,从 0 开始)和筛选条件字段。\n筛选条件支持三种类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色", "effect": "write", "group": "filter-view", "idempotency": "unknown", @@ -16537,10 +15410,7 @@ "cli_name": "create-float-image", "cli_path": "sheet create-float-image", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中插入一张浮动图片。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格的指定工作表上创建一个浮动图片。\n\n浮动图片悬浮于单元格之上,不占用单元格内容,可自由定位和调整大小。\n\n使用流程:\n 1. 先通过 media-upload 上传本地图片获取 resourceUrl\n 2. 再通过 create-float-image 将图片以浮动方式放置到工作表上\n\n--range 指定浮动图片锚定的单元格位置,使用 A1 表示法(如 A1、B3)。\n--width / --height 为必填,单位像素,必须为正整数。\n--offset-x / --offset-y 可选,表示相对锚点单元格左上角的偏移量(像素),默认 0。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16553,7 +15423,7 @@ "primary_cli_path": "sheet create-float-image", "reviewed": true, "risk": "medium", - "title": "插入浮动图片", + "title": "创建浮动图片", "use_when": [ "当用户明确要求在指定工作表上创建一个浮动图片,且已确认目标对象和所需参数时使用。" ] @@ -16571,14 +15441,11 @@ "cli_path": "sheet pivot-table create", "confirmation": "not_required", "description": "在指定数据源区域上创建原生透视表。\n\n--source 必须使用带工作表前缀的 A1 范围,例如 \"'Sheet1'!A1:D100\"。\n--properties 为 JSON 对象或 @file,values 至少一项;可包含 rows、columns、filters、collapse 和总计显示选项。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "pivot-table", "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "create_pivot_table", "primary_cli_path": "sheet pivot-table create", "reviewed": true, @@ -16600,10 +15467,7 @@ "cli_name": "new", "cli_path": "sheet new", "confirmation": "not_required", - "description": "在钉钉表格中创建一个新的工作表。\r\n通过 nodeId 定位表格文件,在该表格中新增一个工作表。\r\n当指定的工作表名称与已有名称重复时,系统会自动重命名为合法值。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定钉钉表格中新建一个工作表。\n当指定名称与已有工作表重复时,系统会自动重命名为合法值。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16633,10 +15497,7 @@ "cli_name": "create", "cli_path": "sheet create", "confirmation": "not_required", - "description": "创建一篇新的钉钉在线表格。\r\n支持创建空表格。\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一篇新的钉钉在线电子表格,支持创建空表格。\n\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -16649,7 +15510,7 @@ "primary_cli_path": "sheet create", "reviewed": true, "risk": "medium", - "title": "新建钉钉表格", + "title": "创建钉钉表格文档", "use_when": [ "当用户明确要求创建一篇新的钉钉在线电子表格,支持创建空表格,且已确认目标对象和所需参数时使用。" ] @@ -16666,7 +15527,7 @@ "cli_name": "delete", "cli_path": "sheet cond-format delete", "confirmation": "user_required", - "description": "删除指定工作表中的一条条件格式规则。", + "description": "删除钉钉电子表格中指定工作表的一条条件格式规则。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位要删除的规则。\n删除成功后该规则将从工作表中移除,被该规则影响的单元格将不再应用对应的条件格式样式。\n如果规则已不存在,操作仍然返回成功。\n\n⚠️ 危险操作:删除不可恢复。必须先向用户确认,用户同意后才加 --yes 执行。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。", "effect": "destructive", "group": "cond-format", "idempotency": "unknown", @@ -16697,10 +15558,7 @@ "cli_name": "delete-dimension", "cli_path": "sheet delete-dimension", "confirmation": "user_required", - "description": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始删除\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示从 A 列开始删除、\"AB\" 表示从 AB 列开始删除\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n删除后后续的行/列会向前移动填补空位;若需要仅清空内容但保留行/列占位,请使用 clear_range 工具。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -16730,10 +15588,7 @@ "cli_name": "delete-dropdown", "cli_path": "sheet delete-dropdown", "confirmation": "user_required", - "description": "删除钉钉表格指定单元格范围内的下拉列表配置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除钉钉表格指定单元格范围内的下拉列表配置。\n\n删除后,单元格将恢复为普通文本格式,已填写的单元格值不会被清除。\n如果目标范围不存在下拉列表,操作仍然返回成功。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -16763,10 +15618,7 @@ "cli_name": "delete", "cli_path": "sheet filter delete", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定工作表的筛选。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n删除筛选后,工作表中的筛选下拉箭头和所有筛选条件将被移除,所有被隐藏的行将重新显示。\r\n如果工作表没有筛选,调用此接口会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除工作表的全局筛选。\n\n删除后所有筛选条件丢失,所有被隐藏的行将重新显示。此操作不可恢复。\n工作表没有筛选时调用会报错。", "effect": "destructive", "group": "filter", "idempotency": "unknown", @@ -16780,7 +15632,7 @@ "primary_cli_path": "sheet filter delete", "reviewed": true, "risk": "high", - "title": "删除筛选", + "title": "删除全局筛选", "use_when": [ "当用户明确要求删除工作表的全局筛选,且已确认目标对象和所需参数时使用。" ] @@ -16797,10 +15649,7 @@ "cli_name": "delete", "cli_path": "sheet filter-view delete", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定工作表的筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n删除筛选视图后,该视图及其所有筛选条件将被永久移除。此操作不影响全局筛选或其他筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除钉钉电子表格中指定工作表的筛选视图。\n\n用途:永久删除一个不再需要的筛选视图及其所有筛选条件。\n场景:筛选视图已过时或不再需要时,清理无用的视图。\n区分:\n - delete 删除整个筛选视图(包括所有列的条件),操作不可恢复\n - delete-criteria 只删除某一列的筛选条件,视图本身保留\n - 此操作不影响全局筛选或其他筛选视图,也不影响原始数据\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "effect": "destructive", "group": "filter-view", "idempotency": "unknown", @@ -16831,10 +15680,7 @@ "cli_name": "delete-float-image", "cli_path": "sheet delete-float-image", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定的浮动图片。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除钉钉表格指定工作表中的浮动图片。\n\n操作不可恢复,删除后图片将从工作表中移除。\nfloatImageId 可通过 list-float-images 获取。", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -16868,8 +15714,8 @@ "effect": "destructive", "group": "pivot-table", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "delete_pivot_table", "primary_cli_path": "sheet pivot-table delete", "reviewed": true, @@ -16891,10 +15737,7 @@ "cli_name": "delete-sheet", "cli_path": "sheet delete-sheet", "confirmation": "user_required", - "description": "删除钉钉电子表格中的指定工作表", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除指定的工作表。此操作不可逆,删除后工作表及其所有数据将无法恢复。\n\n约束:\n - 不能删除隐藏的工作表(需先取消隐藏再删除)\n - 不能删除最后一个可见工作表(至少保留一个可见工作表)", "effect": "destructive", "idempotency": "unknown", "interface_mode": "mcp", @@ -16924,10 +15767,7 @@ "cli_name": "fill", "cli_path": "sheet range fill", "confirmation": "not_required", - "description": "基于源数据范围自动填充到目标范围。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "基于源数据范围自动填充到目标范围。\n\n目标范围须与源范围在行或列维度对齐(不支持对角填充)。\n\n填充类型 (--fill-type):\n 不传 自动检测(根据源数据智能判断:数值序列递增、日期递增、文本复制等)\n copy 复制内容和格式\n onlystyle 仅格式\n withoutstyle 仅值无格式", "effect": "write", "group": "range", "idempotency": "unknown", @@ -16941,7 +15781,7 @@ "primary_cli_path": "sheet range fill", "reviewed": true, "risk": "medium", - "title": "区域自动填充", + "title": "自动填充工作表指定区域", "use_when": [ "当用户明确要求基于源数据范围自动填充到目标范围,且已确认目标对象和所需参数时使用。" ] @@ -16958,10 +15798,7 @@ "cli_name": "clear-criteria", "cli_path": "sheet filter clear-criteria", "confirmation": "not_required", - "description": "清除钉钉电子表格中指定工作表筛选的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示(前提是其他列的条件也不隐藏该行)。\r\n此操作仅清除指定列的条件,不会删除整个筛选。如需删除整个筛选,请使用 delete_filter。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "清除筛选中某一列的筛选条件。\n\n清除后该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示。\n仅清除指定列的条件,不删除整个筛选。如需删除整个筛选,使用 filter delete。\n指定列没有设置筛选条件时调用不会报错(幂等)。", "effect": "write", "group": "filter", "idempotency": "unknown", @@ -16975,7 +15812,7 @@ "primary_cli_path": "sheet filter clear-criteria", "reviewed": true, "risk": "medium", - "title": "清除筛选条件", + "title": "清除单列筛选条件", "use_when": [ "当用户需要清除筛选中某一列的筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -16992,10 +15829,7 @@ "cli_name": "delete-criteria", "cli_path": "sheet filter-view delete-criteria", "confirmation": "user_required", - "description": "清除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:移除筛选视图中指定列的筛选条件,使该列不再参与过滤。\n场景:之前通过 update-criteria 设置了某列的筛选条件,现在需要取消该列的筛选以显示全部数据。\n区分:\n - delete-criteria 只删除指定列的条件,筛选视图本身和其他列的条件保持不变\n - filter-view delete 会删除整个筛选视图(包括所有列的条件)\n - 如果指定列没有设置筛选条件,调用此命令不会报错(幂等操作)\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。", "effect": "destructive", "group": "filter-view", "idempotency": "unknown", @@ -17009,7 +15843,7 @@ "primary_cli_path": "sheet filter-view delete-criteria", "reviewed": true, "risk": "high", - "title": "清除筛选视图列条件", + "title": "删除筛选视图列条件", "use_when": [ "当用户需要删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -17026,7 +15860,7 @@ "cli_name": "get-criteria", "cli_path": "sheet filter-view get-criteria", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取钉钉电子表格中指定筛选视图某一列的筛选条件详情。\n\n用途:查看某个筛选视图中指定列当前设置的筛选条件。\n场景:在修改某列条件前,先查看其当前配置是否符合预期。\n实现:内部调用 get_filter_views 获取视图详情,提取指定列的条件返回。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n如果该列没有设置筛选条件,返回错误提示。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "dry_run": { "preview_kind": "plan" }, @@ -17043,7 +15877,7 @@ "primary_cli_path": "sheet filter-view get-criteria", "reviewed": true, "risk": "low", - "title": "获取筛选视图", + "title": "获取单列筛选条件", "use_when": [ "当用户需要获取钉钉电子表格中指定筛选视图某一列的筛选条件详情,并能提供命令所需的查询条件时使用。" ] @@ -17060,7 +15894,7 @@ "cli_name": "info", "cli_path": "sheet filter-view info", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息。\n\n用途:查看指定筛选视图的名称、范围和筛选条件等完整信息。\n场景:在修改或删除筛选视图前,先查看其当前配置;或确认 update-criteria 后条件是否生效。\n实现:内部调用 get_filter_views 获取全部列表,按 --filter-view-id 过滤出目标视图返回。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "dry_run": { "preview_kind": "plan" }, @@ -17077,7 +15911,7 @@ "primary_cli_path": "sheet filter-view info", "reviewed": true, "risk": "low", - "title": "获取筛选视图", + "title": "获取单个筛选视图详情", "use_when": [ "当用户需要获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息,并能提供命令所需的查询条件时使用。" ] @@ -17094,7 +15928,7 @@ "cli_name": "list-criteria", "cli_path": "sheet filter-view list-criteria", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "列出钉钉电子表格中指定筛选视图的所有列筛选条件。\n\n用途:查看某个筛选视图当前已设置了哪些列的筛选条件,包括每列的条件类型和具体规则。\n场景:在管理筛选条件(修改/删除特定列条件)前,先了解当前视图设置了哪些条件。\n实现:内部调用 get_filter_views 获取视图详情,提取其中的 criteria 字段返回。\n\n如果该视图没有设置任何筛选条件,返回空对象 {}。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "dry_run": { "preview_kind": "plan" }, @@ -17111,7 +15945,7 @@ "primary_cli_path": "sheet filter-view list-criteria", "reviewed": true, "risk": "low", - "title": "获取筛选视图", + "title": "列出筛选视图所有列条件", "use_when": [ "当用户需要列出钉钉电子表格中指定筛选视图的所有列筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -17129,14 +15963,11 @@ "cli_path": "sheet filter-view update-criteria", "confirmation": "not_required", "description": "更新钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:为筛选视图的指定列创建或更新筛选条件,控制该列哪些数据行可见。\n场景:\n - 只显示某些特定值的行(如\"只看研发部\")→ 使用 filterType: values\n - 按数值条件筛选(如\"绩效 ≥ 85\")→ 使用 filterType: condition + operator: greater-equal\n - 按文本条件筛选(如\"名称包含关键字\")→ 使用 filterType: condition + operator: contains\n区分:\n - update-criteria 精确控制单列条件,适合逐列设置不同的筛选逻辑\n - filter-view update --criteria 可以批量更新多列条件,适合一次性设置多列\n - delete-criteria 是 update-criteria 的逆操作,删除指定列的条件\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n--filter-criteria 为该列的筛选条件 JSON 对象,支持三种筛选类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值(最多 2 个)\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色\n\ncondition 类型支持的 operator(必须使用 kebab-case 格式):\n equal, not-equal, contains, not-contains,\n starts-with, not-starts-with, ends-with, not-ends-with,\n greater, greater-equal, less, less-equal\n\n多条件之间通过 conditionOperator 指定逻辑关系:\"and\"(且,默认)或 \"or\"(或)。\n\n更新条件后会立即在该筛选视图中生效。筛选视图的条件仅影响当前视图,不影响全局筛选或其他筛选视图。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "filter-view", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "filter_view_update_criteria", "primary_cli_path": "sheet filter-view update-criteria", "reviewed": true, @@ -17158,10 +15989,7 @@ "cli_name": "find", "cli_path": "sheet find", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 text 指定查找内容。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n支持多种查找模式:\r\n- 默认模式:在单元格值中进行子字符串匹配(区分大小写)\r\n- 忽略大小写:通过 matchCase: false 实现\r\n- 完整单元格匹配:通过 matchEntireCell: true 实现,仅匹配内容完全相同的单元格\r\n- 正则表达式:通过 useRegExp: true 实现,text 作为正则表达式进行匹配\r\n- 搜索公式:通过 matchFormulaText: true 实现,在公式文本中查找而非计算结果\r\n- 包含隐藏单元格:通过 includeHidden: true 实现\r\n\r\n返回所有匹配单元格的地址(A1 表示法)列表。若无匹配结果,返回空数组。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可查找。不支持跨组织查询。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --query 指定查找内容(--find 为其别名)。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n支持多种查找模式:\n 默认模式 在单元格值中进行子字符串匹配(区分大小写)\n 忽略大小写 通过 --match-case=false 实现\n 完整单元格匹配 通过 --match-entire-cell 实现\n 正则表达式 通过 --use-regexp 实现,--query 作为正则表达式匹配\n 搜索公式文本 通过 --match-formula 实现,在公式文本中查找而非计算结果\n 包含隐藏单元格 通过 --include-hidden 实现\n\n可通过 --range 限定搜索范围(A1 表示法),不传时搜索整个工作表。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17174,7 +16002,7 @@ "primary_cli_path": "sheet find", "reviewed": true, "risk": "low", - "title": "查找", + "title": "在工作表中搜索单元格内容", "use_when": [ "当用户需要在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值,并能提供命令所需的查询条件时使用。" ] @@ -17191,10 +16019,7 @@ "cli_name": "list", "cli_path": "sheet list", "confirmation": "not_required", - "description": "获取钉钉电子表格中的所有工作表列表。\r\n\r\n通过 nodeId 定位电子表格文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n返回该电子表格下所有工作表的 ID 和名称,可用于后续调用 get_sheet 或 get_range 时指定目标工作表。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取钉钉电子表格中所有工作表的 ID 和名称。\n返回的 sheetId 可用于 info / range read (别名 get) / range update 等后续操作。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17207,7 +16032,7 @@ "primary_cli_path": "sheet list", "reviewed": true, "risk": "low", - "title": "获取所有工作表", + "title": "获取全部工作表列表", "use_when": [ "当用户需要获取钉钉电子表格中所有工作表的 ID 和名称,并能提供命令所需的查询条件时使用。" ] @@ -17224,10 +16049,7 @@ "cli_name": "list", "cli_path": "sheet cond-format list", "confirmation": "not_required", - "description": "获取指定工作表中的所有条件格式规则,或通过 ruleId 获取单个规则的详情。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\r\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\r\n支持的条件类型包括:数值比较、文本包含、空值/非空、错误值、重复/唯一值、自定义公式、排名、高于/低于平均值、标准差、时间段、数据条、图标集、色阶。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取钉钉电子表格中指定工作表的所有条件格式规则,或通过 --rule-id 获取单个规则的详情。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "read", "group": "cond-format", "idempotency": "idempotent", @@ -17258,10 +16080,7 @@ "cli_name": "get-dropdown", "cli_path": "sheet get-dropdown", "confirmation": "not_required", - "description": "查询钉钉表格指定范围内的下拉列表配置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询钉钉表格指定范围内的下拉列表配置。\n\n返回范围内所有单元格的下拉列表配置信息,包括选项值和颜色。\n如果范围内存在多个不同的下拉列表配置,会分别返回每组配置及其覆盖的单元格列表。\n如果范围内没有设置下拉列表,返回空。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17274,7 +16093,7 @@ "primary_cli_path": "sheet get-dropdown", "reviewed": true, "risk": "low", - "title": "获取下拉列表", + "title": "获取下拉列表配置", "use_when": [ "当用户需要查询钉钉表格指定范围内的下拉列表配置,并能提供命令所需的查询条件时使用。" ] @@ -17291,10 +16110,7 @@ "cli_name": "get", "cli_path": "sheet filter get", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的筛选信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回当前工作表的筛选范围和各列的筛选条件详情。\r\n筛选条件类型包括:\r\n- 按值筛选(filterType: values):指定允许显示的值列表\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n如果工作表未设置筛选,返回结果中筛选信息为空。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情。\n\n如果工作表未设置筛选,返回结果中筛选信息为空。\n全局筛选影响所有协作者看到的数据展示,每个工作表最多一个。", "effect": "read", "group": "filter", "idempotency": "idempotent", @@ -17308,7 +16124,7 @@ "primary_cli_path": "sheet filter get", "reviewed": true, "risk": "low", - "title": "获取筛选", + "title": "获取全局筛选信息", "use_when": [ "当用户需要获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情,并能提供命令所需的查询条件时使用。" ] @@ -17325,10 +16141,7 @@ "cli_name": "list", "cli_path": "sheet filter-view list", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\n\n用途:查看当前工作表上已创建的所有筛选视图,获取视图 ID、名称和范围信息。\n场景:在对筛选视图进行 update / delete / update-criteria 等操作前,先用 list 获取可用的 filterViewId。\n区分:筛选视图(filter-view)是个人化的数据过滤方式,与全局筛选(filter)不同。每个用户可以创建自己的筛选视图,互不影响原始数据。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n返回该工作表下所有筛选视图的 ID、名称和范围信息。如果没有筛选视图,返回空列表。", "effect": "read", "group": "filter-view", "idempotency": "idempotent", @@ -17342,7 +16155,7 @@ "primary_cli_path": "sheet filter-view list", "reviewed": true, "risk": "low", - "title": "获取筛选视图", + "title": "获取所有筛选视图", "use_when": [ "当用户需要获取钉钉电子表格中指定工作表的所有筛选视图列表,并能提供命令所需的查询条件时使用。" ] @@ -17359,10 +16172,7 @@ "cli_name": "get-float-image", "cli_path": "sheet get-float-image", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定浮动图片的详细信息。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取钉钉表格指定工作表中某个浮动图片的详细信息。\n\n返回浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息。\nfloatImageId 可通过 list-float-images 获取。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17375,7 +16185,7 @@ "primary_cli_path": "sheet get-float-image", "reviewed": true, "risk": "low", - "title": "获取单张浮动图片", + "title": "获取浮动图片详情", "use_when": [ "当用户需要获取钉钉表格指定工作表中某个浮动图片的详细信息,并能提供命令所需的查询条件时使用。" ] @@ -17392,10 +16202,7 @@ "cli_name": "csv-get", "cli_path": "sheet csv-get", "confirmation": "not_required", - "description": "以 RFC 4180 CSV 格式读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n与 get_range 的区别:\r\n- 返回 CSV 文本而非 JSON 二维数组,token 消耗约为 JSON 的 1/3\r\n- 每行前加 [row=N] 前缀标注真实表格行号,防止行号计算错误\r\n- 返回 colIndices 列字母映射数组,防止手数列号\r\n- 内置 maxChars 防爆保护,超限自动截断并设 hasMore=true\r\n- 支持 valueRenderOption 选择返回格式化展示值、原始值或公式文本", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "以 RFC 4180 CSV 格式读取钉钉电子表格数据。\n\n返回内容:\n csv 带 [row=N] 行号前缀的 CSV 文本\n colIndices 列字母映射数组(定位列用 colIndices[j],禁止手数逗号)\n rowIndices 行号映射数组\n hasMore 是否因 maxChars 截断\n\n取值模式(--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n与 range read 的区别:\n - CSV 格式 token 消耗约为 JSON 的 1/3\n - 支持选择取值模式\n - 自动防爆(max-chars 截断 + has_more 标志)\n - [row=N] 前缀防止行号计算错误\n\n注意:csv-get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17426,17 +16233,14 @@ "cli_path": "sheet group-dimension", "confirmation": "not_required", "description": "对钉钉表格指定工作表中的连续整行或整列创建分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n创建后可通过 sheet info --include groups 回读 rowGroups / columnGroups。\n\n--group-state 支持 expand / fold,默认 expand。", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "effect": "write", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "group_dimension", "primary_cli_path": "sheet group-dimension", "reviewed": true, - "risk": "low", + "risk": "medium", "title": "对指定连续行/列创建分组", "use_when": [ "当用户明确要求对钉钉表格指定工作表中的连续整行或整列创建分组,且已确认目标对象和所需参数时使用。" @@ -17455,13 +16259,10 @@ "cli_path": "sheet hide-gridline", "confirmation": "not_required", "description": "隐藏工作表网格线", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "hide_gridline", "primary_cli_path": "sheet hide-gridline", "reviewed": true, @@ -17483,10 +16284,7 @@ "cli_name": "info", "cli_path": "sheet info", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的详细信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位具体的工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回指定工作表的 ID、名称、可见性、行列数、最后非空行列位置等详细信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等。\n\n非空数据边界使用 A1/UI 语义字段:\n nonEmptyRange.range 从 A1 到最后非空单元格的 A1 范围(空表为 null)\n nonEmptyRange.lastCell 最后非空单元格地址(如 J5,空表为 null)\n nonEmptyRange.lastRow 1-based 行号(空表为 null)\n nonEmptyRange.lastColumn 列字母(空表为 null)\n\nmergedRanges 已经是 A1 表示法(如 \"A1:B2\"),可原样用于 range/merge 相关命令。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid);\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n不传 --sheet-id 时默认返回第一个工作表。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17499,7 +16297,7 @@ "primary_cli_path": "sheet info", "reviewed": true, "risk": "low", - "title": "get_sheet", + "title": "获取指定工作表详情", "use_when": [ "当用户需要获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等,并能提供命令所需的查询条件时使用。" ] @@ -17516,10 +16314,7 @@ "cli_name": "insert-dimension", "cli_path": "sheet insert-dimension", "confirmation": "not_required", - "description": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示在第 3 行之前插入\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示在 A 列之前插入、\"AB\" 表示在 AB 列之前插入\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n若需要在工作表末尾追加行/列,请使用 append 命令。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -17549,10 +16344,7 @@ "cli_name": "list-float-images", "cli_path": "sheet list-float-images", "confirmation": "not_required", - "description": "列出钉钉电子表格指定工作表中的所有浮动图片。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出钉钉表格指定工作表中所有浮动图片。\n\n返回每个浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息,以及总数。", "effect": "read", "idempotency": "idempotent", "interface_mode": "mcp", @@ -17565,7 +16357,7 @@ "primary_cli_path": "sheet list-float-images", "reviewed": true, "risk": "low", - "title": "获取所有浮动图片", + "title": "列出工作表所有浮动图片", "use_when": [ "当用户需要列出钉钉表格指定工作表中所有浮动图片,并能提供命令所需的查询条件时使用。" ] @@ -17583,14 +16375,11 @@ "cli_path": "sheet pivot-table list", "confirmation": "not_required", "description": "获取透视表列表或详情", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "pivot-table", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "list_pivot_tables", "primary_cli_path": "sheet pivot-table list", "reviewed": true, @@ -17641,10 +16430,7 @@ "cli_name": "merge-cells", "cli_path": "sheet merge-cells", "confirmation": "not_required", - "description": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nrangeAddress 也支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将优先使用前缀解析出的工作表。\n\n支持三种合并方式(通过 --merge-type 指定):\n mergeAll(默认) 合并所有单元格,将选定区域内的所有单元格合并成一个\n mergeRows 按行合并,在选定区域内将同一行相邻的单元格合并\n mergeColumns 按列合并,在选定区域内将同一列相邻的单元格合并\n\n注意:合并时只保留左上角单元格的值,其他单元格的值会被丢弃。\n如果目标区域与其他合并单元格、锁定区域或表格区域存在交集,合并将失败。\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -17674,10 +16460,7 @@ "cli_name": "move-dimension", "cli_path": "sheet move-dimension", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。\n\n参数说明:\n --dimension 维度类型,ROWS 表示移动行,COLUMNS 表示移动列\n --start-index 源起始位置,A1 表示法(ROWS 时为行号如 \"2\",COLUMNS 时为列字母如 \"B\")\n --end-index 源结束位置,A1 表示法(同 start-index 格式,必须 \u003e= start-index)\n --destination-index 目标位置,A1 表示法,源行/列移动后将出现在该位置\n\n注意事项:\n - destination-index 不能在源范围 [start-index, end-index] 内\n - 向下/向右移动时,destination-index 应大于 end-index\n - 向上/向左移动时,destination-index 应小于 start-index", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -17690,7 +16473,7 @@ "primary_cli_path": "sheet move-dimension", "reviewed": true, "risk": "medium", - "title": "移动行列", + "title": "移动行或列到指定位置/调整顺序", "use_when": [ "当用户明确要求在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置,且已确认目标对象和所需参数时使用。" ] @@ -17707,15 +16490,12 @@ "cli_name": "batch-clear", "cli_path": "sheet range batch-clear", "confirmation": "user_required", - "description": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。\n真实执行必须获得用户确认后加 --yes;--dry-run 仅预览且不调用远程接口。", "effect": "destructive", "group": "range", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "range_batch_clear", "primary_cli_path": "sheet range batch-clear", "reviewed": true, @@ -17737,24 +16517,18 @@ "cli_name": "batch-set-style", "cli_path": "sheet range batch-set-style", "confirmation": "not_required", - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "读取一份 JSON 配置,逐条调用 update_range 给不同 range 设置样式,CLI 内部顺序执行。\n\n配置格式(JSON 数组,每个元素为一个批次项):\n[\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"A1:B3\",\n \"bgColor\": \"#FFF2CC\",\n \"fontSize\": 12,\n \"hAlign\": \"center\",\n \"vAlign\": \"middle\",\n \"fontColor\": \"#333333\",\n \"fontWeight\": \"bold\",\n \"wordWrap\": \"autoWrap\",\n \"numberFormat\": \"General\"\n },\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"C1:C5\",\n \"bgColorsJson\": \"[[\\\"#FF0000\\\"],[\\\"#00FF00\\\"],[\\\"#0000FF\\\"],[\\\"#FFFF00\\\"],[\\\"#FF00FF\\\"]]\"\n }\n]\n\n每条记录执行与 set-style 一致的校验(至少一项样式字段 + rows≤1000 + rows×cols≤30000 + 枚举)。\n某条失败时默认停止后续批次;要继续执行请加 --continue-on-error。", "effect": "write", "group": "range", "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "update_range" - }, + "interface_mode": "composite", + "interface_reason": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", "metadata_source": "embedded-mcp-metadata", "name": "range_batch_set_style", "primary_cli_path": "sheet range batch-set-style", "reviewed": true, "risk": "medium", - "title": "更新表格指定区域内容", + "title": "按配置文件批量设置样式", "use_when": [ "当用户明确要求按 JSON 配置依次为多个单元格范围设置样式,且已确认目标对象和所需参数时使用。" ] @@ -17771,10 +16545,7 @@ "cli_name": "copy-to", "cli_path": "sheet range copy-to", "confirmation": "not_required", - "description": "将源范围的数据复制到目标位置。支持同 sheet 和跨 sheet 复制。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将源范围的数据复制到目标位置。支持跨工作表复制。\n\n跨工作表复制的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠", "effect": "write", "group": "range", "idempotency": "unknown", @@ -17788,7 +16559,7 @@ "primary_cli_path": "sheet range copy-to", "reviewed": true, "risk": "medium", - "title": "区域复制", + "title": "复制工作表指定区域到目标位置", "use_when": [ "当用户明确要求将源范围的数据复制到目标位置。支持跨工作表复制,且已确认目标对象和所需参数时使用。" ] @@ -17805,10 +16576,7 @@ "cli_name": "move-to", "cli_path": "sheet range move-to", "confirmation": "user_required", - "description": "将源范围的数据移动到目标位置,源区域将被清空。支持同 sheet 和跨 sheet 移动。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动。\n\n跨工作表移动的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠", "effect": "destructive", "group": "range", "idempotency": "unknown", @@ -17822,7 +16590,7 @@ "primary_cli_path": "sheet range move-to", "reviewed": true, "risk": "high", - "title": "区域移动", + "title": "移动工作表指定区域到目标位置", "use_when": [ "当用户明确要求将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动,且已确认目标对象和所需参数时使用。" ] @@ -17839,21 +16607,18 @@ "cli_name": "read", "cli_path": "sheet range read", "confirmation": "not_required", - "description": "读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 range 指定读取的单元格范围。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。不传则默认读取第一个工作表。\r\nrange 使用 A1 表示法指定单元格范围,支持带工作表前缀(如 \u003csheetId\u003e!A1:D10)。不传则默认读取该工作表的全部数据。\r\n\r\n返回指定范围内的单元格值、公式、显示值等信息。\r\n其中 values 返回公式计算后的结果值,formulas 返回原始公式,displayValues 返回界面上的显示值。\r\n所有数据均以二维数组形式返回,第一维为行,第二维为列。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", + "description": "读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息。\n\n别名: dws sheet range get 与 dws sheet range read 等价。\n\n返回内容为 cells 二维数组,每个 cell 包含:\n value 单元格值(内容由 --value-render-option 决定)\n dataValidation 数据验证配置(下拉列表/复选框),无则为 null\n hyperlink 单元格级超链接(path/sheet/range),无则省略\n\n注意:range read/get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。\n\n取值模式 (--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n范围格式使用 A1 表示法:\n --range A1:D10 读取当前工作表 A1:D10 区域\n --range \"Sheet1!A1:D10\" 读取 Sheet1 工作表的 A1:D10 区域(忽略 --sheet-id)\n 不传 --range 则默认读取整个工作表的全部非空数据\n\n超时处理建议: 读取大范围数据时若出现超时或响应过慢,请主动缩小 --range 查询范围,\n建议单次读取的单元格数量控制在 5000 个以内(例如 50 行 × 100 列、100 行 × 50 列)。\n对于大表可采用分页读取策略:先通过 info 获取 nonEmptyRange.range\n或 nonEmptyRange.lastRow / nonEmptyRange.lastColumn 确定 A1 边界;\n再按行分批读取,避免不传 --range 直接读取整个大工作表。", "effect": "read", "group": "range", "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_range" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", "metadata_source": "embedded-mcp-metadata", "name": "range_read", "primary_cli_path": "sheet range read", "reviewed": true, "risk": "low", - "title": "读取工作表数据", + "title": "读取工作表数据(别名: get)", "use_when": [ "当用户需要读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息,并能提供命令所需的查询条件时使用。" ] @@ -17870,10 +16635,7 @@ "cli_name": "set-style", "cli_path": "sheet range set-style", "confirmation": "not_required", - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "通过 update_range 透传样式字段,为指定 range 设置背景色 / 字号 / 对齐 / 字体颜色 / 字体粗细 / 换行方式 / 数字格式。\n\n每个样式维度提供两种用法,二选一:\n --xxx 单值,一键刷整个 range(由 CLI 本地展开为二维数组)\n --xxx-json 二维 JSON 数组,逐单元格指定,维度需与 --range 一致\n\n单次调用建议:行数 ≤ 1000 且行×列 ≤ 5000;服务端硬限 rows ≤ 1000 且 rows×cols ≤ 30000。\n\n数字格式(--number-format)传格式 code:\n General 常规;@ 文本;0/0.00 普通数字;#,##0/#,##0.00 千分位;0%/0.00% 百分比;yyyy/m/d 日期;h:mm/h:mm:ss 时间;0.00E+00/##0.0E+0 科学计数;货币格式如 \"¥\"#,##0.00 或 $#,##0.00。\n 商品ID、规格ID、订单号、手机号等数字形态标识符请设置 @,否则 General/默认展示可能转为科学计数法。\n传入格式 code 字符串。", "effect": "write", "group": "range", "idempotency": "unknown", @@ -17887,7 +16649,7 @@ "primary_cli_path": "sheet range set-style", "reviewed": true, "risk": "medium", - "title": "更新表格指定区域内容", + "title": "设置指定单元格区域的样式", "use_when": [ "当用户需要为指定单元格范围设置背景、字体、对齐、换行或数字格式,并能提供命令所需的查询条件时使用。" ] @@ -17904,10 +16666,7 @@ "cli_name": "update", "cli_path": "sheet range update", "confirmation": "not_required", - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新钉钉在线表格指定区域内单元格内容。\n\n--values 二维 JSON 数组,行列维度需与 --range 完全一致。每个 cell 是以下之一:\n - {} 空对象:跳过该单元格,保留原值不变\n - {type:\"text\",...} 或 {type:\"richText\",...} 对象\n\n【type=text】普通文本(可带 cellStyles)\n {\"type\":\"text\", \"text\":\"内容\"}\n {\"type\":\"text\", \"text\":\"内容\", \"cellStyles\":{\"fontWeight\":\"bold\",\"fontColor\":\"#FF0000\"}}\n - text 以 \"=\" 开头识别为公式(如 \"=SUM(B2:B4)\")\n - text 为空字符串 \"\" 表示清空该单元格\n - 写数字 / 布尔请用字符串形式(如 {\"type\":\"text\",\"text\":\"100\"}),\n 服务端按内容自动识别为数字 / 布尔\n\n【{} 跳过】保留原值不变\n 只更新部分单元格时,用 {} 占位不需要修改的位置,避免拆分成多次调用\n\n【type=richText】富文本(多子项组合:超链接 / 附件 / 图片 / 带样式片段)\n {\"type\":\"richText\", \"texts\":[...]}\n texts[].type 枚举:\n • text {\"type\":\"text\", \"text\":\"文字\", \"style\":{...}?}\n • link {\"type\":\"link\", \"text\":\"显示文字\",\"link\":\"https://...\", \"subType\":\"path\"?, \"style\":{...}?}\n • attachment {\"type\":\"attachment\", \"text\":\"文件名.pdf\",\"resourceId\":\"...\",\"mimeType\":\"application/pdf\",\"size\":12345?}\n • image {\"type\":\"image\", \"text\":\"\", \"resourceId\":\"...\",\"resourceUrl\":\"/core/api/resources/img/xxx\",\"width\":?,\"height\":?}\n resourceId / resourceUrl 通过 dws sheet media-upload 获取。\n link.subType 可为 path/sheet/range;不传默认 path。sheet/range 必须使用真实工作表名称或 A1 范围,禁止猜 Sheet1。\n\n【style 子结构】(仅 richText 的 text / link 子项支持)\n bold / italic / underline / strike: boolean\n color: 16 进制色值字符串如 \"#FF0000\"\n size: 字号正整数\n\n【cellStyles 子结构】(可选,与 type 同级,作用于整格)\n fontWeight/fontColor/fontSize/fontStyle/backgroundColor/horizontalAlignment/verticalAlignment/wordWrap/numberFormat/textUnderline/textLineThrough\n 只设样式不改值时,可传 {\"cellStyles\":{...}} 保留原值;大面积统一样式优先用 dws sheet range set-style。\n\n【hyperlink 子结构】(可选,与 type 同级,作用于整格)\n 1) 不传 hyperlink 字段 → 保留原整格超链接\n 2) {\"hyperlink\":{\"type\":\"none\"}} → 显式清除整格超链接\n 3) {\"hyperlink\":{\"type\":\"path\",\"link\":\"https://...\"}} → 写外部链接\n {\"hyperlink\":{\"type\":\"sheet\",\"link\":\"Sheet2\"}} → 写工作表链接\n {\"hyperlink\":{\"type\":\"range\",\"link\":\"Sheet2!A1\"}} → 写区域链接\n\n【dataValidation 子结构】(可选,与 type 同级)三种语义:\n 1) 不传 dataValidation 字段 → 保留原 DV\n 2) {\"dataValidation\":{\"type\":\"none\"}} → 显式清除该单元格 DV\n 3) {\"dataValidation\":{\"type\":\"dropdown\",...}} → 写新 dropdown(覆盖)\n {\"dataValidation\":{\"type\":\"checkbox\",...}} → 写新 checkbox(覆盖)\n dropdown: {\"dataValidation\":{\"type\":\"dropdown\",\"options\":[{\"value\":\"选项1\"}],\"enableMultiSelect\":false}}\n checkbox: {\"dataValidation\":{\"type\":\"checkbox\",\"checked\":true}}\n 可与 text/richText 共存,也可单独使用(如 {dataValidation:{type:\"none\"}} 仅清除 DV 不写值)\n\n注意:\n - 仅支持 text / richText 两种 type;number / boolean / null 等不再支持\n - type=text 顶层旧 style 字段不要作为新写法使用;整格样式用 cellStyles,片段样式用 richText 子项 style\n - 单元格级超链接写在 cell.hyperlink;richText link 仅表示富文本片段链接\n - 写图片到单元格建议直接用 dws sheet write-image(更简洁)\n - 只设样式或批量刷整片区域样式请用 dws sheet range set-style;写值同时设置少量 cell 样式可用 cellStyles\n - 目标范围与已有合并区域冲突时,range update 会返回 MERGED_CELLS_CONFLICT;先用 sheet info 查看 mergedRanges,取消合并后写入,必要时再重新合并\n - csv-put 的合并处理不同:目标区域含合并单元格时会打散合并并写入纯值\n - 清空整片区域请用 dws sheet range clear", "effect": "write", "group": "range", "idempotency": "unknown", @@ -17921,7 +16680,7 @@ "primary_cli_path": "sheet range update", "reviewed": true, "risk": "medium", - "title": "更新表格指定区域内容", + "title": "更新工作表指定区域内容", "use_when": [ "当用户需要更新钉钉在线电子表格指定区域内的单元格内容,并能提供命令所需的查询条件时使用。" ] @@ -17938,10 +16697,7 @@ "cli_name": "replace", "cli_path": "sheet replace", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\r\n\r\n支持以下替换选项:\r\n- matchCase:是否区分大小写(默认 false)\r\n- matchEntireCell:是否完整单元格匹配(默认 false)\r\n- useRegExp:是否使用正则表达式(默认 false)\r\n- includeHidden:是否包含隐藏行/列(默认 false)\r\n- range:限定替换范围,使用 A1 表示法(如 A1:D100),不传时在整个工作表中替换\r\n\r\n返回被替换的单元格数量。\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\n\n支持以下替换选项:\n --match-case 区分大小写(默认 false)\n --match-entire-cell 完整单元格匹配(默认 false)\n --use-regexp 使用正则表达式匹配(默认 false)\n --include-hidden 包含隐藏行/列(默认 false)\n --range 限定替换范围,A1 表示法(不传时在整个工作表中替换)\n\n返回被替换的单元格数量。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -17954,7 +16710,7 @@ "primary_cli_path": "sheet replace", "reviewed": true, "risk": "medium", - "title": "全局查找替换", + "title": "查找替换/批量替换/精确匹配替换/正则替换文本", "use_when": [ "当用户明确要求在钉钉表格的指定工作表中,全局查找并替换文本内容,且已确认目标对象和所需参数时使用。" ] @@ -17971,10 +16727,7 @@ "cli_name": "set-dropdown", "cli_path": "sheet set-dropdown", "confirmation": "not_required", - "description": "在钉钉表格的指定单元格范围内设置下拉列表。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在钉钉表格的指定单元格范围内设置下拉列表。\n\n设置后,用户可以在这些单元格中从预定义的选项列表中选择值。\n支持自定义每个选项的颜色和是否允许多选。\n如果目标范围已存在下拉列表,会被新的配置覆盖。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--options 为 JSON 数组,每个元素包含 value(必填)和 color(可选)。\n选项值不能包含英文逗号。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18004,10 +16757,7 @@ "cli_name": "csv-put", "cli_path": "sheet csv-put", "confirmation": "not_required", - "description": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\r\n\r\n只写纯值,不支持公式/样式/批注。=开头的内容当作文本处理,不会被解析为公式。\r\n自动扩容行列:当 CSV 数据超出当前工作表维度时,自动追加行/列。\r\n目标区域如含合并单元格,合并将被打散,值正常写入。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\n只写纯值,不支持公式/样式/批注。=开头当文本处理。自动扩容行列。\n目标区域如含合并单元格,csv-put 会打散合并并覆盖所有单元格;这不同于\nrange update 与合并区域冲突时返回 MERGED_CELLS_CONFLICT 的行为。\n\n--csv 支持三种输入:直接传文本、@filepath 从文件读取、- 从 stdin 读取。\n--allow-overwrite 默认 false,目标区域有数据时需显式传 --allow-overwrite 才能覆盖。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18020,7 +16770,7 @@ "primary_cli_path": "sheet csv-put", "reviewed": true, "risk": "medium", - "title": "写入 CSV 数据到指定区域", + "title": "将 CSV 数据写入表格指定位置(纯值,自动扩容)", "use_when": [ "当用户明确要求将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置,且已确认目标对象和所需参数时使用。" ] @@ -18038,13 +16788,10 @@ "cli_path": "sheet show-gridline", "confirmation": "not_required", "description": "显示工作表网格线", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "show_gridline", "primary_cli_path": "sheet show-gridline", "reviewed": true, @@ -18066,13 +16813,10 @@ "cli_name": "sort", "cli_path": "sheet filter sort", "confirmation": "not_required", - "description": "对钉钉电子表格中指定工作表的筛选范围内的数据进行排序。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n排序基于筛选范围内的指定列,支持升序和降序。\r\n排序会实际改变工作表中数据行的物理顺序。\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "description": "对筛选范围内的数据按指定列排序。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n排序会实际改变工作表中数据行的物理顺序,不可撤销。", + "effect": "write", "group": "filter", - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "sheet", @@ -18082,7 +16826,7 @@ "name": "sort_filter", "primary_cli_path": "sheet filter sort", "reviewed": true, - "risk": "low", + "risk": "medium", "title": "筛选排序", "use_when": [ "当用户明确要求对筛选范围内的数据按指定列排序,且已确认目标对象和所需参数时使用。" @@ -18100,10 +16844,7 @@ "cli_name": "sort", "cli_path": "sheet range sort", "confirmation": "not_required", - "description": "对钉钉电子表格中指定工作表指定范围的数据进行排序。支持多级排序(按 sortKeys 数组顺序优先级递减)。column 使用字母列名(如 \"A\"、\"B\"、\"AA\")。如果数据首行为表头,可设置跳过首行不参与排序。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "对钉钉电子表格中指定工作表指定范围的数据进行排序。\n\n支持多级排序(按 --sort-keys 数组顺序优先级递减)。\ncolumn 使用字母列名(如 \"A\"、\"B\"、\"AA\"),表示排序的目标列。\n\n注意:排序前必须先 range read 排序范围的前 3-5 行,对比首行与后续行模式判断表头:\n - 首行全文本 + 后续行含数字/日期 → 加 --has-header\n - 首行与后续行模式一致 → 不加\n - 首行语义像列标题且与后续行明显不同 → 加 --has-header\n 表头误排入数据不可撤销,禁止不读就排。", "effect": "write", "group": "range", "idempotency": "unknown", @@ -18117,7 +16858,7 @@ "primary_cli_path": "sheet range sort", "reviewed": true, "risk": "medium", - "title": "区域排序", + "title": "对工作表指定区域排序", "use_when": [ "当用户明确要求对钉钉电子表格中指定工作表指定范围的数据进行排序,且已确认目标对象和所需参数时使用。" ] @@ -18134,7 +16875,7 @@ "cli_name": "export", "cli_path": "sheet export", "confirmation": "not_required", - "description": "用于将钉钉在线表格导出为 xlsx。导出为异步操作,提交后需使用 query_export_job 轮询任务状态并获取下载链接。", + "description": "将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式)。\n\n执行流程(全程自动,无需 Agent 介入轮询):\n 1. 提交导出任务(submit_export_job),获取 jobId\n 2. 按渐进式退避策略轮询任务状态(query_export_job)\n 第 1~5 次:每次 2 秒\n 第 6~10 次:每次 5 秒\n 第 11~20 次:每次 10 秒\n 第 21~30 次:每次 15 秒\n 硬上限 30 次(约 5 分钟),超时后返回错误\n 3. 任务成功后取得 downloadUrl\n 4. 若指定了 --output,将 xlsx 下载到本地文件;否则直接输出 downloadUrl\n\n参数说明:\n --node 表格文档 ID 或链接 URL,系统自动识别(必填)\n --output 本地保存路径(可选)。可为文件路径或目录:\n - 文件路径:如 ./a.xlsx,直接按此路径保存\n - 目录路径:如 ./,自动从下载链接推断文件名\n - 未指定:仅返回 downloadUrl,链接有时效性请尽快下载\n\n支持范围:\n 仅支持钉钉在线电子表格(axls)→ xlsx;\n 若需导出钉钉文字文档,请使用 dingtalkdoc 侧的导出工具。\n\n权限要求:\n 当前用户对目标表格具备可查看/下载权限。", "dry_run": { "preview_kind": "plan" }, @@ -18150,7 +16891,7 @@ "primary_cli_path": "sheet export", "reviewed": true, "risk": "low", - "title": "导出钉钉表格", + "title": "导出表格为 xlsx(异步任务一站式)", "use_when": [ "当用户明确要求将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式),且已确认目标对象和所需参数时使用。" ] @@ -18171,13 +16912,10 @@ "cli_path": "sheet table-get", "confirmation": "not_required", "description": "读取结构化 table 数据。\n\n返回列名、行数据、pandas-style dtypes 和表格 number formats。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "table_get", "primary_cli_path": "sheet table-get", "reviewed": true, @@ -18203,13 +16941,10 @@ "cli_path": "sheet table-put", "confirmation": "not_required", "description": "写入结构化 table 数据。\n\n支持一次写入一个或多个 sheet;目标 sheet 存在时写入,传 name 且不存在时会创建 sheet。\n\n--sheets 支持三种输入:\n JSON 数组 [{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]\n JSON 对象 {\"sheets\":[{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]}\n 单个 sheet spec JSON 对象 {\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}\n\n--sheets 可传 @filepath 从文件读取,或传 - 从 stdin 读取。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "table_put", "primary_cli_path": "sheet table-put", "reviewed": true, @@ -18232,14 +16967,11 @@ "cli_path": "sheet template apply", "confirmation": "not_required", "description": "使用指定模板创建新表格文档。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "template", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_apply", "primary_cli_path": "sheet template apply", "reviewed": true, @@ -18262,14 +16994,11 @@ "cli_path": "sheet template list", "confirmation": "not_required", "description": "获取当前用户可用的表格模板列表,支持按来源筛选。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "template", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_list", "primary_cli_path": "sheet template list", "reviewed": true, @@ -18292,14 +17021,11 @@ "cli_path": "sheet template search", "confirmation": "not_required", "description": "根据关键词搜索表格模板。", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "group": "template", "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "template_search", "primary_cli_path": "sheet template search", "reviewed": true, @@ -18322,17 +17048,14 @@ "cli_path": "sheet ungroup-dimension", "confirmation": "not_required", "description": "取消钉钉表格指定工作表中的连续整行或整列分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n取消后可通过 sheet info --include groups 回读 rowGroups / columnGroups。", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "effect": "write", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "ungroup_dimension", "primary_cli_path": "sheet ungroup-dimension", "reviewed": true, - "risk": "low", + "risk": "medium", "title": "取消指定连续行/列分组", "use_when": [ "当用户明确要求取消钉钉表格指定工作表中的连续整行或整列分组,且已确认目标对象和所需参数时使用。" @@ -18350,10 +17073,7 @@ "cli_name": "unmerge-cells", "cli_path": "sheet unmerge-cells", "confirmation": "not_required", - "description": "取消钉钉表格指定工作表中指定范围内的合并单元格。\r\n\r\n通过 rangeAddress 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\r\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "取消钉钉表格指定工作表中指定范围内的合并单元格。\n\n通过 --range 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18383,10 +17103,7 @@ "cli_name": "update", "cli_path": "sheet cond-format update", "confirmation": "not_required", - "description": "更新指定工作表中的一条条件格式规则。未传入的字段将保持原有值不变。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新钉钉电子表格中指定工作表的一条条件格式规则。\n\n可以部分更新以下字段:\n- --ranges:修改规则的应用范围\n- --condition:切换或修改条件类型及参数\n- --cell-style:修改命中时的单元格样式\n- --data-bar-style:修改数据条样式\n\n未传入的字段将保持原有值不变。\n传入 --condition 时,新条件类型将替换原有条件类型。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位条件格式规则。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。", "effect": "write", "group": "cond-format", "idempotency": "unknown", @@ -18417,10 +17134,7 @@ "cli_name": "update-dimension", "cli_path": "sheet update-dimension", "confirmation": "not_required", - "description": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。\n\n起始位置 startIndex 使用 A1 表示法:\n --dimension ROWS 时,--start-index 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始\n --dimension COLUMNS 时,--start-index 为列字母,如 \"A\" 表示从 A 列开始、\"AB\" 表示从 AB 列开始\n\n支持在 --start-index 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n--hidden 与 --pixel-size 至少必须提供一个。当同时提供时,将先应用尺寸再应用显隐,任一失败整体失败。\n--pixel-size 单位为像素,dimension=ROWS 时表示行高、dimension=COLUMNS 时表示列宽。\n\n常见场景:隐藏/显示指定连续行或列、批量调整行高/列宽、在同一次调用中同时修改尺寸与显隐。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18433,7 +17147,7 @@ "primary_cli_path": "sheet update-dimension", "reviewed": true, "risk": "medium", - "title": "更新行列属性", + "title": "更新指定范围行/列属性(显隐、行高/列宽)", "use_when": [ "当用户明确要求批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize),且已确认目标对象和所需参数时使用。" ] @@ -18450,10 +17164,7 @@ "cli_name": "update", "cli_path": "sheet filter update", "confirmation": "not_required", - "description": "批量更新钉钉电子表格中指定工作表的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n可同时更新多列的筛选条件,支持三种筛选类型:\r\n- 按值筛选(filterType: values):指定允许显示的值列表,未在列表中的值将被隐藏\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n此接口会替换指定列的现有筛选条件,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "批量更新筛选条件,可同时设置多列的筛选条件。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n覆盖式:指定列的条件会被替换,未指定的列保持不变。\n\n--criteria JSON 数组,每个元素含 column(列偏移量,从 0 开始)和筛选条件字段。\n支持三种 filterType:\n - values:按值筛选,指定 visibleValues 数组\n - condition:按条件筛选,指定 conditions 数组(最多 2 个)和可选的 conditionOperator\n - color:按颜色筛选,指定 backgroundColor 或 fontColor(二选一)", "effect": "write", "group": "filter", "idempotency": "unknown", @@ -18467,7 +17178,7 @@ "primary_cli_path": "sheet filter update", "reviewed": true, "risk": "medium", - "title": "更新筛选", + "title": "批量更新筛选条件", "use_when": [ "当用户明确要求批量更新筛选条件,可同时设置多列的筛选条件,且已确认目标对象和所需参数时使用。" ] @@ -18484,10 +17195,7 @@ "cli_name": "update", "cli_path": "sheet filter-view update", "confirmation": "not_required", - "description": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n可更新筛选视图的名称、范围和筛选条件,至少需要传入一个更新字段。\r\n通过 criteria 参数可直接批量更新多列的筛选条件,指定列的条件会被替换,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\n\n用途:修改已有筛选视图的名称、数据范围或筛选条件。\n场景:\n - 数据区域扩展后需要扩大筛选视图范围(如从 A1:D10 扩到 A1:D100)\n - 重命名筛选视图以更好描述其用途\n - 通过 --criteria 一次性批量更新多列的筛选条件\n区分:\n - update 可同时修改名称、范围和条件,适合批量更新\n - update-criteria 只能设置单列条件,适合精确控制某一列的筛选逻辑\n - update --criteria 会替换指定列的条件,未指定的列保持不变\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n至少需要传入一个更新字段(--name / --range / --criteria)。", "effect": "write", "group": "filter-view", "idempotency": "unknown", @@ -18501,7 +17209,7 @@ "primary_cli_path": "sheet filter-view update", "reviewed": true, "risk": "medium", - "title": "更新筛选视图", + "title": "更新筛选视图属性", "use_when": [ "当用户明确要求更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件),且已确认目标对象和所需参数时使用。" ] @@ -18518,10 +17226,7 @@ "cli_name": "update-float-image", "cli_path": "sheet update-float-image", "confirmation": "not_required", - "description": "更新钉钉电子表格中指定浮动图片的属性。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新钉钉表格指定工作表中浮动图片的属性。\n\n可更新的属性包括:图片资源路径(src)、锚点位置、尺寸、偏移量。\n至少需要传入一个更新字段(--src / --range / --width / --height / --offset-x / --offset-y)。\nfloatImageId 可通过 list-float-images 获取。", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18534,7 +17239,7 @@ "primary_cli_path": "sheet update-float-image", "reviewed": true, "risk": "medium", - "title": "更新浮动图片", + "title": "更新浮动图片属性", "use_when": [ "当用户明确要求更新指定工作表中浮动图片的位置、尺寸或图片来源,且已确认目标对象和所需参数时使用。" ] @@ -18552,14 +17257,11 @@ "cli_path": "sheet pivot-table update", "confirmation": "not_required", "description": "更新透视表配置", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "pivot-table", "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "name": "update_pivot_table", "primary_cli_path": "sheet pivot-table update", "reviewed": true, @@ -18581,10 +17283,7 @@ "cli_name": "update", "cli_path": "sheet update", "confirmation": "not_required", - "description": "更新钉钉电子表格中指定工作表的属性,包括名称、位置、可见性、冻结行列等。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新工作表名称、位置、隐藏状态、冻结行列、标签颜色。\n\n--name / --index / --hidden / --frozen-row-count / --frozen-column-count / --tab-color 至少提供一个;\n多个属性可同时传入,将在同一次请求中更新。\n\n注意:\n - name 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符\n - 至少需要保留一个可见的工作表,不能将所有工作表都隐藏\n - 冻结行数/列数不能超过工作表的总行数/总列数,设为 0 表示取消冻结\n - tab-color 为 Hex 格式如 #FF0000,传空字符串清除颜色", "effect": "write", "idempotency": "unknown", "interface_mode": "mcp", @@ -18614,7 +17313,7 @@ "cli_name": "write-image", "cli_path": "sheet write-image", "confirmation": "not_required", - "description": "在钉钉表格的指定单元格中插入图片。\r\n\r\n通过 nodeId 定位表格文件,通过 sheetId 和 rangeAddress 定位目标单元格区域,\r\n将图片资源写入到指定位置。图片资源需要先获取 resourceId 和 resourceUrl。\r\n\r\n使用流程:\r\n1. 先获取上传凭证(uploadUrl、resourceId、resourceUrl)\r\n2. 使用 HTTP PUT 请求将图片文件上传到 uploadUrl\r\n3. 调用本接口,传入 resourceId 和 resourceUrl,在指定单元格中插入图片", + "description": "将本地图片上传并写入到钉钉表格的指定单元格(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传图片到 OSS\n 3. 调用 write_image 将图片写入指定单元格\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。\n--width / --height 可选,设置图片在单元格中的显示尺寸。", "dry_run": { "preview_kind": "plan" }, @@ -18630,7 +17329,7 @@ "primary_cli_path": "sheet write-image", "reviewed": true, "risk": "medium", - "title": "单元格写入图片", + "title": "上传图片并写入表格单元格", "use_when": [ "当用户明确要求将本地图片上传并写入指定工作表的单元格,且已确认目标对象和所需参数时使用。" ] @@ -18727,9 +17426,6 @@ "cli_path": "todo task add-executor", "confirmation": "not_required", "description": "添加待办执行人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "task", "idempotency": "unknown", @@ -18743,7 +17439,7 @@ "primary_cli_path": "todo task add-executor", "reviewed": true, "risk": "medium", - "title": "add_task_executors", + "title": "添加待办执行人", "use_when": [ "需要添加待办执行人时" ] @@ -18761,9 +17457,6 @@ "cli_path": "todo task add-participant", "confirmation": "not_required", "description": "添加待办参与人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "task", "idempotency": "unknown", @@ -18777,7 +17470,7 @@ "primary_cli_path": "todo task add-participant", "reviewed": true, "risk": "medium", - "title": "add_task_participants", + "title": "添加待办参与人", "use_when": [ "需要添加待办参与人时" ] @@ -18794,7 +17487,7 @@ "cli_name": "add-attachment", "cli_path": "todo task add-attachment", "confirmation": "not_required", - "description": "添加待办任务附件", + "description": "上传待办附件\n⚠️ 重要:该接口会上传文件到附件,不可用于测试或试探性调用。调用前必须确认待办存在。", "dry_run": { "preview_kind": "plan" }, @@ -18811,7 +17504,7 @@ "primary_cli_path": "todo task add-attachment", "reviewed": true, "risk": "medium", - "title": "添加待办任务附件", + "title": "上传待办附件", "use_when": [ "需要上传待办附件时" ] @@ -18828,10 +17521,7 @@ "cli_name": "add", "cli_path": "todo comment add", "confirmation": "not_required", - "description": "给待办添加评论", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "新增待办评论", "effect": "write", "group": "comment", "idempotency": "unknown", @@ -18845,7 +17535,7 @@ "primary_cli_path": "todo comment add", "reviewed": true, "risk": "medium", - "title": "add_todo_comment", + "title": "新增待办评论", "use_when": [ "需要新增待办评论时" ] @@ -18863,9 +17553,6 @@ "cli_path": "todo task add-reminder", "confirmation": "not_required", "description": "添加待办提醒", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "task", "idempotency": "unknown", @@ -18879,7 +17566,7 @@ "primary_cli_path": "todo task add-reminder", "reviewed": true, "risk": "medium", - "title": "add_todo_reminder", + "title": "添加待办提醒", "use_when": [ "需要为待办添加提醒时" ] @@ -18896,10 +17583,7 @@ "cli_name": "create-sub", "cli_path": "todo task create-sub", "confirmation": "not_required", - "description": "在当前企业组织内创建一条个人待办的子待办事项(要求父待办必须是操作者本人创建),支持设置标题、执行人列表、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。子待办不支持设置单独的循环规则(遵循父待办的循环规则)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建子待办", "effect": "write", "group": "task", "idempotency": "unknown", @@ -18913,7 +17597,7 @@ "primary_cli_path": "todo task create-sub", "reviewed": true, "risk": "medium", - "title": "create_personal_sub_todo", + "title": "创建子待办", "use_when": [ "需要创建子待办时" ] @@ -18930,10 +17614,7 @@ "cli_name": "create", "cli_path": "todo task create", "confirmation": "not_required", - "description": "在当前企业组织内创建一条个人待办事项,支持设置标题、执行人列表(UserId)、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建待办", "effect": "write", "group": "task", "idempotency": "unknown", @@ -18947,7 +17628,7 @@ "primary_cli_path": "todo task create", "reviewed": true, "risk": "medium", - "title": "创建个人待办", + "title": "创建待办", "use_when": [ "需要创建待办时" ] @@ -18964,7 +17645,7 @@ "cli_name": "delete", "cli_path": "todo task delete", "confirmation": "user_required", - "description": "删除待办(所有执行者都删除)", + "description": "删除待办", "effect": "destructive", "group": "task", "idempotency": "unknown", @@ -18978,7 +17659,7 @@ "primary_cli_path": "todo task delete", "reviewed": true, "risk": "high", - "title": "delete_todo", + "title": "删除待办", "use_when": [ "用户明确要求删除待办时" ] @@ -18995,7 +17676,7 @@ "cli_name": "delete", "cli_path": "todo comment delete", "confirmation": "user_required", - "description": "删除待办的评论", + "description": "删除待办评论", "effect": "destructive", "group": "comment", "idempotency": "unknown", @@ -19009,7 +17690,7 @@ "primary_cli_path": "todo comment delete", "reviewed": true, "risk": "high", - "title": "delete_todo_comment", + "title": "删除待办评论", "use_when": [ "用户明确要求删除待办评论时" ] @@ -19026,7 +17707,7 @@ "cli_name": "get", "cli_path": "todo task get", "confirmation": "not_required", - "description": "查询待办详情,用户必须是待办的创建者或者执行者才有权限查看。", + "description": "待办详情", "effect": "read", "group": "task", "idempotency": "idempotent", @@ -19040,7 +17721,7 @@ "primary_cli_path": "todo task get", "reviewed": true, "risk": "low", - "title": "带鉴权的查询待办详情", + "title": "待办详情", "use_when": [ "已知 taskId,需要查看单个待办详情时" ] @@ -19057,10 +17738,7 @@ "cli_name": "list", "cli_path": "todo task list", "confirmation": "not_required", - "description": "获取当前用户在所属组织中的个人待办事项列表,返回每项待办的标题、截止日期、优先级(如高/中/低)、完成状态。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询待办列表", "effect": "read", "group": "task", "idempotency": "idempotent", @@ -19074,7 +17752,7 @@ "primary_cli_path": "todo task list", "reviewed": true, "risk": "low", - "title": "get_user_todos_in_current_org", + "title": "查询待办列表", "use_when": [ "需要按状态、优先级、角色或截止日期查询待办列表时" ] @@ -19091,10 +17769,7 @@ "cli_name": "list", "cli_path": "todo comment list", "confirmation": "not_required", - "description": "获取待办的评论", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询待办评论列表", "effect": "read", "group": "comment", "idempotency": "idempotent", @@ -19108,7 +17783,7 @@ "primary_cli_path": "todo comment list", "reviewed": true, "risk": "low", - "title": "list_todo_comment", + "title": "查询待办评论列表", "use_when": [ "需要查询待办评论列表时" ] @@ -19126,9 +17801,6 @@ "cli_path": "todo task remove-executor", "confirmation": "user_required", "description": "移除待办执行人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "group": "task", "idempotency": "unknown", @@ -19142,7 +17814,7 @@ "primary_cli_path": "todo task remove-executor", "reviewed": true, "risk": "high", - "title": "remove_task_executors", + "title": "移除待办执行人", "use_when": [ "用户明确要求移除待办执行人时" ] @@ -19160,9 +17832,6 @@ "cli_path": "todo task remove-participant", "confirmation": "user_required", "description": "移除待办参与人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "group": "task", "idempotency": "unknown", @@ -19176,7 +17845,7 @@ "primary_cli_path": "todo task remove-participant", "reviewed": true, "risk": "high", - "title": "remove_task_participants", + "title": "移除待办参与人", "use_when": [ "用户明确要求移除待办参与人时" ] @@ -19194,9 +17863,6 @@ "cli_path": "todo task reset-reminder", "confirmation": "not_required", "description": "重置待办提醒", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "task", "idempotency": "unknown", @@ -19210,7 +17876,7 @@ "primary_cli_path": "todo task reset-reminder", "reviewed": true, "risk": "medium", - "title": "reset_todo_reminder", + "title": "重置待办提醒", "use_when": [ "需要重置待办提醒规则时" ] @@ -19228,9 +17894,6 @@ "cli_path": "todo task done", "confirmation": "not_required", "description": "修改执行者的待办完成状态", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "group": "task", "idempotency": "unknown", @@ -19261,10 +17924,7 @@ "cli_name": "update", "cli_path": "todo task update", "confirmation": "not_required", - "description": "修改整个待办任务", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "修改待办任务", "effect": "write", "group": "task", "idempotency": "unknown", @@ -19278,7 +17938,7 @@ "primary_cli_path": "todo task update", "reviewed": true, "risk": "medium", - "title": "修改整个待办任务", + "title": "修改待办任务", "use_when": [ "需要修改待办任务时" ] @@ -19372,10 +18032,7 @@ "cli_name": "add", "cli_path": "wiki member add", "confirmation": "not_required", - "description": "为知识库添加指定角色的成员。\r\n\r\n支持添加用户(USER)成员类型。\r\n添加成功后,被授权的成员即可按指定角色访问该知识库下的所有内容。\r\n\r\n适用场景:\r\n- 新员工入职,需要授予知识库访问权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\r\n- 单次请求最多传 30 个成员,超出需分批调用。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "为指定知识库添加一个或多个成员,并授予指定角色。\n\n通过 --users 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n支持通过 --workspace 传入知识库 ID 或知识库 URL,系统自动识别。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "effect": "write", "group": "member", "idempotency": "unknown", @@ -19406,10 +18063,7 @@ "cli_name": "create", "cli_path": "wiki node create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定知识库中创建文档、文件夹或其他类型的节点。\n\n通过 --type 指定节点类型(服务端支持以下值,asheet 不被支持):\n adoc 在线文档 (默认)\n axls 在线电子表格\n able 多维表\n appt 在线演示\n adraw 白板/画板\n amind 脑图\n folder 文件夹\n\n通过 --folder 指定父节点,不传则创建在知识库根目录。", "effect": "write", "group": "node", "idempotency": "unknown", @@ -19423,7 +18077,7 @@ "primary_cli_path": "wiki node create", "reviewed": true, "risk": "medium", - "title": "创建节点", + "title": "在知识库中创建节点", "use_when": [ "需要在指定知识库中创建文档、文件夹或其他类型的节点时" ] @@ -19440,10 +18094,7 @@ "cli_name": "create", "cli_path": "wiki space create", "confirmation": "not_required", - "description": "创建一个新的钉钉文档知识库(WikiSpace)。\r\n知识库是组织内文档的核心容器,可在其中创建文档、文件夹等内容。\r\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档(create_document)或遍历文件(list_nodes)。\r\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "创建一个新的钉钉文档知识库(WikiSpace)。\n\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档或遍历文件。\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。", "effect": "write", "group": "space", "idempotency": "unknown", @@ -19474,7 +18125,7 @@ "cli_name": "delete", "cli_path": "wiki node delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将知识库中的节点移入回收站。\n\n注意: 这是一个危险操作。执行前需要确认,或传入 --yes 跳过确认。\n删除后节点会进入回收站,有保留期限可恢复。\n\n权限要求: 对节点有\"管理\"权限。", "effect": "destructive", "group": "node", "idempotency": "unknown", @@ -19488,7 +18139,7 @@ "primary_cli_path": "wiki node delete", "reviewed": true, "risk": "high", - "title": "删除节点", + "title": "删除知识库节点", "use_when": [ "需要将知识库中的节点移入回收站时" ] @@ -19505,7 +18156,7 @@ "cli_name": "delete", "cli_path": "wiki space delete", "confirmation": "user_required", - "description": "将指定知识库移入回收站。\r\n\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n删除后知识库会进入回收站,可在回收站中恢复。\r\n\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\r\nworkspaceId 为字母数字字符串。\r\n\r\n注意事项:\r\n- **权限要求**:操作者必须具备知识库的「所有者(OWNER)」角色。\r\n- 删除操作不可逆(从回收站恢复除外),请确认后再执行。\r\n- 不支持跨组织删除。", + "description": "将指定知识库移入回收站。\n\n删除后知识库会进入回收站,可在回收站中恢复(有保留期限)。\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\n\n注意:\n- 操作者必须具备知识库的 OWNER 角色。\n- 这是一个危险操作,执行前请确认。", "effect": "destructive", "group": "space", "idempotency": "unknown", @@ -19536,10 +18187,7 @@ "cli_name": "get", "cli_path": "wiki space get", "confirmation": "not_required", - "description": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overviewworkspaceId 为字母数字字符串。\r\n仅限用户对该知识库具备\"可阅读\"权限时可获取。不支持跨组织查询。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\n\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview", "effect": "read", "group": "space", "idempotency": "idempotent", @@ -19553,7 +18201,7 @@ "primary_cli_path": "wiki space get", "reviewed": true, "risk": "low", - "title": "获取知识库", + "title": "查看知识库详情", "use_when": [ "已知 workspace,需要查看知识库详情时" ] @@ -19570,10 +18218,7 @@ "cli_name": "list", "cli_path": "wiki member list", "confirmation": "not_required", - "description": "查询知识库当前的成员权限列表,支持按角色过滤。\r\n\r\n适用场景:\r\n- 获取知识库成员角色列表。\r\n\r\n每条记录包含成员的类型、名称及其角色信息。\r\n\r\n注意:\r\n- 底层接口一次性返回全量成员,不支持服务端游标分页。\r\n- 出参中包含 totalCount(全量成员总数)和 truncated(是否被截断)。当 truncated=true 时,说明知识库实际成员数超过 maxResults,建议通过 filterRoleIds 收窄查询范围;若仍超出 maxResults 上限,请引导用户去前端管理界面查看完整列表。\r\n- ORG 类型授权不会出现在查询结果中。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "查询指定知识库的成员列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围;\nORG 类型授权不会出现在查询结果中。", "effect": "read", "group": "member", "idempotency": "idempotent", @@ -19604,10 +18249,7 @@ "cli_name": "list", "cli_path": "wiki node list", "confirmation": "not_required", - "description": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "列出指定知识库下的直接子节点(文档、文件夹、表格等)。\n\n通过 --folder 指定父节点可列出子目录内容;不传 --folder 则列出知识库根目录。\n支持分页,通过 --cursor 传入上次返回的 pageToken 获取下一页。", "effect": "read", "group": "node", "idempotency": "idempotent", @@ -19621,7 +18263,7 @@ "primary_cli_path": "wiki node list", "reviewed": true, "risk": "low", - "title": "列出指定文件夹或知识库下的直接子节点列表", + "title": "列出知识库节点", "use_when": [ "需要浏览指定知识库或文件夹的直接子节点时" ] @@ -19638,24 +18280,18 @@ "cli_name": "list", "cli_path": "wiki space list", "confirmation": "not_required", - "description": "获取当前用户有权访问的知识库列表,支持按类型区分。\r\n\r\n通过 wikiSpaceType 参数控制返回范围:\r\n- myWikiSpace:返回当前用户的「我的文档」个人空间(固定返回 1 条,不支持分页)\r\n- orgWikiSpace(默认):返回当前用户在组织内有权访问的知识库列表,支持分页\r\n\r\n返回结果包含知识库 ID、名称、描述、访问链接等信息。\r\n返回的 workspaceId 可直接用于其他工具(如 get_wikiSpace、create_document、list_nodes 等)。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "获取当前用户有权访问的空间列表。统一管理两种空间类型。\n\n通过 --type 参数控制返回范围:\n orgWikiSpace — 组织知识库列表(默认,支持分页)\n myWikiSpace — 当前用户的「我的文档」个人空间(固定 1 条)\n orgSpace — 钉盘企业空间(团队文件)列表\n mySpace — 钉盘「我的文件」个人空间", "effect": "read", "group": "space", "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "wiki", - "rpc_name": "list_wikiSpaces" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", "metadata_source": "embedded-mcp-metadata", "name": "list_wikiSpaces", "primary_cli_path": "wiki space list", "reviewed": true, "risk": "low", - "title": "获取知识库列表", + "title": "列出空间(知识库 / 钉盘空间)", "use_when": [ "需要枚举当前用户可访问的知识库或钉盘空间时" ] @@ -19672,10 +18308,7 @@ "cli_name": "copy", "cli_path": "wiki node copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将知识库中的节点复制到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时复制到 --workspace 指定知识库的根目录。", "effect": "write", "group": "node", "idempotency": "unknown", @@ -19689,7 +18322,7 @@ "primary_cli_path": "wiki node copy", "reviewed": true, "risk": "medium", - "title": "将指定节点复制到目标文件夹", + "title": "复制知识库节点", "use_when": [ "需要将知识库中的节点复制到指定位置时" ] @@ -19706,10 +18339,7 @@ "cli_name": "move", "cli_path": "wiki node move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "将知识库中的节点移动到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时移动到 --workspace 指定知识库的根目录。\n\n注意:跨知识库移动需要同时具备源和目标的相应权限。", "effect": "write", "group": "node", "idempotency": "unknown", @@ -19723,7 +18353,7 @@ "primary_cli_path": "wiki node move", "reviewed": true, "risk": "medium", - "title": "移动节点", + "title": "移动知识库节点", "use_when": [ "需要将知识库中的节点移动到指定位置时" ] @@ -19740,10 +18370,7 @@ "cli_name": "search", "cli_path": "wiki node search", "confirmation": "not_required", - "description": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "在指定知识库内搜索文档/文件夹/表格等节点。\n\n通过 --workspace 限定搜索范围到某个知识库,通过 --query 指定搜索关键词。\n支持按文件扩展名过滤(--extensions),如 adoc、asheet、pdf 等。", "effect": "read", "group": "node", "idempotency": "idempotent", @@ -19757,7 +18384,7 @@ "primary_cli_path": "wiki node search", "reviewed": true, "risk": "low", - "title": "搜索文档", + "title": "在知识库中搜索节点", "use_when": [ "已知 workspace,需要在该知识库内按关键词搜索节点时" ] @@ -19774,10 +18401,7 @@ "cli_name": "remove", "cli_path": "wiki member remove", "confirmation": "user_required", - "description": "从知识库中移除指定的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除知识库成员,移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\r\n\r\n适用场景:\r\n- 员工离职或转岗,需要撤销知识库访问权限。\r\n- 清理不再需要访问知识库的历史成员。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求**:操作者必须具备知识库的「可管理(MANAGER)」及以上角色(OWNER 或 MANAGER)。EDITOR / DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "从指定知识库中移除一个或多个成员(仅支持 USER 类型)。\n\n移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。", "effect": "destructive", "group": "member", "idempotency": "unknown", @@ -19808,10 +18432,7 @@ "cli_name": "search", "cli_path": "wiki space search", "confirmation": "not_required", - "description": "根据关键词搜索当前用户有权限访问的知识库列表。\r\n返回匹配的知识库列表,包括知识库 ID、名称、描述和访问链接。\r\n搜索范围为用户在当前组织内有权限访问的所有知识库。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "根据关键词搜索当前用户有权限访问的知识库列表,匹配知识库名称和描述。", "effect": "read", "group": "space", "idempotency": "idempotent", @@ -19842,10 +18463,7 @@ "cli_name": "update", "cli_path": "wiki member update", "confirmation": "not_required", - "description": "修改成员在知识库中的角色。\r\n\r\n同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n支持变更用户(USER)角色。\r\n\r\n适用场景:\r\n- 成员晋升为管理员,需要提升其知识库权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 当前 Agent 调用场景下,**暂不支持 CONVERSATION(群会话)和 DEPT(部门)类型**。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。", - "dry_run": { - "preview_kind": "invocation" - }, + "description": "更新指定知识库已有成员的角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n\n仅可更新已存在成员关系的成员,新增成员请使用 dws wiki member add。", "effect": "write", "group": "member", "idempotency": "unknown", @@ -19859,7 +18477,7 @@ "primary_cli_path": "wiki member update", "reviewed": true, "risk": "medium", - "title": "修改知识库成员角色", + "title": "更新知识库成员权限", "use_when": [ "需要更新指定知识库已有成员的角色时" ] @@ -19871,7 +18489,7 @@ } ], "source": "embedded-command-catalog", - "tool_count": 559 + "tool_count": 561 }, "tools": { "aisearch.enterprise_person_search": { @@ -19896,11 +18514,8 @@ "cli_name": "person", "cli_path": "aisearch person", "confirmation": "not_required", - "description": "企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。\\n\\n**适用场景示例**:\\n- 找一下负责智能化的人\\n- 帮我找产品经理\\n- 技术部有哪些人\\n- 张三的领导是谁\\n- 李四手下有哪些人\\n- 帮我找下王芳\\n- 谁在做大模型相关的工作\\n- 公司有哪些架构师\\n- 市场部的同事有谁\\n- 有没有会Java的同事\\n- 研发部的负责人是谁\\n- 帮我找一下跟智能客服有关的人\\n- 做设计的同事有谁\\n- 谁是技术总监\\n- 张三在哪个部门\\n\\n", + "description": "通过关键词搜索企业内人员信息,支持按维度筛选。\n\n可选维度 (--dimension):\n all 全部维度 (默认)\n name 姓名\n department 部门\n position 职位\n duty 职责/技能\n supervisor 上级\n subordinate 下级\n phone 手机号\n jobNumber 工号\n\n多个维度用逗号分隔。", "display": "AI 搜问", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -19998,44 +18613,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。\\n\\n**适用场景示例**:\\n- 找一下负责智能化的人\\n- 帮我找产品经理\\n- 技术部有哪些人\\n- 张三的领导是谁\\n- 李四手下有哪些人\\n- 帮我找下王芳\\n- 谁在做大模型相关的工作\\n- 公司有哪些架构师\\n- 市场部的同事有谁\\n- 有没有会Java的同事\\n- 研发部的负责人是谁\\n- 帮我找一下跟智能客服有关的人\\n- 做设计的同事有谁\\n- 谁是技术总监\\n- 张三在哪个部门\\n\\n" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "通过关键词搜索企业内人员信息,支持按维度筛选。\n\n可选维度 (--dimension):\n all 全部维度 (默认)\n name 姓名\n department 部门\n position 职位\n duty 职责/技能\n supervisor 上级\n subordinate 下级\n phone 手机号\n jobNumber 工号\n\n多个维度用逗号分隔。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。\\n\\n**适用场景示例**:\\n- 找一下负责智能化的人\\n- 帮我找产品经理\\n- 技术部有哪些人\\n- 张三的领导是谁\\n- 李四手下有哪些人\\n- 帮我找下王芳\\n- 谁在做大模型相关的工作\\n- 公司有哪些架构师\\n- 市场部的同事有谁\\n- 有没有会Java的同事\\n- 研发部的负责人是谁\\n- 帮我找一下跟智能客服有关的人\\n- 做设计的同事有谁\\n- 谁是技术总监\\n- 张三在哪个部门\\n\\n" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "企业内找人搜索工具,支持按姓名、部门、职位、技能、工作职责等多维度搜索企业内人员。\\n\\n**适用场景示例**:\\n- 找一下负责智能化的人\\n- 帮我找产品经理\\n- 技术部有哪些人\\n- 张三的领导是谁\\n- 李四手下有哪些人\\n- 帮我找下王芳\\n- 谁在做大模型相关的工作\\n- 公司有哪些架构师\\n- 市场部的同事有谁\\n- 有没有会Java的同事\\n- 研发部的负责人是谁\\n- 帮我找一下跟智能客服有关的人\\n- 做设计的同事有谁\\n- 谁是技术总监\\n- 张三在哪个部门\\n\\n" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "通过关键词搜索企业内人员信息,支持按维度筛选。\n\n可选维度 (--dimension):\n all 全部维度 (默认)\n name 姓名\n department 部门\n position 职位\n duty 职责/技能\n supervisor 上级\n subordinate 下级\n phone 手机号\n jobNumber 工号\n\n多个维度用逗号分隔。" }, "effect": { "candidates": [ @@ -20174,22 +18767,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "enterprise_person_search" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索企业人员" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "enterprise_person_search" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "enterprise_person_search" + "source": "cobra_help", + "value": "搜索企业人员" }, "use_when": { "candidates": [ @@ -20465,7 +19058,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "enterprise_person_search", + "title": "搜索企业人员", "use_when": [ "需要按姓名、部门、职位等维度搜索企业内人员时。" ] @@ -20491,11 +19084,8 @@ "cli_name": "enterprise", "cli_path": "aisearch enterprise", "confirmation": "not_required", - "description": "企业内部知识搜索工具。用于检索企业内部的文档、消息、日程、会议纪要、工作日志、多维表、企业百科等知识内容,基于关键词语义匹配返回相关资料。支持自然语言时间表达式(如\"最近\"、\"上周\"、\"本季度\")。适用场景:查找某个主题的资料、搜索包含特定关键词的文档、了解某项目/产品相关信息、准备汇报材料等内容检索需求。", + "description": "检索企业内部知识内容,如文档、消息、日程、待办、听记、日志、图片、链接、AI 表格、企业百科、邮件等。\n\n普通“XX 相关消息/文档/邮件/日程/待办/纪要有哪些”属于企业内容搜索,使用本命令;queries 只放内容关键词,时间放到 --time-range,所有类型词放到 --types。汇总类场景可不传 queries,使用 --types all。\n\n不要把“最近搜索问题相关消息”截断成 --query \"搜索问题\",也不要把“最近 OKR 相关邮件”写成 --query \"OKR 邮件\";这会丢失时间和类型槽位。应显式写成 --queries + --types + --time-range。", "display": "AI 搜问", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -20601,44 +19191,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "企业内部知识搜索工具。用于检索企业内部的文档、消息、日程、会议纪要、工作日志、多维表、企业百科等知识内容,基于关键词语义匹配返回相关资料。支持自然语言时间表达式(如\"最近\"、\"上周\"、\"本季度\")。适用场景:查找某个主题的资料、搜索包含特定关键词的文档、了解某项目/产品相关信息、准备汇报材料等内容检索需求。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "检索企业内部知识内容,如文档、消息、日程、待办、听记、日志、图片、链接、AI 表格、企业百科、邮件等。\n\n普通“XX 相关消息/文档/邮件/日程/待办/纪要有哪些”属于企业内容搜索,使用本命令;queries 只放内容关键词,时间放到 --time-range,所有类型词放到 --types。汇总类场景可不传 queries,使用 --types all。\n\n不要把“最近搜索问题相关消息”截断成 --query \"搜索问题\",也不要把“最近 OKR 相关邮件”写成 --query \"OKR 邮件\";这会丢失时间和类型槽位。应显式写成 --queries + --types + --time-range。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "企业内部知识搜索工具。用于检索企业内部的文档、消息、日程、会议纪要、工作日志、多维表、企业百科等知识内容,基于关键词语义匹配返回相关资料。支持自然语言时间表达式(如\"最近\"、\"上周\"、\"本季度\")。适用场景:查找某个主题的资料、搜索包含特定关键词的文档、了解某项目/产品相关信息、准备汇报材料等内容检索需求。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "企业内部知识搜索工具。用于检索企业内部的文档、消息、日程、会议纪要、工作日志、多维表、企业百科等知识内容,基于关键词语义匹配返回相关资料。支持自然语言时间表达式(如\"最近\"、\"上周\"、\"本季度\")。适用场景:查找某个主题的资料、搜索包含特定关键词的文档、了解某项目/产品相关信息、准备汇报材料等内容检索需求。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "检索企业内部知识内容,如文档、消息、日程、待办、听记、日志、图片、链接、AI 表格、企业百科、邮件等。\n\n普通“XX 相关消息/文档/邮件/日程/待办/纪要有哪些”属于企业内容搜索,使用本命令;queries 只放内容关键词,时间放到 --time-range,所有类型词放到 --types。汇总类场景可不传 queries,使用 --types all。\n\n不要把“最近搜索问题相关消息”截断成 --query \"搜索问题\",也不要把“最近 OKR 相关邮件”写成 --query \"OKR 邮件\";这会丢失时间和类型槽位。应显式写成 --queries + --types + --time-range。" }, "effect": { "candidates": [ @@ -20777,22 +19345,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_enterprise" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索企业内部知识内容和相关消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_enterprise" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_enterprise" + "source": "cobra_help", + "value": "搜索企业内部知识内容和相关消息" }, "use_when": { "candidates": [ @@ -21196,7 +19764,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_enterprise", + "title": "搜索企业内部知识内容和相关消息", "use_when": [ "需要按关键词、内容类型或时间范围检索企业内部知识时。" ] @@ -21222,11 +19790,8 @@ "cli_name": "behavior", "cli_path": "aisearch behavior", "confirmation": "not_required", - "description": "业内部行为记录搜索工具。用于检索用户的操作行为记录,如文档的发送、创建、分享、编辑等历史操作,支持按人员、动作类型进行精确查询。适用场景:\"我给某人发过什么\"、\"我创建过哪些文档\"、\"某人发给我的消息\"、\"我分享过的资料\"等行为追溯需求。与知识搜索的区别:本工具关注\"谁对什么做了什么\",而非内容本身。", + "description": "仅当用户明确询问“我/某人发过、发给、收到、创建、分享、编辑过什么”等行为动作时,检索企业内部行为记录。\n\n普通“XX 相关消息/文档/邮件有哪些”不是行为记录,应使用 aisearch enterprise。behavior 的 queries 只放内容关键词;时间放到 --time-range,所有类型词放到 --types,行为动作放到 --behavior-type,人与人之间的流向放到 --direction。", "display": "AI 搜问", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -21324,44 +19889,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "业内部行为记录搜索工具。用于检索用户的操作行为记录,如文档的发送、创建、分享、编辑等历史操作,支持按人员、动作类型进行精确查询。适用场景:\"我给某人发过什么\"、\"我创建过哪些文档\"、\"某人发给我的消息\"、\"我分享过的资料\"等行为追溯需求。与知识搜索的区别:本工具关注\"谁对什么做了什么\",而非内容本身。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "仅当用户明确询问“我/某人发过、发给、收到、创建、分享、编辑过什么”等行为动作时,检索企业内部行为记录。\n\n普通“XX 相关消息/文档/邮件有哪些”不是行为记录,应使用 aisearch enterprise。behavior 的 queries 只放内容关键词;时间放到 --time-range,所有类型词放到 --types,行为动作放到 --behavior-type,人与人之间的流向放到 --direction。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "业内部行为记录搜索工具。用于检索用户的操作行为记录,如文档的发送、创建、分享、编辑等历史操作,支持按人员、动作类型进行精确查询。适用场景:\"我给某人发过什么\"、\"我创建过哪些文档\"、\"某人发给我的消息\"、\"我分享过的资料\"等行为追溯需求。与知识搜索的区别:本工具关注\"谁对什么做了什么\",而非内容本身。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "业内部行为记录搜索工具。用于检索用户的操作行为记录,如文档的发送、创建、分享、编辑等历史操作,支持按人员、动作类型进行精确查询。适用场景:\"我给某人发过什么\"、\"我创建过哪些文档\"、\"某人发给我的消息\"、\"我分享过的资料\"等行为追溯需求。与知识搜索的区别:本工具关注\"谁对什么做了什么\",而非内容本身。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "仅当用户明确询问“我/某人发过、发给、收到、创建、分享、编辑过什么”等行为动作时,检索企业内部行为记录。\n\n普通“XX 相关消息/文档/邮件有哪些”不是行为记录,应使用 aisearch enterprise。behavior 的 queries 只放内容关键词;时间放到 --time-range,所有类型词放到 --types,行为动作放到 --behavior-type,人与人之间的流向放到 --direction。" }, "effect": { "candidates": [ @@ -21500,22 +20043,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_enterprise_behavior" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索明确的发送/创建/接收等行为记录" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_enterprise_behavior" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_enterprise_behavior" + "source": "cobra_help", + "value": "搜索明确的发送/创建/接收等行为记录" }, "use_when": { "candidates": [ @@ -22207,7 +20750,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_enterprise_behavior", + "title": "搜索明确的发送/创建/接收等行为记录", "use_when": [ "用户明确询问某人发送、接收、创建、分享或编辑过什么时。" ] @@ -22236,11 +20779,8 @@ "cli_name": "disable", "cli_path": "aitable advperm disable", "confirmation": "user_required", - "description": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。", + "description": "关闭指定 Base 的高级权限总开关。\n关闭后,所有自定义角色配置都不再生效,全员回退到默认权限。\n此操作影响范围较大,请确认后再操作(需 --yes 确认)。\n要求:调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\nmessage: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -22346,44 +20886,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "关闭指定 Base 的高级权限总开关。\n关闭后,所有自定义角色配置都不再生效,全员回退到默认权限。\n此操作影响范围较大,请确认后再操作(需 --yes 确认)。\n要求:调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\nmessage: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "关闭指定 Base 的高级权限总开关。\n关闭后,所有自定义角色配置都不再生效,全员回退到默认权限。\n此操作影响范围较大,请确认后再操作(需 --yes 确认)。\n要求:调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\nmessage: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。" }, "effect": { "candidates": [ @@ -22546,22 +21064,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "set_advanced_permission" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "关闭高级权限总开关(高危)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "set_advanced_permission" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "set_advanced_permission" + "source": "cobra_help", + "value": "关闭高级权限总开关(高危)" }, "use_when": { "candidates": [ @@ -22707,7 +21225,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "set_advanced_permission", + "title": "关闭高级权限总开关(高危)", "use_when": [ "需要关闭指定 Base 的高级权限总开关时。" ] @@ -22735,11 +21253,8 @@ "cli_name": "enable", "cli_path": "aitable advperm enable", "confirmation": "not_required", - "description": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。", + "description": "开启指定 Base 的高级权限总开关。\n开启后,advperm role-list / role-get 等角色配置才会真正生效。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -22837,44 +21352,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "开启指定 Base 的高级权限总开关。\n开启后,advperm role-list / role-get 等角色配置才会真正生效。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "开启或关闭指定 Base 的高级权限总开关。必填 baseId、enabled(true=开启,false=关闭)。\r\n返回切换后的状态 {baseId, enabled};只有显式开启后,后续 list_roles / get_role 等角色配置才会真正生效。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "开启指定 Base 的高级权限总开关。\n开启后,advperm role-list / role-get 等角色配置才会真正生效。" }, "effect": { "candidates": [ @@ -23021,22 +21514,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "set_advanced_permission" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "开启高级权限总开关" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "set_advanced_permission" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "set_advanced_permission" + "source": "cobra_help", + "value": "开启高级权限总开关" }, "use_when": { "candidates": [ @@ -23182,7 +21675,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "set_advanced_permission", + "title": "开启高级权限总开关", "use_when": [ "需要开启指定 Base 的高级权限总开关时。" ] @@ -23210,11 +21703,8 @@ "cli_name": "role-create", "cli_path": "aitable advperm role-create", "confirmation": "not_required", - "description": "在指定 Base 下创建自定义角色;系统角色无法通过本工具创建。必填 baseId、name;可选 roleType、flowType、subRoles。\r\nsubRoles[].authLevel 取值:manage / edit-own / edit-custom-field / edit-field-range / read / none。\r\n返回新建角色的完整配置(同 get_role 出参格式)。\r\n自动兜底:caller 可以传稀疏 subRoles(只列关心的资源),或 subRoles 留空。MCP 会自动枚举 Base 下所有 sheet/dashboard,caller 未列的资源补 authLevel=none + bizType 对应默认 config;caller 列了但 config=null 的 sheet/dashboard 也填默认 config(避免前端 JSON.parse null 白屏)。app(bizType=3)需 caller 显式传,不自动枚举。\r\n约束:name 建议 ≤ 30 字;roleType 禁止以 system_ 开头(保留给系统角色);调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。", + "description": "在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)。\n必填 --base-id 与 --name;可选 --role-type / --flow-type / --sub-roles。\n--sub-roles 为 JSON 数组,每项 {targetId, targetType, authLevel, appId?, config?}。\n - targetType: sheet / dashboard / app\n - authLevel: manage / edit-own / edit-custom-field / edit-field-range / read / none\n返回新建角色的完整配置(同 role-get 出参)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -23312,44 +21802,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 Base 下创建自定义角色;系统角色无法通过本工具创建。必填 baseId、name;可选 roleType、flowType、subRoles。\r\nsubRoles[].authLevel 取值:manage / edit-own / edit-custom-field / edit-field-range / read / none。\r\n返回新建角色的完整配置(同 get_role 出参格式)。\r\n自动兜底:caller 可以传稀疏 subRoles(只列关心的资源),或 subRoles 留空。MCP 会自动枚举 Base 下所有 sheet/dashboard,caller 未列的资源补 authLevel=none + bizType 对应默认 config;caller 列了但 config=null 的 sheet/dashboard 也填默认 config(避免前端 JSON.parse null 白屏)。app(bizType=3)需 caller 显式传,不自动枚举。\r\n约束:name 建议 ≤ 30 字;roleType 禁止以 system_ 开头(保留给系统角色);调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)。\n必填 --base-id 与 --name;可选 --role-type / --flow-type / --sub-roles。\n--sub-roles 为 JSON 数组,每项 {targetId, targetType, authLevel, appId?, config?}。\n - targetType: sheet / dashboard / app\n - authLevel: manage / edit-own / edit-custom-field / edit-field-range / read / none\n返回新建角色的完整配置(同 role-get 出参)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 Base 下创建自定义角色;系统角色无法通过本工具创建。必填 baseId、name;可选 roleType、flowType、subRoles。\r\nsubRoles[].authLevel 取值:manage / edit-own / edit-custom-field / edit-field-range / read / none。\r\n返回新建角色的完整配置(同 get_role 出参格式)。\r\n自动兜底:caller 可以传稀疏 subRoles(只列关心的资源),或 subRoles 留空。MCP 会自动枚举 Base 下所有 sheet/dashboard,caller 未列的资源补 authLevel=none + bizType 对应默认 config;caller 列了但 config=null 的 sheet/dashboard 也填默认 config(避免前端 JSON.parse null 白屏)。app(bizType=3)需 caller 显式传,不自动枚举。\r\n约束:name 建议 ≤ 30 字;roleType 禁止以 system_ 开头(保留给系统角色);调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 Base 下创建自定义角色;系统角色无法通过本工具创建。必填 baseId、name;可选 roleType、flowType、subRoles。\r\nsubRoles[].authLevel 取值:manage / edit-own / edit-custom-field / edit-field-range / read / none。\r\n返回新建角色的完整配置(同 get_role 出参格式)。\r\n自动兜底:caller 可以传稀疏 subRoles(只列关心的资源),或 subRoles 留空。MCP 会自动枚举 Base 下所有 sheet/dashboard,caller 未列的资源补 authLevel=none + bizType 对应默认 config;caller 列了但 config=null 的 sheet/dashboard 也填默认 config(避免前端 JSON.parse null 白屏)。app(bizType=3)需 caller 显式传,不自动枚举。\r\n约束:name 建议 ≤ 30 字;roleType 禁止以 system_ 开头(保留给系统角色);调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)。\n必填 --base-id 与 --name;可选 --role-type / --flow-type / --sub-roles。\n--sub-roles 为 JSON 数组,每项 {targetId, targetType, authLevel, appId?, config?}。\n - targetType: sheet / dashboard / app\n - authLevel: manage / edit-own / edit-custom-field / edit-field-range / read / none\n返回新建角色的完整配置(同 role-get 出参)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。" }, "effect": { "candidates": [ @@ -23496,22 +21964,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_role" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建自定义角色" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_role" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_role" + "source": "cobra_help", + "value": "创建自定义角色" }, "use_when": { "candidates": [ @@ -24060,7 +22528,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_role", + "title": "创建自定义角色", "use_when": [ "需要在指定 Base 下创建一个自定义角色(系统角色禁止通过本命令创建)时。" ] @@ -24089,7 +22557,7 @@ "cli_name": "role-delete", "cli_path": "aitable advperm role-delete", "confirmation": "user_required", - "description": "删除指定 Base 下的自定义角色;系统角色禁止删除,下游会返回业务错误。必填 baseId、roleId。\r\n返回被删除的 roleId。删除操作不可逆。", + "description": "删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")。\n删除操作不可逆,请先通过 advperm role-list 确认目标 roleId(必须是数字 long 字符串,传 owner / manager 等字符串 meta-id 会被服务端拒为 INVALID_PARAMS)。\n要求:\n - 该 Base 已开启高级权限,否则返回 ADVANCED_PERMISSION_DISABLED / USER_ERROR;\n - 调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\n message: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。", "display": "AI 表格操作", "effect": "destructive", "effect_source": "agent-hint", @@ -24196,22 +22664,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定 Base 下的自定义角色;系统角色禁止删除,下游会返回业务错误。必填 baseId、roleId。\r\n返回被删除的 roleId。删除操作不可逆。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")。\n删除操作不可逆,请先通过 advperm role-list 确认目标 roleId(必须是数字 long 字符串,传 owner / manager 等字符串 meta-id 会被服务端拒为 INVALID_PARAMS)。\n要求:\n - 该 Base 已开启高级权限,否则返回 ADVANCED_PERMISSION_DISABLED / USER_ERROR;\n - 调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\n message: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定 Base 下的自定义角色;系统角色禁止删除,下游会返回业务错误。必填 baseId、roleId。\r\n返回被删除的 roleId。删除操作不可逆。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定 Base 下的自定义角色;系统角色禁止删除,下游会返回业务错误。必填 baseId、roleId。\r\n返回被删除的 roleId。删除操作不可逆。" + "source": "cobra_help", + "value": "删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")。\n删除操作不可逆,请先通过 advperm role-list 确认目标 roleId(必须是数字 long 字符串,传 owner / manager 等字符串 meta-id 会被服务端拒为 INVALID_PARAMS)。\n要求:\n - 该 Base 已开启高级权限,否则返回 ADVANCED_PERMISSION_DISABLED / USER_ERROR;\n - 调用者必须是该 AI 表格的管理员/Owner,否则返回 401 AUTH_ERROR,\n message: \"the current user must be a manager (administrator) of this base to manage roles or advanced permission\"。" }, "effect": { "candidates": [ @@ -24374,22 +22842,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "delete_role" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除自定义角色(不可逆)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "delete_role" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "delete_role" + "source": "cobra_help", + "value": "删除自定义角色(不可逆)" }, "use_when": { "candidates": [ @@ -24638,7 +23106,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "delete_role", + "title": "删除自定义角色(不可逆)", "use_when": [ "需要删除 Base 下指定的自定义角色(system=true 的系统角色禁删,服务端返回 600 / \"Illegal argument\")时。" ] @@ -24666,11 +23134,8 @@ "cli_name": "role-get", "cli_path": "aitable advperm role-get", "confirmation": "not_required", - "description": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。\r\n\r\n参数:必填 baseId、roleId。\r\n\r\n返回 {roleId, name, roleType, flowType, isSystem, subRoles:[{targetId, targetType, authLevel, appId, config}]}。", + "description": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -24768,44 +23233,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。\r\n\r\n参数:必填 baseId、roleId。\r\n\r\n返回 {roleId, name, roleType, flowType, isSystem, subRoles:[{targetId, targetType, authLevel, appId, config}]}。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。\r\n\r\n参数:必填 baseId、roleId。\r\n\r\n返回 {roleId, name, roleType, flowType, isSystem, subRoles:[{targetId, targetType, authLevel, appId, config}]}。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。\r\n\r\n参数:必填 baseId、roleId。\r\n\r\n返回 {roleId, name, roleType, flowType, isSystem, subRoles:[{targetId, targetType, authLevel, appId, config}]}。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限。" }, "effect": { "candidates": [ @@ -24952,22 +23395,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_role" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取单个角色完整配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_role" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_role" + "source": "cobra_help", + "value": "获取单个角色完整配置" }, "use_when": { "candidates": [ @@ -25216,7 +23659,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_role", + "title": "获取单个角色完整配置", "use_when": [ "需要获取指定 Base 下单个角色的完整配置,含 subRoles 与字段/行级权限时。" ] @@ -25244,11 +23687,8 @@ "cli_name": "role-list", "cli_path": "aitable advperm role-list", "confirmation": "not_required", - "description": "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。\r\n\r\n参数:必填 baseId。\r\n\r\n返回 {enabled, defaultRole:{mode, roleId}, roles:[{roleId, name, roleType, flowType, isSystem, subRoles}]}。\r\n\r\n不返回角色成员列表;若需要添加/移除角色成员,请使用其他专用工具。", + "description": "列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表。\nroles 同时包含自定义角色和系统角色,用 system (boolean) 字段区分(旧版本里叫 isSystem,服务端已统一为 system)。\nsubRoles[].display.* 提供人类可读标签(authLevelLabel / targetTypeLabel / permissionScopeNote 等)。\n不返回角色成员列表。\n非管理员也可调用此命令读取角色配置。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -25346,44 +23786,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。\r\n\r\n参数:必填 baseId。\r\n\r\n返回 {enabled, defaultRole:{mode, roleId}, roles:[{roleId, name, roleType, flowType, isSystem, subRoles}]}。\r\n\r\n不返回角色成员列表;若需要添加/移除角色成员,请使用其他专用工具。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表。\nroles 同时包含自定义角色和系统角色,用 system (boolean) 字段区分(旧版本里叫 isSystem,服务端已统一为 system)。\nsubRoles[].display.* 提供人类可读标签(authLevelLabel / targetTypeLabel / permissionScopeNote 等)。\n不返回角色成员列表。\n非管理员也可调用此命令读取角色配置。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。\r\n\r\n参数:必填 baseId。\r\n\r\n返回 {enabled, defaultRole:{mode, roleId}, roles:[{roleId, name, roleType, flowType, isSystem, subRoles}]}。\r\n\r\n不返回角色成员列表;若需要添加/移除角色成员,请使用其他专用工具。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定 Base 下的全部角色,含系统角色与自定义角色,并标注 isSystem 与默认角色信息。\r\n\r\n参数:必填 baseId。\r\n\r\n返回 {enabled, defaultRole:{mode, roleId}, roles:[{roleId, name, roleType, flowType, isSystem, subRoles}]}。\r\n\r\n不返回角色成员列表;若需要添加/移除角色成员,请使用其他专用工具。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表。\nroles 同时包含自定义角色和系统角色,用 system (boolean) 字段区分(旧版本里叫 isSystem,服务端已统一为 system)。\nsubRoles[].display.* 提供人类可读标签(authLevelLabel / targetTypeLabel / permissionScopeNote 等)。\n不返回角色成员列表。\n非管理员也可调用此命令读取角色配置。" }, "effect": { "candidates": [ @@ -25530,22 +23948,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_roles" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出 Base 下所有角色" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_roles" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_roles" + "source": "cobra_help", + "value": "列出 Base 下所有角色" }, "use_when": { "candidates": [ @@ -25691,7 +24109,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_roles", + "title": "列出 Base 下所有角色", "use_when": [ "需要列出指定 Base 下的全部角色,返回 enabled 标志、defaultRole 与 roles 列表时。" ] @@ -25719,11 +24137,8 @@ "cli_name": "role-update", "cli_path": "aitable advperm role-update", "confirmation": "not_required", - "description": "增量更新自定义角色配置。必填 baseId、roleId;可选 name、roleType、flowType、subRoles。\r\nsubRoles 行为:不传=完全不动现有 subRoles;传入则按 (targetId, targetType) 与现有 subRoles 合并——入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变。MCP 已在内部做 get→merge,caller 无需先调 get_role。\r\n自动兜底:caller 传非空 subRoles 时,MCP 会对其中 sheet/dashboard 项里 config=null 的自动填默认 config(避免前端崩),不会额外枚举 Base 资源(与 create 不同,patch 保持\"只动调用方列的项\"语义)。\r\n系统角色禁止更新。\r\n约束:roleType 禁止以 system_ 开头;调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。", + "description": "按 PATCH 语义增量更新指定自定义角色。系统角色禁止更新。\n必填 --base-id 与 --role-id;可选 --name / --role-type / --flow-type / --sub-roles。\n未传的字段保持不变;传 --sub-roles 时服务端按 (targetId, targetType) 合并到现有\nsubRoles,入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变(不需要先调\nrole-get 自行 merge)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -25821,44 +24236,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "增量更新自定义角色配置。必填 baseId、roleId;可选 name、roleType、flowType、subRoles。\r\nsubRoles 行为:不传=完全不动现有 subRoles;传入则按 (targetId, targetType) 与现有 subRoles 合并——入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变。MCP 已在内部做 get→merge,caller 无需先调 get_role。\r\n自动兜底:caller 传非空 subRoles 时,MCP 会对其中 sheet/dashboard 项里 config=null 的自动填默认 config(避免前端崩),不会额外枚举 Base 资源(与 create 不同,patch 保持\"只动调用方列的项\"语义)。\r\n系统角色禁止更新。\r\n约束:roleType 禁止以 system_ 开头;调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 PATCH 语义增量更新指定自定义角色。系统角色禁止更新。\n必填 --base-id 与 --role-id;可选 --name / --role-type / --flow-type / --sub-roles。\n未传的字段保持不变;传 --sub-roles 时服务端按 (targetId, targetType) 合并到现有\nsubRoles,入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变(不需要先调\nrole-get 自行 merge)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "增量更新自定义角色配置。必填 baseId、roleId;可选 name、roleType、flowType、subRoles。\r\nsubRoles 行为:不传=完全不动现有 subRoles;传入则按 (targetId, targetType) 与现有 subRoles 合并——入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变。MCP 已在内部做 get→merge,caller 无需先调 get_role。\r\n自动兜底:caller 传非空 subRoles 时,MCP 会对其中 sheet/dashboard 项里 config=null 的自动填默认 config(避免前端崩),不会额外枚举 Base 资源(与 create 不同,patch 保持\"只动调用方列的项\"语义)。\r\n系统角色禁止更新。\r\n约束:roleType 禁止以 system_ 开头;调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "增量更新自定义角色配置。必填 baseId、roleId;可选 name、roleType、flowType、subRoles。\r\nsubRoles 行为:不传=完全不动现有 subRoles;传入则按 (targetId, targetType) 与现有 subRoles 合并——入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变。MCP 已在内部做 get→merge,caller 无需先调 get_role。\r\n自动兜底:caller 传非空 subRoles 时,MCP 会对其中 sheet/dashboard 项里 config=null 的自动填默认 config(避免前端崩),不会额外枚举 Base 资源(与 create 不同,patch 保持\"只动调用方列的项\"语义)。\r\n系统角色禁止更新。\r\n约束:roleType 禁止以 system_ 开头;调用者 uid 必须是该 Base 的管理员,否则 UNAUTHORIZED。\r\n失败码:ILLEGAL_ARGUMENT / UNAUTHORIZED / SERVER_ERROR。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按 PATCH 语义增量更新指定自定义角色。系统角色禁止更新。\n必填 --base-id 与 --role-id;可选 --name / --role-type / --flow-type / --sub-roles。\n未传的字段保持不变;传 --sub-roles 时服务端按 (targetId, targetType) 合并到现有\nsubRoles,入参中的 sub 整体替换该 sub,入参未提及的 sub 保留不变(不需要先调\nrole-get 自行 merge)。\n要求:调用者必须是该 AI 表格的管理员/Owner;Base 须已开启高级权限。" }, "effect": { "candidates": [ @@ -26005,22 +24398,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "patch_role" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "增量更新自定义角色配置(patch 语义)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "patch_role" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "patch_role" + "source": "cobra_help", + "value": "增量更新自定义角色配置(patch 语义)" }, "use_when": { "candidates": [ @@ -26654,7 +25047,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "patch_role", + "title": "增量更新自定义角色配置(patch 语义)", "use_when": [ "需要按 PATCH 语义增量更新指定自定义角色时。" ] @@ -26682,11 +25075,8 @@ "cli_name": "upload", "cli_path": "aitable attachment upload", "confirmation": "not_required", - "description": "为单个 attachment 字段文件申请带容量校验的 OSS 直传地址。\r\n该工具仅适用于“需要先上传本地文件,再将其写入 attachment 字段”的场景,不是通用文件上传入口,也不适用于后续导入类任务上传。\r\n如果已经有可直接下载的在线文件 URL,不要先下载文件再调用本工具;可直接在 create_records / update_records 的 attachment 字段中传入 [{\"url\":\"https://...\"}],由服务端自动代拉外链并转存为内部附件。\r\n该工具只负责准备上传,不直接接收文件二进制内容;实际文件字节流应由客户端在 MCP 外上传到返回的 uploadUrl。\r\n上传文件时,向 uploadUrl 发起的 PUT 请求必须携带 Content-Type header,且其值必须是该文件的具体 MIME type。\r\n上传成功后,请在 create_records / update_records 的 attachment 字段中写入 [{\"fileToken\":\"...\"}]。", + "description": "为 attachment 字段文件申请带容量校验的 OSS 直传地址。\n\n该命令只负责准备上传(获取 uploadUrl 和 fileToken),不直接上传文件。\n实际文件需由客户端在 MCP 外通过 PUT 请求上传到返回的 uploadUrl。\n\n完整流程:\n 1. dws aitable attachment upload --base-id \u003cBASE_ID\u003e --file-name photo.png --size 1024\n → 获取 uploadUrl 和 fileToken\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" -H \"Content-Type: image/png\" --data-binary @photo.png\n → 上传文件到 OSS\n 3. dws aitable record create --base-id \u003cBASE_ID\u003e --table-id \u003cTABLE_ID\u003e \\\n --records '[{\"cells\":{\"fldAttachId\":[{\"fileToken\":\"\u003cfileToken\u003e\"}]}}]'\n → 将 fileToken 写入 attachment 字段\n\n注意:\n 上传文件到 uploadUrl 时,PUT 请求必须携带 Content-Type header,\n 且其值必须是该文件的具体 MIME type(如 image/png、application/pdf)。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -26784,44 +25174,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为单个 attachment 字段文件申请带容量校验的 OSS 直传地址。\r\n该工具仅适用于“需要先上传本地文件,再将其写入 attachment 字段”的场景,不是通用文件上传入口,也不适用于后续导入类任务上传。\r\n如果已经有可直接下载的在线文件 URL,不要先下载文件再调用本工具;可直接在 create_records / update_records 的 attachment 字段中传入 [{\"url\":\"https://...\"}],由服务端自动代拉外链并转存为内部附件。\r\n该工具只负责准备上传,不直接接收文件二进制内容;实际文件字节流应由客户端在 MCP 外上传到返回的 uploadUrl。\r\n上传文件时,向 uploadUrl 发起的 PUT 请求必须携带 Content-Type header,且其值必须是该文件的具体 MIME type。\r\n上传成功后,请在 create_records / update_records 的 attachment 字段中写入 [{\"fileToken\":\"...\"}]。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为 attachment 字段文件申请带容量校验的 OSS 直传地址。\n\n该命令只负责准备上传(获取 uploadUrl 和 fileToken),不直接上传文件。\n实际文件需由客户端在 MCP 外通过 PUT 请求上传到返回的 uploadUrl。\n\n完整流程:\n 1. dws aitable attachment upload --base-id \u003cBASE_ID\u003e --file-name photo.png --size 1024\n → 获取 uploadUrl 和 fileToken\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" -H \"Content-Type: image/png\" --data-binary @photo.png\n → 上传文件到 OSS\n 3. dws aitable record create --base-id \u003cBASE_ID\u003e --table-id \u003cTABLE_ID\u003e \\\n --records '[{\"cells\":{\"fldAttachId\":[{\"fileToken\":\"\u003cfileToken\u003e\"}]}}]'\n → 将 fileToken 写入 attachment 字段\n\n注意:\n 上传文件到 uploadUrl 时,PUT 请求必须携带 Content-Type header,\n 且其值必须是该文件的具体 MIME type(如 image/png、application/pdf)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为单个 attachment 字段文件申请带容量校验的 OSS 直传地址。\r\n该工具仅适用于“需要先上传本地文件,再将其写入 attachment 字段”的场景,不是通用文件上传入口,也不适用于后续导入类任务上传。\r\n如果已经有可直接下载的在线文件 URL,不要先下载文件再调用本工具;可直接在 create_records / update_records 的 attachment 字段中传入 [{\"url\":\"https://...\"}],由服务端自动代拉外链并转存为内部附件。\r\n该工具只负责准备上传,不直接接收文件二进制内容;实际文件字节流应由客户端在 MCP 外上传到返回的 uploadUrl。\r\n上传文件时,向 uploadUrl 发起的 PUT 请求必须携带 Content-Type header,且其值必须是该文件的具体 MIME type。\r\n上传成功后,请在 create_records / update_records 的 attachment 字段中写入 [{\"fileToken\":\"...\"}]。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为单个 attachment 字段文件申请带容量校验的 OSS 直传地址。\r\n该工具仅适用于“需要先上传本地文件,再将其写入 attachment 字段”的场景,不是通用文件上传入口,也不适用于后续导入类任务上传。\r\n如果已经有可直接下载的在线文件 URL,不要先下载文件再调用本工具;可直接在 create_records / update_records 的 attachment 字段中传入 [{\"url\":\"https://...\"}],由服务端自动代拉外链并转存为内部附件。\r\n该工具只负责准备上传,不直接接收文件二进制内容;实际文件字节流应由客户端在 MCP 外上传到返回的 uploadUrl。\r\n上传文件时,向 uploadUrl 发起的 PUT 请求必须携带 Content-Type header,且其值必须是该文件的具体 MIME type。\r\n上传成功后,请在 create_records / update_records 的 attachment 字段中写入 [{\"fileToken\":\"...\"}]。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为 attachment 字段文件申请带容量校验的 OSS 直传地址。\n\n该命令只负责准备上传(获取 uploadUrl 和 fileToken),不直接上传文件。\n实际文件需由客户端在 MCP 外通过 PUT 请求上传到返回的 uploadUrl。\n\n完整流程:\n 1. dws aitable attachment upload --base-id \u003cBASE_ID\u003e --file-name photo.png --size 1024\n → 获取 uploadUrl 和 fileToken\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" -H \"Content-Type: image/png\" --data-binary @photo.png\n → 上传文件到 OSS\n 3. dws aitable record create --base-id \u003cBASE_ID\u003e --table-id \u003cTABLE_ID\u003e \\\n --records '[{\"cells\":{\"fldAttachId\":[{\"fileToken\":\"\u003cfileToken\u003e\"}]}}]'\n → 将 fileToken 写入 attachment 字段\n\n注意:\n 上传文件到 uploadUrl 时,PUT 请求必须携带 Content-Type header,\n 且其值必须是该文件的具体 MIME type(如 image/png、application/pdf)。" }, "effect": { "candidates": [ @@ -26966,21 +25334,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "准备附件上传" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "准备附件上传" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "准备附件上传" }, "use_when": { @@ -27478,11 +25846,8 @@ "cli_name": "copy", "cli_path": "aitable base copy", "confirmation": "not_required", - "description": "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入", + "description": "复制 AI 表格到指定目录。支持完整复制或仅复制结构(不含数据)。\n复制操作会创建一个新的 Base,包含原 Base 的表、字段、视图等配置。\n如果选择仅复制结构(--only-struct),则不会复制实际的记录数据。\n\n权限要求:需要对源 Base 有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。\n\n注意:--target-folder-id 参数如果传入的是文档/文件夹 URL(如 https://alidocs.dingtalk.com/i/nodes/xxx),\n需要先调用文档的 dws 命令(如 dws doc info --node URL)获取 dentryUuid,再将 dentryUuid 传入本命令。\nMCP 层不会会自动解析 URL,必须直接传入 dentryUuid 以避免报错。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -27580,44 +25945,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制 AI 表格到指定目录。支持完整复制或仅复制结构(不含数据)。\n复制操作会创建一个新的 Base,包含原 Base 的表、字段、视图等配置。\n如果选择仅复制结构(--only-struct),则不会复制实际的记录数据。\n\n权限要求:需要对源 Base 有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。\n\n注意:--target-folder-id 参数如果传入的是文档/文件夹 URL(如 https://alidocs.dingtalk.com/i/nodes/xxx),\n需要先调用文档的 dws 命令(如 dws doc info --node URL)获取 dentryUuid,再将 dentryUuid 传入本命令。\nMCP 层不会会自动解析 URL,必须直接传入 dentryUuid 以避免报错。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "复制当前AI表格到指定的路径下,支持传入目标地址以及是否需要复制元数据还是只是复制表的结构不复制数据,三个参数都是必填的,如果用户传的是链接的话则需要根据实际去调用文档的DWS去获取dentryuuid信息,并且传入" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "复制 AI 表格到指定目录。支持完整复制或仅复制结构(不含数据)。\n复制操作会创建一个新的 Base,包含原 Base 的表、字段、视图等配置。\n如果选择仅复制结构(--only-struct),则不会复制实际的记录数据。\n\n权限要求:需要对源 Base 有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。\n\n注意:--target-folder-id 参数如果传入的是文档/文件夹 URL(如 https://alidocs.dingtalk.com/i/nodes/xxx),\n需要先调用文档的 dws 命令(如 dws doc info --node URL)获取 dentryUuid,再将 dentryUuid 传入本命令。\nMCP 层不会会自动解析 URL,必须直接传入 dentryUuid 以避免报错。" }, "effect": { "candidates": [ @@ -27764,22 +26107,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "copy_base" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制 AI 表格" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "copy_base" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "copy_base" + "source": "cobra_help", + "value": "复制 AI 表格" }, "use_when": { "candidates": [ @@ -27929,6 +26272,12 @@ "source": "cobra_usage", "value": "是否仅复制结构(不含数据),默认 false 表示完整复制" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否仅复制基础元数据(必选,默认 false)当设置为true}时,仅复制 Base 的结构信息(如表、字段定义等),不复制实际记录数据;当设置为 false 或未提供时,将完整复制 Base 的全部内容与结构。" + }, { "precedence": "default", "selected": false, @@ -27944,16 +26293,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "onlyCopyMeta" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "onlyStruct" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "onlyStruct" + "source": "versioned_parameter_binding", + "value": "onlyCopyMeta" }, "required": { "candidates": [ @@ -27963,6 +26318,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -28004,7 +26365,8 @@ "value": "boolean" } }, - "property": "onlyStruct", + "interface_description": "是否仅复制基础元数据(必选,默认 false)当设置为true}时,仅复制 Base 的结构信息(如表、字段定义等),不复制实际记录数据;当设置为 false 或未提供时,将完整复制 Base 的全部内容与结构。", + "property": "onlyCopyMeta", "required": false, "type": "boolean" }, @@ -28118,7 +26480,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "copy_base", + "title": "复制 AI 表格", "use_when": [ "需要复制 AI 表格到指定目录时。" ] @@ -28147,11 +26509,8 @@ "cli_name": "create", "cli_path": "aitable base create", "confirmation": "not_required", - "description": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName,如果需要创建的特定的文件夹路径下,则需要传递folderId,这个是知识库节点的ID,调用文档的相关服务可以获取", + "description": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName。\n如果需要创建在特定的文件夹路径下,则需要传递 folderId,这个是知识库节点的 ID,调用文档的相关服务可以获取。\nMCP 层会进一步兼容同字段传入的标准节点 URL,并在创建前解析出实际生效的节点 ID。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -28249,44 +26608,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName,如果需要创建的特定的文件夹路径下,则需要传递folderId,这个是知识库节点的ID,调用文档的相关服务可以获取" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName。\n如果需要创建在特定的文件夹路径下,则需要传递 folderId,这个是知识库节点的 ID,调用文档的相关服务可以获取。\nMCP 层会进一步兼容同字段传入的标准节点 URL,并在创建前解析出实际生效的节点 ID。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName,如果需要创建的特定的文件夹路径下,则需要传递folderId,这个是知识库节点的ID,调用文档的相关服务可以获取" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName,如果需要创建的特定的文件夹路径下,则需要传递folderId,这个是知识库节点的ID,调用文档的相关服务可以获取" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一个新的 AI 表格 Base。当前仅要求 baseName,服务端按默认模板创建并返回 baseId/baseName。\n如果需要创建在特定的文件夹路径下,则需要传递 folderId,这个是知识库节点的 ID,调用文档的相关服务可以获取。\nMCP 层会进一步兼容同字段传入的标准节点 URL,并在创建前解析出实际生效的节点 ID。" }, "effect": { "candidates": [ @@ -28431,21 +26768,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建 AI 表格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建 AI 表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建 AI 表格" }, "use_when": { @@ -28584,6 +26921,12 @@ "source": "cobra_usage", "value": "Base 名称,1-50 字符;会去除首尾空格后校验 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "Base 名称,1-50 字符;会去除首尾空格后校验" + }, { "precedence": "default", "selected": false, @@ -28599,22 +26942,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "baseName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "baseName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -28625,9 +26980,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -28659,7 +27014,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "Base 名称,1-50 字符;会去除首尾空格后校验", + "property": "baseName", "required": true, "type": "string" }, @@ -28796,7 +27152,7 @@ "cli_name": "delete", "cli_path": "aitable base delete", "confirmation": "user_required", - "description": "删除指定 Base(高风险、不可逆)。成功后应无法通过 get_base/search_bases 读取到该 Base", + "description": "删除指定 Base(高风险、不可逆)。成功后应无法通过 base get / base search 读取到该 Base", "display": "AI 表格操作", "effect": "destructive", "effect_source": "skill-explicit", @@ -28902,22 +27258,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定 Base(高风险、不可逆)。成功后应无法通过 get_base/search_bases 读取到该 Base" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定 Base(高风险、不可逆)。成功后应无法通过 base get / base search 读取到该 Base" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定 Base(高风险、不可逆)。成功后应无法通过 get_base/search_bases 读取到该 Base" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定 Base(高风险、不可逆)。成功后应无法通过 get_base/search_bases 读取到该 Base" + "source": "cobra_help", + "value": "删除指定 Base(高风险、不可逆)。成功后应无法通过 base get / base search 读取到该 Base" }, "effect": { "candidates": [ @@ -29071,21 +27427,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除 AI 表格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除 AI 表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除 AI 表格" }, "use_when": { @@ -29350,11 +27706,8 @@ "cli_name": "get", "cli_path": "aitable base get", "confirmation": "not_required", - "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard", + "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 table get,dashboard 详情再调用 get_dashboard", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -29452,44 +27805,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 table get,dashboard 详情再调用 get_dashboard" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 table get,dashboard 详情再调用 get_dashboard" }, "effect": { "candidates": [ @@ -29634,21 +27965,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取 AI 表格信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取 AI 表格信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取 AI 表格信息" }, "use_when": { @@ -29822,11 +28153,8 @@ "cli_name": "get-primary-doc-id", "cli_path": "aitable base get-primary-doc-id", "confirmation": "not_required", - "description": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作", + "description": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息。\n当 AI 表格使用文档类型作为主键字段时,可以通过此命令获取对应文档的 dentryUuid,\n进而利用该 uuid 去获取文档的内容以及做其他操作。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -29924,44 +28252,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息。\n当 AI 表格使用文档类型作为主键字段时,可以通过此命令获取对应文档的 dentryUuid,\n进而利用该 uuid 去获取文档的内容以及做其他操作。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息,会返回对应的文档的dentryuuid,然后利用该uuid去获取文档的内容以及做其他操作" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息。\n当 AI 表格使用文档类型作为主键字段时,可以通过此命令获取对应文档的 dentryUuid,\n进而利用该 uuid 去获取文档的内容以及做其他操作。" }, "effect": { "candidates": [ @@ -30108,22 +28414,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取AI表格中主键即文档字段的文档ID" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取主键文档ID" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取AI表格中主键即文档字段的文档ID" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取AI表格中主键即文档字段的文档ID" + "source": "cobra_help", + "value": "获取主键文档ID" }, "use_when": { "candidates": [ @@ -30475,7 +28781,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取AI表格中主键即文档字段的文档ID", + "title": "获取主键文档ID", "use_when": [ "需要根据 baseId、tableId 和 recordId 获取主键文档对应的文档信息时。" ] @@ -30503,11 +28809,8 @@ "cli_name": "list", "cli_path": "aitable base list", "confirmation": "not_required", - "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", + "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 base get。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n\n注意: base list 仅返回最近访问过的 Base,不是全部 Base。\n新创建或未在钉钉前端打开过的 Base 可能不会出现在此列表中。\n如需按名称查找表格,请优先使用 base search 命令。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -30605,44 +28908,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 base get。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n\n注意: base list 仅返回最近访问过的 Base,不是全部 Base。\n新创建或未在钉钉前端打开过的 Base 可能不会出现在此列表中。\n如需按名称查找表格,请优先使用 base search 命令。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 base get。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n\n注意: base list 仅返回最近访问过的 Base,不是全部 Base。\n新创建或未在钉钉前端打开过的 Base 可能不会出现在此列表中。\n如需按名称查找表格,请优先使用 base search 命令。" }, "effect": { "candidates": [ @@ -30787,21 +29068,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取 AI 表格列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取 AI 表格列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取 AI 表格列表" }, "use_when": { @@ -31079,11 +29360,8 @@ "cli_name": "search", "cli_path": "aitable base search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", + "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 base get 等后续工具。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n不传关键词时返回最近访问的 Base 列表。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -31181,44 +29459,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 base get 等后续工具。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n不传关键词时返回最近访问的 Base 列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 base get 等后续工具。\nAI 表格访问地址可按 baseId 拼接为:https://alidocs.dingtalk.com/i/nodes/{baseId}\n不传关键词时返回最近访问的 Base 列表。" }, "effect": { "candidates": [ @@ -31365,21 +29621,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索 AI 表格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "搜索 AI 表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索 AI 表格" }, "use_when": { @@ -31646,9 +29902,6 @@ "confirmation": "not_required", "description": "更新 Base 名称(可选备注)。当前不支持修改主题、封面等扩展属性", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -31746,45 +29999,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新 Base 名称(可选备注)。当前不支持修改主题、封面等扩展属性" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新 Base 名称(可选备注)。当前不支持修改主题、封面等扩展属性" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新 Base 名称(可选备注)。当前不支持修改主题、封面等扩展属性" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -31928,21 +30159,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新 AI 表格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新 AI 表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新 AI 表格" }, "use_when": { @@ -32093,6 +30324,12 @@ "source": "cobra_usage", "value": "备注文本" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "备注文本" + }, { "precedence": "default", "selected": false, @@ -32108,16 +30345,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "description" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "source": "versioned_parameter_binding", + "value": "description" }, "required": { "candidates": [ @@ -32162,7 +30405,7 @@ "value": "string" } }, - "property": "desc", + "property": "description", "required": false, "type": "string" }, @@ -32177,6 +30420,12 @@ "source": "cobra_usage", "value": "新名称,1-50 字符 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "新名称,1-50 字符" + }, { "precedence": "default", "selected": false, @@ -32192,22 +30441,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newBaseName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newBaseName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -32218,9 +30479,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -32252,7 +30513,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "新名称,1-50 字符", + "property": "newBaseName", "required": true, "type": "string" } @@ -32291,11 +30553,8 @@ "cli_name": "create", "cli_path": "aitable chart create", "confirmation": "not_required", - "description": "在指定 dashboard 下创建 chart。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回新创建的 chart 详情。", + "description": "在指定 dashboard 下创建 chart。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求。\n--layout 为必填参数,指定图表在 dashboard 中的位置和大小(12 列网格布局)。\n\n布局说明:\n x/y 表示横纵坐标,w/h 表示宽度/高度,单位是列数或行数。\n 仪表盘是网格布局共 12 列、行数无限制。\n 同一行的图表保持高度一致,每行的图表宽度相加需要正好将整行填满。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -32393,44 +30652,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 dashboard 下创建 chart。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回新创建的 chart 详情。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 dashboard 下创建 chart。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求。\n--layout 为必填参数,指定图表在 dashboard 中的位置和大小(12 列网格布局)。\n\n布局说明:\n x/y 表示横纵坐标,w/h 表示宽度/高度,单位是列数或行数。\n 仪表盘是网格布局共 12 列、行数无限制。\n 同一行的图表保持高度一致,每行的图表宽度相加需要正好将整行填满。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 dashboard 下创建 chart。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回新创建的 chart 详情。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 dashboard 下创建 chart。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回新创建的 chart 详情。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定 dashboard 下创建 chart。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求。\n--layout 为必填参数,指定图表在 dashboard 中的位置和大小(12 列网格布局)。\n\n布局说明:\n x/y 表示横纵坐标,w/h 表示宽度/高度,单位是列数或行数。\n 仪表盘是网格布局共 12 列、行数无限制。\n 同一行的图表保持高度一致,每行的图表宽度相加需要正好将整行填满。" }, "effect": { "candidates": [ @@ -32575,22 +30812,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新图表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建图表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新图表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新图表" + "source": "cobra_help", + "value": "创建图表" }, "use_when": { "candidates": [ @@ -33075,7 +31312,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新图表", + "title": "创建图表", "use_when": [ "需要在指定仪表盘下创建图表时。" ] @@ -33210,21 +31447,21 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定 chart,并同步删除其在 dashboard 中对应的布局项。删除操作不可逆。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除指定 chart,并同步删除其在 dashboard 中对应的布局项。删除操作不可逆。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定 chart,并同步删除其在 dashboard 中对应的布局项。删除操作不可逆。" }, "effect": { @@ -33379,21 +31616,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除图表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除图表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除图表" }, "use_when": { @@ -33866,11 +32103,8 @@ "cli_name": "get", "cli_path": "aitable chart get", "confirmation": "not_required", - "description": "获取指定 chart 的详细信息。返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。", + "description": "获取指定 chart 的详细信息。\n返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。\n返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -33968,44 +32202,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 chart 的详细信息。返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 chart 的详细信息。\n返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。\n返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 chart 的详细信息。返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 chart 的详细信息。返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 chart 的详细信息。\n返回所属 dashboardId、chartName、chartType、widget.config 以及布局项。\n返回的 config 中 sheet 为该图表引用的数据表 tableId,view 为视图 viewId。" }, "effect": { "candidates": [ @@ -34150,21 +32362,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取图表信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取图表信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取图表信息" }, "use_when": { @@ -34545,11 +32757,8 @@ "cli_name": "get", "cli_path": "aitable chart share get", "confirmation": "not_required", - "description": "查询指定 chart 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。", + "description": "查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -34647,44 +32856,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定 chart 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定 chart 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定 chart 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。" }, "effect": { "candidates": [ @@ -34829,22 +33016,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取图表的分享配置" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取图表分享配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取图表的分享配置" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取图表的分享配置" + "source": "cobra_help", + "value": "获取图表分享配置" }, "use_when": { "candidates": [ @@ -35196,7 +33383,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取图表的分享配置", + "title": "获取图表分享配置", "use_when": [ "需要查询指定 chart 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接时。" ] @@ -35224,11 +33411,8 @@ "cli_name": "update", "cli_path": "aitable chart share update", "confirmation": "not_required", - "description": "用于开启或关闭指定 chart 的分享,并设置分享类型。\\nenabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。\\nshareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。\\n返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。", + "description": "开启/关闭 chart 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -35326,44 +33510,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用于开启或关闭指定 chart 的分享,并设置分享类型。\\nenabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。\\nshareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。\\n返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "开启/关闭 chart 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用于开启或关闭指定 chart 的分享,并设置分享类型。\\nenabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。\\nshareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。\\n返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用于开启或关闭指定 chart 的分享,并设置分享类型。\\nenabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。\\nshareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。\\n返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "开启/关闭 chart 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。" }, "effect": { "candidates": [ @@ -35508,22 +33670,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新图表分享配置(开启或关闭或更新配置)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新图表分享配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新图表分享配置(开启或关闭或更新配置)" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新图表分享配置(开启或关闭或更新配置)" + "source": "cobra_help", + "value": "更新图表分享配置" }, "use_when": { "candidates": [ @@ -36181,7 +34343,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新图表分享配置(开启或关闭或更新配置)", + "title": "更新图表分享配置", "use_when": [ "需要开启/关闭 chart 分享并可设置分享类型时。" ] @@ -36209,11 +34371,8 @@ "cli_name": "update", "cli_path": "aitable chart update", "confirmation": "not_required", - "description": "更新指定 chart 的配置或布局。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回更新后的 chart 详情。", + "description": "更新指定 chart 的配置或布局。\n--config 为必填参数,即使只想改布局也要带上完整的图表配置(服务端会拒绝缺 config 的请求,\n空对象 {} 同样被拒,至少要包含 chartName)。--layout 可选,仅调整位置/大小时追加。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求,\n或先用 chart get 拿到当前 config 再改。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -36311,44 +34470,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定 chart 的配置或布局。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回更新后的 chart 详情。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定 chart 的配置或布局。\n--config 为必填参数,即使只想改布局也要带上完整的图表配置(服务端会拒绝缺 config 的请求,\n空对象 {} 同样被拒,至少要包含 chartName)。--layout 可选,仅调整位置/大小时追加。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求,\n或先用 chart get 拿到当前 config 再改。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定 chart 的配置或布局。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回更新后的 chart 详情。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定 chart 的配置或布局。调用前必须先调用 get_dashboard_widgets_example 了解 config 入参结构和要求。返回更新后的 chart 详情。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定 chart 的配置或布局。\n--config 为必填参数,即使只想改布局也要带上完整的图表配置(服务端会拒绝缺 config 的请求,\n空对象 {} 同样被拒,至少要包含 chartName)。--layout 可选,仅调整位置/大小时追加。\n调用前建议先调用 chart widgets-example 了解 --config 入参结构和要求,\n或先用 chart get 拿到当前 config 再改。" }, "effect": { "candidates": [ @@ -36493,21 +34630,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新图表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新图表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新图表" }, "use_when": { @@ -37125,11 +35262,8 @@ "cli_name": "widgets-example", "cli_path": "aitable chart widgets-example", "confirmation": "not_required", - "description": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_chart / update_chart 的 config 参数结构参考,根据目标图表类型选取对应示例。", + "description": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 chart create / chart update 的 --config 参数结构参考,根据目标图表类型选取对应示例。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -37227,44 +35361,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_chart / update_chart 的 config 参数结构参考,根据目标图表类型选取对应示例。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 chart create / chart update 的 --config 参数结构参考,根据目标图表类型选取对应示例。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_chart / update_chart 的 config 参数结构参考,根据目标图表类型选取对应示例。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_chart / update_chart 的 config 参数结构参考,根据目标图表类型选取对应示例。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "返回所有图表类型的 widget config 示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 chart create / chart update 的 --config 参数结构参考,根据目标图表类型选取对应示例。" }, "effect": { "candidates": [ @@ -37409,21 +35521,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取图表配置示例" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取图表配置示例" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取图表配置示例" }, "use_when": { @@ -37494,9 +35606,6 @@ "confirmation": "not_required", "description": "创建一个新的 AI 表格 Base。\n这是 dws aitable base create 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -37588,39 +35697,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建一个新的 AI 表格 Base。\n这是 dws aitable base create 的便捷别名,两个命令完全等价。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建一个新的 AI 表格 Base。\n这是 dws aitable base create 的便捷别名,两个命令完全等价。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -37747,13 +35834,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建 AI 表格(dws aitable base create 的别名)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建 AI 表格(dws aitable base create 的别名)" @@ -37900,16 +35987,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "baseName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "baseName" }, "required": { "candidates": [ @@ -37960,7 +36053,7 @@ "value": "string" } }, - "property": "name", + "property": "baseName", "required": true, "type": "string" }, @@ -38088,11 +36181,8 @@ "cli_name": "arrange", "cli_path": "aitable dashboard arrange", "confirmation": "not_required", - "description": "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。根据仪表盘的网格列数(schemaVersion 为 2 时为 48 列,其他情况为 12 列),自动将 y 坐标相近的图表归为同一行,统一同行图表高度,按比例缩放宽度使每行精确填满全列,紧凑排列消除行间空隙,消除底部参差不齐。返回对齐后的完整布局信息。", + "description": "对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白。\n仪表盘网格总列数 totalColumns 通常是 12 或 48;返回字段 alignedChartCount 表示本次重排涉及的图表数。\n\n返回 data: {baseId, dashboardId, totalColumns, alignedChartCount, layout: [...]}。\nlayout 数组里每项含图表的新位置(row/col/width/height)。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -38190,44 +36280,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。根据仪表盘的网格列数(schemaVersion 为 2 时为 48 列,其他情况为 12 列),自动将 y 坐标相近的图表归为同一行,统一同行图表高度,按比例缩放宽度使每行精确填满全列,紧凑排列消除行间空隙,消除底部参差不齐。返回对齐后的完整布局信息。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白。\n仪表盘网格总列数 totalColumns 通常是 12 或 48;返回字段 alignedChartCount 表示本次重排涉及的图表数。\n\n返回 data: {baseId, dashboardId, totalColumns, alignedChartCount, layout: [...]}。\nlayout 数组里每项含图表的新位置(row/col/width/height)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。根据仪表盘的网格列数(schemaVersion 为 2 时为 48 列,其他情况为 12 列),自动将 y 坐标相近的图表归为同一行,统一同行图表高度,按比例缩放宽度使每行精确填满全列,紧凑排列消除行间空隙,消除底部参差不齐。返回对齐后的完整布局信息。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "自动对齐仪表盘中的图表布局,对错乱的图表进行全局重排。根据仪表盘的网格列数(schemaVersion 为 2 时为 48 列,其他情况为 12 列),自动将 y 坐标相近的图表归为同一行,统一同行图表高度,按比例缩放宽度使每行精确填满全列,紧凑排列消除行间空隙,消除底部参差不齐。返回对齐后的完整布局信息。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白。\n仪表盘网格总列数 totalColumns 通常是 12 或 48;返回字段 alignedChartCount 表示本次重排涉及的图表数。\n\n返回 data: {baseId, dashboardId, totalColumns, alignedChartCount, layout: [...]}。\nlayout 数组里每项含图表的新位置(row/col/width/height)。" }, "effect": { "candidates": [ @@ -38374,22 +36442,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "自动对齐仪表盘布局" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "自动重排仪表盘图表布局" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "自动对齐仪表盘布局" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "自动对齐仪表盘布局" + "source": "cobra_help", + "value": "自动重排仪表盘图表布局" }, "use_when": { "candidates": [ @@ -38638,7 +36706,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "自动对齐仪表盘布局", + "title": "自动重排仪表盘图表布局", "use_when": [ "需要对指定仪表盘做服务端智能布局:把图表按行铺满网格,避免某行只占半幅、留下大片空白时。" ] @@ -38667,11 +36735,8 @@ "cli_name": "config-example", "cli_path": "aitable dashboard config-example", "confirmation": "not_required", - "description": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_dashboard / update_dashboard 的 config 参数结构参考。", + "description": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 dashboard create / dashboard update 的 --config 参数结构参考。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -38769,44 +36834,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_dashboard / update_dashboard 的 config 参数结构参考。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 dashboard create / dashboard update 的 --config 参数结构参考。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_dashboard / update_dashboard 的 config 参数结构参考。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束,请直接阅读理解)。可作为 create_dashboard / update_dashboard 的 config 参数结构参考。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "返回 dashboard config 的完整结构示例(JSONC 格式,含注释说明每个字段的含义和约束)。\n可作为 dashboard create / dashboard update 的 --config 参数结构参考。" }, "effect": { "candidates": [ @@ -38951,21 +36994,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取仪表盘配置示例" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取仪表盘配置示例" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取仪表盘配置示例" }, "use_when": { @@ -39035,11 +37078,8 @@ "cli_name": "create", "cli_path": "aitable dashboard create", "confirmation": "not_required", - "description": "在指定 Base 下创建 dashboard。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回新创建的 dashboard 详情。", + "description": "在指定 Base 下创建 dashboard。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n返回新创建的 dashboard 详情。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -39137,44 +37177,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 Base 下创建 dashboard。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回新创建的 dashboard 详情。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 Base 下创建 dashboard。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n返回新创建的 dashboard 详情。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 Base 下创建 dashboard。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回新创建的 dashboard 详情。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 Base 下创建 dashboard。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回新创建的 dashboard 详情。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定 Base 下创建 dashboard。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n返回新创建的 dashboard 详情。" }, "effect": { "candidates": [ @@ -39321,21 +37339,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建仪表盘" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建仪表盘" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建仪表盘" }, "use_when": { @@ -39613,16 +37631,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.name" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "config.name" }, "required": { "candidates": [ @@ -39673,7 +37697,7 @@ "value": "string" } }, - "property": "name", + "property": "config.name", "required": true, "type": "string" } @@ -39819,21 +37843,21 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定 dashboard,会级联删除该 dashboard 下的所有 chart;删除操作不可逆。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除指定 dashboard,会级联删除该 dashboard 下的所有 chart;删除操作不可逆。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定 dashboard,会级联删除该 dashboard 下的所有 chart;删除操作不可逆。" }, "effect": { @@ -39988,21 +38012,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除仪表盘" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除仪表盘" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除仪表盘" }, "use_when": { @@ -40372,11 +38396,8 @@ "cli_name": "get", "cli_path": "aitable dashboard get", "confirmation": "not_required", - "description": "获取指定 dashboard 的详细信息。\\r\\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。", + "description": "获取指定 dashboard 的详细信息。\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -40474,44 +38495,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 dashboard 的详细信息。\\r\\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 dashboard 的详细信息。\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 dashboard 的详细信息。\\r\\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 dashboard 的详细信息。\\r\\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 dashboard 的详细信息。\n返回 dashboardName、filters、layout,以及该 dashboard 下的 charts summary(chartId、chartName、chartType)。" }, "effect": { "candidates": [ @@ -40656,21 +38655,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取仪表盘信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取仪表盘信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取仪表盘信息" }, "use_when": { @@ -40948,11 +38947,8 @@ "cli_name": "get", "cli_path": "aitable dashboard share get", "confirmation": "not_required", - "description": "查询指定 dashboard 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。", + "description": "查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -41050,44 +39046,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定 dashboard 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定 dashboard 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定 dashboard 的当前分享配置。返回分享是否已开启(enabled)、分享类型(shareType:PUBLIC / ORG)、分享链接(shareUrl)等信息。若分享尚未开启,enabled 为 false,shareUrl 为 null。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接。" }, "effect": { "candidates": [ @@ -41232,22 +39206,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询仪表盘分享配置" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取仪表盘分享配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询仪表盘分享配置" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询仪表盘分享配置" + "source": "cobra_help", + "value": "获取仪表盘分享配置" }, "use_when": { "candidates": [ @@ -41496,7 +39470,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询仪表盘分享配置", + "title": "获取仪表盘分享配置", "use_when": [ "需要查询指定 dashboard 的分享配置,返回是否开启、分享类型(PUBLIC/ORG)以及分享链接时。" ] @@ -41524,11 +39498,8 @@ "cli_name": "update", "cli_path": "aitable dashboard share update", "confirmation": "not_required", - "description": "用于开启或关闭指定 dashboard 的分享,并设置分享类型。enabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。shareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。", + "description": "开启/关闭 dashboard 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -41626,44 +39597,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用于开启或关闭指定 dashboard 的分享,并设置分享类型。enabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。shareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "开启/关闭 dashboard 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用于开启或关闭指定 dashboard 的分享,并设置分享类型。enabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。shareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用于开启或关闭指定 dashboard 的分享,并设置分享类型。enabled=true 时开启分享;enabled=false 时关闭分享(shareType 此时无意义)。shareType 支持两种:PUBLIC(任何人均可访问)、ORG(仅限当前组织成员访问)。返回更新后的分享配置,包括 shareUrl(可直接发送给他人)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "开启/关闭 dashboard 分享并可设置分享类型。\n--enabled=true 表示开启分享,--enabled=false 表示关闭分享;\n--share-type 仅在开启时生效,可选 PUBLIC 或 ORG。" }, "effect": { "candidates": [ @@ -41808,22 +39757,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置仪表盘分享配置(开启或关闭或更新配置)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新仪表盘分享配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置仪表盘分享配置(开启或关闭或更新配置)" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置仪表盘分享配置(开启或关闭或更新配置)" + "source": "cobra_help", + "value": "更新仪表盘分享配置" }, "use_when": { "candidates": [ @@ -42378,7 +40327,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置仪表盘分享配置(开启或关闭或更新配置)", + "title": "更新仪表盘分享配置", "use_when": [ "需要开启/关闭 dashboard 分享并可设置分享类型时。" ] @@ -42405,11 +40354,8 @@ "cli_name": "update", "cli_path": "aitable dashboard update", "confirmation": "not_required", - "description": "更新指定 dashboard 的配置。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回更新后的 dashboard 详情。", + "description": "更新指定 dashboard 的配置。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n传入需要更新的字段,未传入的字段保持原值。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -42507,44 +40453,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定 dashboard 的配置。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回更新后的 dashboard 详情。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定 dashboard 的配置。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n传入需要更新的字段,未传入的字段保持原值。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定 dashboard 的配置。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回更新后的 dashboard 详情。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定 dashboard 的配置。调用前必须先调用 get_dashboard_config_example 了解 config 入参结构和要求。返回更新后的 dashboard 详情。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定 dashboard 的配置。\n调用前建议先调用 dashboard config-example 了解 --config 入参结构和要求。\n传入需要更新的字段,未传入的字段保持原值。" }, "effect": { "candidates": [ @@ -42691,21 +40615,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新仪表盘" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新仪表盘" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新仪表盘" }, "use_when": { @@ -43086,16 +41010,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.name" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "config.name" }, "required": { "candidates": [ @@ -43146,7 +41076,7 @@ "value": "string" } }, - "property": "name", + "property": "config.name", "required": true, "type": "string" } @@ -43185,15 +41115,48 @@ "cli_name": "data", "cli_path": "aitable export data", "confirmation": "not_required", - "description": "导出 AI 表格数据的统一入口。\r\n不传 taskId 时,会根据 scope / format 创建一个新的导出任务,并在 timeoutMs 时间内同步等待结果;若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\r\n传入 taskId 时,不会重新创建任务,而是继续等待该任务;若仍未完成,则继续返回同一个 taskId,供下一次调用继续等待。\r\n当前稳定支持的 scope:all、table、view;暂不开放按字段导出。\r\n当前稳定支持的 format:excel、attachment、excel_and_attachment、excel_with_inline_images。", - "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" + "constraints": { + "mutually_exclusive": [ + [ + "task-id", + "scope" + ], + [ + "task-id", + "export-format" + ], + [ + "task-id", + "table-id" + ], + [ + "task-id", + "view-id" + ] + ], + "require_one_of": [ + [ + "scope", + "task-id" + ], + [ + "export-format", + "task-id" + ] + ], + "require_together": [ + [ + "scope", + "export-format" + ] + ] }, + "description": "导出 AI 表格数据的统一入口。\n不传 --task-id 时,根据 --scope / --export-format 创建新的导出任务,并同步等待结果;\n若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\n传入 --task-id 时,继续等待该任务,不会重新创建。\n\nscope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nexport-format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。", + "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", "examples": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ], "field_provenance": { "agent_summary": { @@ -43287,44 +41250,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "导出 AI 表格数据的统一入口。\r\n不传 taskId 时,会根据 scope / format 创建一个新的导出任务,并在 timeoutMs 时间内同步等待结果;若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\r\n传入 taskId 时,不会重新创建任务,而是继续等待该任务;若仍未完成,则继续返回同一个 taskId,供下一次调用继续等待。\r\n当前稳定支持的 scope:all、table、view;暂不开放按字段导出。\r\n当前稳定支持的 format:excel、attachment、excel_and_attachment、excel_with_inline_images。" + "source": "cobra_help", + "value": "导出 AI 表格数据的统一入口。\n不传 --task-id 时,根据 --scope / --export-format 创建新的导出任务,并同步等待结果;\n若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\n传入 --task-id 时,继续等待该任务,不会重新创建。\n\nscope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nexport-format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", - "value": "导出 AI 表格数据的统一入口。\n不传 --task-id 时,根据 --scope / --format 创建新的导出任务,并同步等待结果;\n若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\n传入 --task-id 时,继续等待该任务,不会重新创建。\n\nscope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nformat 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。" + "source": "mcp_metadata", + "value": "导出 AI 表格数据的统一入口。\r\n不传 taskId 时,会根据 scope / format 创建一个新的导出任务,并在 timeoutMs 时间内同步等待结果;若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\r\n传入 taskId 时,不会重新创建任务,而是继续等待该任务;若仍未完成,则继续返回同一个 taskId,供下一次调用继续等待。\r\n当前稳定支持的 scope:all、table、view;暂不开放按字段导出。\r\n当前稳定支持的 format:excel、attachment、excel_and_attachment、excel_with_inline_images。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "导出 AI 表格数据的统一入口。\r\n不传 taskId 时,会根据 scope / format 创建一个新的导出任务,并在 timeoutMs 时间内同步等待结果;若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\r\n传入 taskId 时,不会重新创建任务,而是继续等待该任务;若仍未完成,则继续返回同一个 taskId,供下一次调用继续等待。\r\n当前稳定支持的 scope:all、table、view;暂不开放按字段导出。\r\n当前稳定支持的 format:excel、attachment、excel_and_attachment、excel_with_inline_images。" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "source": "cobra_help", + "value": "导出 AI 表格数据的统一入口。\n不传 --task-id 时,根据 --scope / --export-format 创建新的导出任务,并同步等待结果;\n若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。\n传入 --task-id 时,继续等待该任务,不会重新创建。\n\nscope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nexport-format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。" }, "effect": { "candidates": [ @@ -43348,7 +41289,7 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ] } ], @@ -43357,7 +41298,7 @@ "review_reason": "AI 语义审阅:依据 Registry 主路径、Cobra help 与 AITable 参考文档明确命令选择边界并校验示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ] }, "idempotency": { @@ -43469,21 +41410,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "导出数据" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "导出数据" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "导出数据" }, "use_when": { @@ -43623,8 +41564,14 @@ "required": true, "type": "string" }, - "format": { + "export-format": { "description": "导出格式:excel、attachment、excel_and_attachment、excel_with_inline_images", + "enum": [ + "excel", + "attachment", + "excel_and_attachment", + "excel_with_inline_images" + ], "field_provenance": { "description": { "candidates": [ @@ -43652,32 +41599,74 @@ "source": "cobra_usage", "value": "导出格式:excel、attachment、excel_and_attachment、excel_with_inline_images" }, + "enum": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": [ + "excel", + "attachment", + "excel_and_attachment", + "excel_with_inline_images" + ] + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": [] + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": [ + "excel", + "attachment", + "excel_and_attachment", + "excel_with_inline_images" + ] + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, - "source": "flag_name_inference", + "source": "versioned_parameter_binding", "value": "format" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "exportFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", + "source": "versioned_parameter_binding", "value": "format" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -43716,6 +41705,11 @@ }, "scope": { "description": "导出范围:all(整个 Base)、table(指定数据表)、view(指定视图)", + "enum": [ + "all", + "table", + "view" + ], "field_provenance": { "description": { "candidates": [ @@ -43743,6 +41737,34 @@ "source": "cobra_usage", "value": "导出范围:all(整个 Base)、table(指定数据表)、view(指定视图)" }, + "enum": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": [ + "all", + "table", + "view" + ] + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": [] + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": [ + "all", + "table", + "view" + ] + }, "property": { "candidates": [ { @@ -43760,10 +41782,10 @@ "required": { "candidates": [ { - "precedence": "tool_schema_hint", + "precedence": "command_constraint", "selected": true, - "source": "tool_schema_hint", - "value": true + "source": "require_one_of_constraint", + "value": false }, { "precedence": "default", @@ -43772,10 +41794,10 @@ "value": false } ], - "precedence": "tool_schema_hint", + "precedence": "command_constraint", "resolution": "highest_precedence", - "source": "tool_schema_hint", - "value": true + "source": "require_one_of_constraint", + "value": false }, "required_when": { "candidates": [ @@ -43808,7 +41830,7 @@ }, "interface_description": "可选,导出范围。创建新任务时必填。\n支持值:all(整个 Base)、table(指定数据表)、view(指定视图)。\nscope=table 时必须传 tableId;scope=view 时必须传 tableId 和 viewId。", "property": "scope", - "required": true, + "required": false, "type": "string" }, "table-id": { @@ -43871,16 +41893,22 @@ "required_when": { "candidates": [ { - "precedence": "default", + "precedence": "typed_metadata", "selected": true, + "source": "typed_parameter_metadata", + "value": "scope is table or view" + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": "" } ], - "precedence": "default", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "source": "default", - "value": "" + "source": "typed_parameter_metadata", + "value": "scope is table or view" }, "type": { "candidates": [ @@ -43900,10 +41928,11 @@ "interface_description": "可选,Table ID。scope=table 或 scope=view 时必填;可通过 get_base 获取。", "property": "tableId", "required": false, + "required_when": "scope is table or view", "type": "string" }, "task-id": { - "description": "已有导出任务 ID,传入后继续等待(忽略 scope/format/table-id/view-id)", + "description": "已有导出任务 ID,传入后继续等待(不要同时提供 scope/export-format/table-id/view-id)", "field_provenance": { "description": { "candidates": [ @@ -43911,7 +41940,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "已有导出任务 ID,传入后继续等待(忽略 scope/format/table-id/view-id)" + "value": "已有导出任务 ID,传入后继续等待(不要同时提供 scope/export-format/table-id/view-id)" }, { "precedence": "mcp_metadata", @@ -43929,7 +41958,7 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "已有导出任务 ID,传入后继续等待(忽略 scope/format/table-id/view-id)" + "value": "已有导出任务 ID,传入后继续等待(不要同时提供 scope/export-format/table-id/view-id)" }, "property": { "candidates": [ @@ -43948,15 +41977,21 @@ "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -44171,16 +42206,22 @@ "required_when": { "candidates": [ { - "precedence": "default", + "precedence": "typed_metadata", "selected": true, + "source": "typed_parameter_metadata", + "value": "scope is view" + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": "" } ], - "precedence": "default", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "source": "default", - "value": "" + "source": "typed_parameter_metadata", + "value": "scope is view" }, "type": { "candidates": [ @@ -44200,6 +42241,7 @@ "interface_description": "可选,View ID。scope=view 时必填;可通过 list_views 或 get_views 获取。", "property": "viewId", "required": false, + "required_when": "scope is view", "type": "string" } }, @@ -44237,11 +42279,8 @@ "cli_name": "create", "cli_path": "aitable field create", "confirmation": "not_required", - "description": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。单次最多创建 15 个字段;若超过该数量,请拆分多次调用。允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。", + "description": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。\n单次最多创建 15 个字段;若超过该数量,请拆分多次调用。\n允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。\n系统会按数组顺序依次创建,返回结果顺序与入参保持一致,并逐项标明成功/失败状态。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型(参考见 table create --help),新增类型包括 address(行政区域)、filterUp(查找引用)、lookup(关联引用)\n config(可选): 字段配置(参考见 table create --help)\n aiConfig(可选): AI 字段配置,传入后表示创建 AI 字段。\n - outputType(必填): text|select|multiSelect|number|currency|image|video\n - prompt(必填): [{\"type\":\"text\",\"value\":\"...\"}, {\"type\":\"fieldRef\",\"fieldId\":\"...\"}]\n - imageConfig(可选): outputType=image 时可用,配置 resolution 和 aiGeneratedWatermark\n - videoConfig(可选): outputType=video 时可用,配置 aspectRatio、resolution、duration\n - autoRecompute(可选): 引用字段变化后是否自动重算\n - enableThinking(可选): 是否启用深度思考\n - enableWebSearch(可选): 是否启用联网搜索", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -44339,44 +42378,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。单次最多创建 15 个字段;若超过该数量,请拆分多次调用。允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。\n单次最多创建 15 个字段;若超过该数量,请拆分多次调用。\n允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。\n系统会按数组顺序依次创建,返回结果顺序与入参保持一致,并逐项标明成功/失败状态。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型(参考见 table create --help),新增类型包括 address(行政区域)、filterUp(查找引用)、lookup(关联引用)\n config(可选): 字段配置(参考见 table create --help)\n aiConfig(可选): AI 字段配置,传入后表示创建 AI 字段。\n - outputType(必填): text|select|multiSelect|number|currency|image|video\n - prompt(必填): [{\"type\":\"text\",\"value\":\"...\"}, {\"type\":\"fieldRef\",\"fieldId\":\"...\"}]\n - imageConfig(可选): outputType=image 时可用,配置 resolution 和 aiGeneratedWatermark\n - videoConfig(可选): outputType=video 时可用,配置 aspectRatio、resolution、duration\n - autoRecompute(可选): 引用字段变化后是否自动重算\n - enableThinking(可选): 是否启用深度思考\n - enableWebSearch(可选): 是否启用联网搜索" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。单次最多创建 15 个字段;若超过该数量,请拆分多次调用。允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。单次最多创建 15 个字段;若超过该数量,请拆分多次调用。允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在已有表格中批量新增字段。适用于建表后补充一批字段,或一次性添加多个关联、流转等复杂类型字段。\n单次最多创建 15 个字段;若超过该数量,请拆分多次调用。\n允许部分成功,返回结果会逐项说明每个字段是否创建成功;失败项会返回 reason 说明失败原因。\n系统会按数组顺序依次创建,返回结果顺序与入参保持一致,并逐项标明成功/失败状态。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型(参考见 table create --help),新增类型包括 address(行政区域)、filterUp(查找引用)、lookup(关联引用)\n config(可选): 字段配置(参考见 table create --help)\n aiConfig(可选): AI 字段配置,传入后表示创建 AI 字段。\n - outputType(必填): text|select|multiSelect|number|currency|image|video\n - prompt(必填): [{\"type\":\"text\",\"value\":\"...\"}, {\"type\":\"fieldRef\",\"fieldId\":\"...\"}]\n - imageConfig(可选): outputType=image 时可用,配置 resolution 和 aiGeneratedWatermark\n - videoConfig(可选): outputType=video 时可用,配置 aspectRatio、resolution、duration\n - autoRecompute(可选): 引用字段变化后是否自动重算\n - enableThinking(可选): 是否启用深度思考\n - enableWebSearch(可选): 是否启用联网搜索" }, "effect": { "candidates": [ @@ -44523,22 +42540,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_fields" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建字段" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_fields" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_fields" + "source": "cobra_help", + "value": "创建字段" }, "use_when": { "candidates": [ @@ -44600,16 +42617,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Conditional aggregate wrapper: --ai-config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].aiConfig, so this flag has no unconditional one-to-one RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "aiConfig" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "aiConfig" + "review_reason": "Conditional aggregate wrapper: --ai-config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].aiConfig, so this flag has no unconditional one-to-one RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -44654,7 +42679,6 @@ "value": "string" } }, - "property": "aiConfig", "required": false, "type": "string" }, @@ -44787,16 +42811,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Conditional aggregate wrapper: --config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].config (and may merge --options), so this flag has no unconditional one-to-one RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "config" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "config" + "review_reason": "Conditional aggregate wrapper: --config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].config (and may merge --options), so this flag has no unconditional one-to-one RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -44841,7 +42873,6 @@ "value": "string" } }, - "property": "config", "required": false, "type": "string" }, @@ -44995,16 +43026,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Conditional aggregate wrapper: --name is ignored when --fields is supplied and otherwise becomes fields[0].fieldName only together with --type; it is not an unconditional direct create_fields parameter.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Conditional aggregate wrapper: --name is ignored when --fields is supplied and otherwise becomes fields[0].fieldName only together with --type; it is not an unconditional direct create_fields parameter.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -45049,7 +43088,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -45182,16 +43220,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Conditional aggregate wrapper: --type is ignored when --fields is supplied and otherwise becomes fields[0].type only together with --name; it is not an unconditional direct create_fields parameter.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Conditional aggregate wrapper: --type is ignored when --fields is supplied and otherwise becomes fields[0].type only together with --name; it is not an unconditional direct create_fields parameter.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -45236,7 +43282,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" } @@ -45247,7 +43292,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_fields", + "title": "创建字段", "use_when": [ "需要在已有表格中批量新增字段时。" ] @@ -45277,7 +43322,7 @@ "cli_name": "delete", "cli_path": "aitable field delete", "confirmation": "user_required", - "description": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\r\n\r\n此操作不可逆,会永久删除字段及其所有数据。\r\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\r\n若字段不存在或无权限,将返回错误。", + "description": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\n\n此操作不可逆,会永久删除字段及其所有数据。\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\n若字段不存在或无权限,将返回错误。", "display": "AI 表格操作", "effect": "destructive", "effect_source": "skill-explicit", @@ -45383,22 +43428,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\r\n\r\n此操作不可逆,会永久删除字段及其所有数据。\r\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\r\n若字段不存在或无权限,将返回错误。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\n\n此操作不可逆,会永久删除字段及其所有数据。\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\n若字段不存在或无权限,将返回错误。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\r\n\r\n此操作不可逆,会永久删除字段及其所有数据。\r\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\r\n若字段不存在或无权限,将返回错误。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\r\n\r\n此操作不可逆,会永久删除字段及其所有数据。\r\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\r\n若字段不存在或无权限,将返回错误。" + "source": "cobra_help", + "value": "删除指定 Table 中的一个字段(Field),删除操作不可逆。禁止删除主字段,且禁止删除最后一个字段\n\n此操作不可逆,会永久删除字段及其所有数据。\n必须提供准确的 baseId、tableId 和 fieldId,不得使用名称代替 ID。\n若字段不存在或无权限,将返回错误。" }, "effect": { "candidates": [ @@ -45552,21 +43597,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除字段" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除字段" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除字段" }, "use_when": { @@ -45948,11 +43993,8 @@ "cli_name": "get", "cli_path": "aitable field get", "confirmation": "not_required", - "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。", + "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项等)。\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\n适用于在 table get 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 table get 返回值。\n\n必填参数:\n--table-id (必填):表格 ID,必须先通过 dws aitable table get --base-id \u003cbaseId\u003e 获取 tableId\n--base-id (必填):Base ID,可通过 dws aitable base list 或 dws aitable base search 获取", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -46050,44 +44092,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项等)。\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\n适用于在 table get 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 table get 返回值。\n\n必填参数:\n--table-id (必填):表格 ID,必须先通过 dws aitable table get --base-id \u003cbaseId\u003e 获取 tableId\n--base-id (必填):Base ID,可通过 dws aitable base list 或 dws aitable base search 获取" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项等)。\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\n适用于在 table get 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 table get 返回值。\n\n必填参数:\n--table-id (必填):表格 ID,必须先通过 dws aitable table get --base-id \u003cbaseId\u003e 获取 tableId\n--base-id (必填):Base ID,可通过 dws aitable base list 或 dws aitable base search 获取" }, "effect": { "candidates": [ @@ -46232,21 +44252,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取字段详情" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取字段详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取字段详情" }, "use_when": { @@ -46635,11 +44655,8 @@ "cli_name": "list", "cli_path": "aitable field list", "confirmation": "not_required", - "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。", + "description": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置。\n这是 dws aitable field get 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -46737,44 +44754,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置。\n这是 dws aitable field get 的便捷别名,两个命令完全等价。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置(如格式化、选项、AI 配置等)。\r\n传 fieldIds 时单次最多获取 10 个字段;若需更多字段,请拆分多次调用。\r\n适用于在 get_tables 拿到字段目录后,按需展开少量字段的完整配置,避免大 options 字段放大 get_tables 返回值。\r\nAI 字段的返回结果中,config 仅包含字段物理配置,aiConfig 作为同级字段单独返回,结构与 create_fields 写入参数一致。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取指定字段的详细信息,包括 fieldId、名称、类型、description 以及类型相关完整配置。\n这是 dws aitable field get 的便捷别名,两个命令完全等价。" }, "effect": { "candidates": [ @@ -46921,22 +44916,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取字段详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取字段信息(dws aitable field get 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取字段详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取字段详情" + "source": "cobra_help", + "value": "获取字段信息(dws aitable field get 的别名)" }, "use_when": { "candidates": [ @@ -47297,7 +45292,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取字段详情", + "title": "获取字段信息(dws aitable field get 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable field list 兼容路径时。" ] @@ -47324,11 +45319,8 @@ "cli_name": "search-options", "cli_path": "aitable field search-options", "confirmation": "not_required", - "description": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\r\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\r\n不传 keyword 时返回该字段全部 options。\r\n适用于 options 较多时按关键词缩小范围,避免通过 get_fields 拉取完整字段配置。", + "description": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\n不传 --keyword 时返回该字段全部 options。\n适用于 options 较多时按关键词缩小范围,避免通过 field get 拉取完整字段配置。\n若需读取字段的完整配置(含 options 之外的属性),请使用 field get。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -47426,44 +45418,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\r\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\r\n不传 keyword 时返回该字段全部 options。\r\n适用于 options 较多时按关键词缩小范围,避免通过 get_fields 拉取完整字段配置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\n不传 --keyword 时返回该字段全部 options。\n适用于 options 较多时按关键词缩小范围,避免通过 field get 拉取完整字段配置。\n若需读取字段的完整配置(含 options 之外的属性),请使用 field get。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\r\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\r\n不传 keyword 时返回该字段全部 options。\r\n适用于 options 较多时按关键词缩小范围,避免通过 get_fields 拉取完整字段配置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\r\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\r\n不传 keyword 时返回该字段全部 options。\r\n适用于 options 较多时按关键词缩小范围,避免通过 get_fields 拉取完整字段配置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)。\n目标字段必须是 singleSelect 或 multipleSelect 类型,否则返回错误。\n不传 --keyword 时返回该字段全部 options。\n适用于 options 较多时按关键词缩小范围,避免通过 field get 拉取完整字段配置。\n若需读取字段的完整配置(含 options 之外的属性),请使用 field get。" }, "effect": { "candidates": [ @@ -47610,22 +45580,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索字段选项" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索单选/多选字段的选项" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索字段选项" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索字段选项" + "source": "cobra_help", + "value": "搜索单选/多选字段的选项" }, "use_when": { "candidates": [ @@ -48186,7 +46156,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索字段选项", + "title": "搜索单选/多选字段的选项", "use_when": [ "需要搜索指定单选/多选字段的 options 列表,支持按关键词模糊匹配(大小写不敏感、contains 模式)时。" ] @@ -48215,11 +46185,17 @@ "cli_name": "update", "cli_path": "aitable field update", "confirmation": "not_required", - "description": "更新指定字段的名称或配置。不可变更字段类型(type 不可修改)。\r\nnewFieldName、config、aiConfig 至少传入一项", - "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" + "constraints": { + "require_one_of": [ + [ + "name", + "config", + "ai-config" + ] + ] }, + "description": "更新指定字段的名称、字段配置或 AI 配置。不可变更字段类型(type 不可修改)。\nnewFieldName、config、aiConfig 至少传入一项。\n\n注意:更新 singleSelect/multipleSelect 的 options 时,需传入完整列表(含已有选项),\n系统以新列表整体覆盖,不是追加。为避免已有单元格因 option id 变化而丢数据,\n更新时已有选项应尽量回传原 id;新增选项无需传 id。\n如果请求中传入的 option id 在当前字段配置中不存在,系统会丢弃该 id,并按新增选项处理;\n若 id 合法但 name 改了,属于正常更新,会保留该 id。", + "display": "AI 表格操作", "effect": "write", "effect_source": "command-verb", "examples": [ @@ -48317,44 +46293,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定字段的名称或配置。不可变更字段类型(type 不可修改)。\r\nnewFieldName、config、aiConfig 至少传入一项" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定字段的名称、字段配置或 AI 配置。不可变更字段类型(type 不可修改)。\nnewFieldName、config、aiConfig 至少传入一项。\n\n注意:更新 singleSelect/multipleSelect 的 options 时,需传入完整列表(含已有选项),\n系统以新列表整体覆盖,不是追加。为避免已有单元格因 option id 变化而丢数据,\n更新时已有选项应尽量回传原 id;新增选项无需传 id。\n如果请求中传入的 option id 在当前字段配置中不存在,系统会丢弃该 id,并按新增选项处理;\n若 id 合法但 name 改了,属于正常更新,会保留该 id。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定字段的名称或配置。不可变更字段类型(type 不可修改)。\r\nnewFieldName、config、aiConfig 至少传入一项" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定字段的名称或配置。不可变更字段类型(type 不可修改)。\r\nnewFieldName、config、aiConfig 至少传入一项" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定字段的名称、字段配置或 AI 配置。不可变更字段类型(type 不可修改)。\nnewFieldName、config、aiConfig 至少传入一项。\n\n注意:更新 singleSelect/multipleSelect 的 options 时,需传入完整列表(含已有选项),\n系统以新列表整体覆盖,不是追加。为避免已有单元格因 option id 变化而丢数据,\n更新时已有选项应尽量回传原 id;新增选项无需传 id。\n如果请求中传入的 option id 在当前字段配置中不存在,系统会丢弃该 id,并按新增选项处理;\n若 id 合法但 name 改了,属于正常更新,会保留该 id。" }, "effect": { "candidates": [ @@ -48499,21 +46453,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新字段" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新字段" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新字段" }, "use_when": { @@ -48616,15 +46570,21 @@ "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -48831,15 +46791,21 @@ "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -48991,6 +46957,12 @@ "source": "cobra_usage", "value": "更新后的字段名称,最大100字。不修改名称时省略" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新后的字段名称,最大100字。不修改名称时省略" + }, { "precedence": "default", "selected": false, @@ -49006,22 +46978,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newFieldName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newFieldName" }, "required": { "candidates": [ { - "precedence": "tool_schema_hint", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "tool_schema_hint", + "selected": false, "source": "tool_schema_hint", "value": true }, @@ -49032,10 +47016,10 @@ "value": false } ], - "precedence": "tool_schema_hint", + "precedence": "command_constraint", "resolution": "highest_precedence", - "source": "tool_schema_hint", - "value": true + "source": "require_one_of_constraint", + "value": false }, "required_when": { "candidates": [ @@ -49066,8 +47050,8 @@ "value": "string" } }, - "property": "name", - "required": true, + "property": "newFieldName", + "required": false, "type": "string" }, "table-id": { @@ -49191,6 +47175,7 @@ "Cobra help: dws aitable form create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -49207,9 +47192,6 @@ "confirmation": "not_required", "description": "在指定数据表下创建一个新的表单视图(FormDesigner 类型)。\n等价于 view create --view-type FormDesigner,但走 form 命令组对齐表单工作流。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -49235,15 +47217,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -49305,39 +47289,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "在指定数据表下创建一个新的表单视图(FormDesigner 类型)。\n等价于 view create --view-type FormDesigner,但走 form 命令组对齐表单工作流。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "在指定数据表下创建一个新的表单视图(FormDesigner 类型)。\n等价于 view create --view-type FormDesigner,但走 form 命令组对齐表单工作流。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -49401,45 +47363,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -49487,13 +47453,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建表单视图" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建表单视图" @@ -49522,8 +47488,8 @@ "group": "form", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection.", "is_alias": false, "name": "form_create", "parameter_count": 4, @@ -49900,6 +47866,7 @@ "Cobra help: dws aitable form delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -49940,15 +47907,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -50004,13 +47973,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除指定数据表下的表单视图(不可逆)。\n调用前建议先通过 form list 确认目标视图。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除指定数据表下的表单视图(不可逆)。\n调用前建议先通过 form list 确认目标视图。" @@ -50066,45 +48035,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -50146,13 +48119,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除表单" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除表单" @@ -50181,8 +48154,8 @@ "group": "form", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_delete", "parameter_count": 3, @@ -50213,16 +48186,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -50273,7 +48254,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -50303,16 +48283,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -50363,7 +48351,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -50393,16 +48380,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -50453,7 +48448,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -50475,6 +48469,8 @@ "Cobra help: dws aitable form field hide --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -50491,10 +48487,7 @@ "confirmation": "not_required", "description": "切换表单视图中某个字段的隐藏/显示状态。\n--hidden true:在表单中隐藏该字段(填写者不可见)\n--hidden false:显示该字段", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws aitable form field hide --base-id BASE_ID --table-id TABLE_ID --view-id VIEW_ID --field-id FIELD_ID --hidden true" @@ -50519,15 +48512,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -50569,66 +48564,60 @@ "confirmation": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "not_required" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "not_required" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "切换表单视图中某个字段的隐藏/显示状态。\n--hidden true:在表单中隐藏该字段(填写者不可见)\n--hidden false:显示该字段" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "切换表单视图中某个字段的隐藏/显示状态。\n--hidden true:在表单中隐藏该字段(填写者不可见)\n--hidden false:显示该字段" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "read" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "read" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" }, "examples": { "candidates": [ @@ -50653,59 +48642,71 @@ "idempotency": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "idempotent" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "idempotent" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "idempotent" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -50717,6 +48718,13 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true + }, { "precedence": "unreviewed_explicit", "selected": false, @@ -50733,27 +48741,35 @@ "risk": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "low" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "low" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "切换表单字段隐藏" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "切换表单字段隐藏" @@ -50782,8 +48798,8 @@ "group": "form.field", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_field_hide", "parameter_count": 5, @@ -50814,16 +48830,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -50874,7 +48898,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -50904,16 +48927,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -50964,7 +48995,6 @@ "value": "string" } }, - "property": "fieldId", "required": true, "type": "string" }, @@ -50994,16 +49024,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --hidden is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "hidden" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "hidden" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --hidden is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51048,7 +49086,6 @@ "value": "string" } }, - "property": "hidden", "required": false, "type": "string" }, @@ -51078,16 +49115,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51138,7 +49183,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -51168,16 +49212,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51228,7 +49280,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -51237,7 +49288,7 @@ "primary_cli_path": "aitable form field hide", "product_id": "aitable", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", "title": "切换表单字段隐藏", "use_when": [ @@ -51250,6 +49301,7 @@ "Cobra help: dws aitable form field list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -51266,9 +49318,6 @@ "confirmation": "not_required", "description": "列出指定表单视图当前可见的字段及其配置。\n返回每个字段的 fieldId、name、type、required、hidden、description。\n注意:hidden=true 的字段不会出现在此返回(它们在表单中已隐藏);如需查看全部字段请用 field get。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -51294,15 +49343,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -51364,39 +49415,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出指定表单视图当前可见的字段及其配置。\n返回每个字段的 fieldId、name、type、required、hidden、description。\n注意:hidden=true 的字段不会出现在此返回(它们在表单中已隐藏);如需查看全部字段请用 field get。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出指定表单视图当前可见的字段及其配置。\n返回每个字段的 fieldId、name、type、required、hidden、description。\n注意:hidden=true 的字段不会出现在此返回(它们在表单中已隐藏);如需查看全部字段请用 field get。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -51460,45 +49489,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -51546,13 +49579,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出表单字段" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出表单字段" @@ -51581,8 +49614,8 @@ "group": "form.field", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_field_list", "parameter_count": 3, @@ -51613,16 +49646,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51673,7 +49714,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -51703,16 +49743,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51763,7 +49811,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -51793,16 +49840,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -51853,7 +49908,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -51875,6 +49929,7 @@ "Cobra help: dws aitable form field update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -51891,9 +49946,6 @@ "confirmation": "not_required", "description": "更新表单视图中某个字段的必填状态或描述。\n--required 或 --field-description 至少传入一项。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -51919,15 +49971,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -51989,39 +50043,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新表单视图中某个字段的必填状态或描述。\n--required 或 --field-description 至少传入一项。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新表单视图中某个字段的必填状态或描述。\n--required 或 --field-description 至少传入一项。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -52085,45 +50117,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -52171,13 +50207,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新表单字段" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新表单字段" @@ -52206,8 +50242,8 @@ "group": "form.field", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_field_update", "parameter_count": 6, @@ -52238,16 +50274,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52298,7 +50342,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -52328,16 +50371,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-description is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldDescription" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldDescription" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-description is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52382,7 +50433,6 @@ "value": "string" } }, - "property": "fieldDescription", "required": false, "type": "string" }, @@ -52412,16 +50462,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52472,7 +50530,6 @@ "value": "string" } }, - "property": "fieldId", "required": true, "type": "string" }, @@ -52502,16 +50559,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --required is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "required" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "required" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --required is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52562,7 +50627,6 @@ "value": "string" } }, - "property": "required", "required": true, "type": "string" }, @@ -52592,16 +50656,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52652,7 +50724,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -52682,16 +50753,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -52742,7 +50821,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -52764,6 +50842,7 @@ "Cobra help: dws aitable form get --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -52805,15 +50884,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -52875,13 +50956,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "按 viewId 获取单个表单视图的元信息(name/title/createdAt/shareFormUuid)。\n内部拉取 list_form_views 后在客户端按 viewId 精确筛出单条(服务端的 viewIds\n过滤参数当前不生效,会返回全表所有表单,故在此侧过滤)。data 即命中的表单对象。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "按 viewId 获取单个表单视图的元信息(name/title/createdAt/shareFormUuid)。\n内部拉取 list_form_views 后在客户端按 viewId 精确筛出单条(服务端的 viewIds\n过滤参数当前不生效,会返回全表所有表单,故在此侧过滤)。data 即命中的表单对象。" @@ -52949,45 +51030,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -53035,13 +51120,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取单个表单视图详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取单个表单视图详情" @@ -53070,8 +51155,8 @@ "group": "form", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_get", "parameter_count": 3, @@ -53102,16 +51187,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -53162,7 +51255,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -53192,16 +51284,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -53252,7 +51352,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -53282,16 +51381,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -53342,7 +51449,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -53364,6 +51470,7 @@ "Cobra help: dws aitable form list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -53380,9 +51487,6 @@ "confirmation": "not_required", "description": "列出指定数据表下的所有表单视图。每个表单视图返回 viewId、name、title、createdAt(shareFormUuid 不在此返回,需 form share get 单独获取)。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -53408,15 +51512,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -53478,39 +51584,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出指定数据表下的所有表单视图。每个表单视图返回 viewId、name、title、createdAt(shareFormUuid 不在此返回,需 form share get 单独获取)。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出指定数据表下的所有表单视图。每个表单视图返回 viewId、name、title、createdAt(shareFormUuid 不在此返回,需 form share get 单独获取)。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -53574,45 +51658,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -53660,13 +51748,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出表单视图" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出表单视图" @@ -53695,8 +51783,8 @@ "group": "form", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_list", "parameter_count": 2, @@ -53727,16 +51815,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -53787,7 +51883,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -53817,16 +51912,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -53877,7 +51980,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" } @@ -53899,6 +52001,7 @@ "Cobra help: dws aitable form questions create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -53915,9 +52018,6 @@ "confirmation": "not_required", "description": "在数据表中创建字段,即向表单添加题目。\n入参与 `field create` 完全一致:可用 --fields 批量创建,或 --name + --type 单题模式。\n若需将题目设为必填,创建后请用 form field update --required true 单独设置。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -53943,15 +52043,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -54013,39 +52115,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "在数据表中创建字段,即向表单添加题目。\n入参与 `field create` 完全一致:可用 --fields 批量创建,或 --name + --type 单题模式。\n若需将题目设为必填,创建后请用 form field update --required true 单独设置。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "在数据表中创建字段,即向表单添加题目。\n入参与 `field create` 完全一致:可用 --fields 批量创建,或 --name + --type 单题模式。\n若需将题目设为必填,创建后请用 form field update --required true 单独设置。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -54109,45 +52189,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -54195,13 +52279,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "向表单添加题目(等价于 field create)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "向表单添加题目(等价于 field create)" @@ -54230,8 +52314,8 @@ "group": "form.questions", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection.", "is_alias": false, "name": "form_questions_create", "parameter_count": 7, @@ -54854,6 +52938,7 @@ "Cobra help: dws aitable form questions delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -54894,15 +52979,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -54958,13 +53045,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除指定字段(即表单题目)。**不可逆**。\n入参与 `field delete` 完全一致:必须传 --field-id;目前 MCP 不支持批量删除,需多次调用。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除指定字段(即表单题目)。**不可逆**。\n入参与 `field delete` 完全一致:必须传 --field-id;目前 MCP 不支持批量删除,需多次调用。" @@ -55020,46 +53107,40 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" - }, - "interface_reason": { - "candidates": [ - { - "precedence": "unreviewed_explicit", - "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" - } - ], - "precedence": "unreviewed_explicit", - "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": null + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "aitable", + "rpc_name": "delete_field" + } } ], - "precedence": "unreviewed_explicit", - "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": null + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "aitable", + "rpc_name": "delete_field" + } }, "reviewed": { "candidates": [ @@ -55100,13 +53181,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "从表单删除题目(等价于 field delete,不可逆)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "从表单删除题目(等价于 field delete,不可逆)" @@ -55135,8 +53216,11 @@ "group": "form.questions", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "delete_field" + }, "is_alias": false, "name": "form_questions_delete", "parameter_count": 3, @@ -55429,6 +53513,7 @@ "Cobra help: dws aitable form share get --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -55445,9 +53530,6 @@ "confirmation": "not_required", "description": "读取指定视图当前的分享表单配置。\n返回 enabled(是否开启)、status、shareFormUuid、formName 等信息。\n若该视图尚未开启分享表单,enabled=false、status=0。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -55473,15 +53555,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -55543,39 +53627,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "读取指定视图当前的分享表单配置。\n返回 enabled(是否开启)、status、shareFormUuid、formName 等信息。\n若该视图尚未开启分享表单,enabled=false、status=0。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "读取指定视图当前的分享表单配置。\n返回 enabled(是否开启)、status、shareFormUuid、formName 等信息。\n若该视图尚未开启分享表单,enabled=false、status=0。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -55639,45 +53701,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -55725,13 +53791,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取表单分享配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取表单分享配置" @@ -55760,8 +53826,8 @@ "group": "form.share", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_share_get", "parameter_count": 3, @@ -55792,16 +53858,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -55852,7 +53926,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -55882,16 +53955,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -55942,7 +54023,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -55972,16 +54052,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -56032,7 +54120,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -56054,6 +54141,7 @@ "Cobra help: dws aitable form share update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -56070,9 +54158,6 @@ "confirmation": "not_required", "description": "开启或关闭指定视图的分享表单。\n--enabled true 表示开启分享,--enabled false 表示关闭分享。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -56098,15 +54183,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -56168,39 +54255,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "开启或关闭指定视图的分享表单。\n--enabled true 表示开启分享,--enabled false 表示关闭分享。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "开启或关闭指定视图的分享表单。\n--enabled true 表示开启分享,--enabled false 表示关闭分享。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -56264,45 +54329,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -56350,13 +54419,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "开启/关闭分享表单" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "开启/关闭分享表单" @@ -56385,8 +54454,8 @@ "group": "form.share", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_share_update", "parameter_count": 4, @@ -56417,16 +54486,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -56477,7 +54554,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -56507,16 +54583,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --enabled is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enabled" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enabled" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --enabled is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -56567,7 +54651,6 @@ "value": "string" } }, - "property": "enabled", "required": true, "type": "string" }, @@ -56597,16 +54680,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -56657,7 +54748,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -56687,16 +54777,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -56747,7 +54845,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -56769,6 +54866,7 @@ "Cobra help: dws aitable form update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md", "skills/mono/references/products/aitable/aitable-form.md" @@ -56785,9 +54883,6 @@ "confirmation": "not_required", "description": "更新表单整体配置(标题、描述)。\n--title(或其等价别名 --name)和 --description 至少传入一项。\n--title 与 --name 完全等价;同时传入时以 --title 优先。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -56813,15 +54908,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -56883,39 +54980,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新表单整体配置(标题、描述)。\n--title(或其等价别名 --name)和 --description 至少传入一项。\n--title 与 --name 完全等价;同时传入时以 --title 优先。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新表单整体配置(标题、描述)。\n--title(或其等价别名 --name)和 --description 至少传入一项。\n--title 与 --name 完全等价;同时传入时以 --title 优先。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -56979,45 +55054,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -57065,13 +55144,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新表单配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新表单配置" @@ -57100,8 +55179,8 @@ "group": "form", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "form_update", "parameter_count": 6, @@ -57132,16 +55211,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "baseId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "baseId" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57192,7 +55279,6 @@ "value": "string" } }, - "property": "baseId", "required": true, "type": "string" }, @@ -57222,16 +55308,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --description is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "description" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "description" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --description is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57276,7 +55370,6 @@ "value": "string" } }, - "property": "description", "required": false, "type": "string" }, @@ -57306,16 +55399,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57360,7 +55461,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -57390,16 +55490,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "tableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tableId" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57450,7 +55558,6 @@ "value": "string" } }, - "property": "tableId", "required": true, "type": "string" }, @@ -57480,16 +55587,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --title is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "title" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "title" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --title is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57534,7 +55649,6 @@ "value": "string" } }, - "property": "title", "required": false, "type": "string" }, @@ -57564,16 +55678,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "review_reason": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -57624,7 +55746,6 @@ "value": "string" } }, - "property": "viewId", "required": true, "type": "string" } @@ -57664,11 +55785,8 @@ "cli_name": "data", "cli_path": "aitable import data", "confirmation": "not_required", - "description": "将已通过 prepare_import_upload 上传完成的文件导入 AI 表格。支持两种模式:\r\n1. 新建表导入(默认):不传 tableId,文件中的每个工作表新建为独立的数据表。导入成功时返回新增数据表的 tableIds。\r\n2. 追加导入:传入 tableId,数据追加到该已有数据表的末尾,不会新建表。可通过 fieldMapping 指定文件列名与目标表字段的映射关系;不传 fieldMapping 则按列名自动匹配。多 Sheet 文件可通过 srcSheetName 指定源 Sheet。\r\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务,也不要重新上传同一文件。", + "description": "将已通过 import upload 上传完成的文件导入 AI 表格。\n支持两种模式:\n 1. 新建表导入(默认):不传 --table-id,每个 Sheet 会新建为独立的数据表\n 2. 追加导入:传入 --table-id,数据将作为新行追加到该已有表中\n\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。\n若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务。\n\n追加导入时的注意事项:\n - 系统按列名自动匹配字段,源文件列名须与目标表字段名一致\n - 若需自定义映射关系,使用 --field-mapping 指定(key=目标表字段名,value=源文件列名)\n - 多 Sheet 文件默认使用第一个 Sheet,可通过 --src-sheet-name 指定", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -57766,44 +55884,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将已通过 prepare_import_upload 上传完成的文件导入 AI 表格。支持两种模式:\r\n1. 新建表导入(默认):不传 tableId,文件中的每个工作表新建为独立的数据表。导入成功时返回新增数据表的 tableIds。\r\n2. 追加导入:传入 tableId,数据追加到该已有数据表的末尾,不会新建表。可通过 fieldMapping 指定文件列名与目标表字段的映射关系;不传 fieldMapping 则按列名自动匹配。多 Sheet 文件可通过 srcSheetName 指定源 Sheet。\r\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务,也不要重新上传同一文件。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将已通过 import upload 上传完成的文件导入 AI 表格。\n支持两种模式:\n 1. 新建表导入(默认):不传 --table-id,每个 Sheet 会新建为独立的数据表\n 2. 追加导入:传入 --table-id,数据将作为新行追加到该已有表中\n\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。\n若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务。\n\n追加导入时的注意事项:\n - 系统按列名自动匹配字段,源文件列名须与目标表字段名一致\n - 若需自定义映射关系,使用 --field-mapping 指定(key=目标表字段名,value=源文件列名)\n - 多 Sheet 文件默认使用第一个 Sheet,可通过 --src-sheet-name 指定" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将已通过 prepare_import_upload 上传完成的文件导入 AI 表格。支持两种模式:\r\n1. 新建表导入(默认):不传 tableId,文件中的每个工作表新建为独立的数据表。导入成功时返回新增数据表的 tableIds。\r\n2. 追加导入:传入 tableId,数据追加到该已有数据表的末尾,不会新建表。可通过 fieldMapping 指定文件列名与目标表字段的映射关系;不传 fieldMapping 则按列名自动匹配。多 Sheet 文件可通过 srcSheetName 指定源 Sheet。\r\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务,也不要重新上传同一文件。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将已通过 prepare_import_upload 上传完成的文件导入 AI 表格。支持两种模式:\r\n1. 新建表导入(默认):不传 tableId,文件中的每个工作表新建为独立的数据表。导入成功时返回新增数据表的 tableIds。\r\n2. 追加导入:传入 tableId,数据追加到该已有数据表的末尾,不会新建表。可通过 fieldMapping 指定文件列名与目标表字段的映射关系;不传 fieldMapping 则按列名自动匹配。多 Sheet 文件可通过 srcSheetName 指定源 Sheet。\r\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务,也不要重新上传同一文件。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将已通过 import upload 上传完成的文件导入 AI 表格。\n支持两种模式:\n 1. 新建表导入(默认):不传 --table-id,每个 Sheet 会新建为独立的数据表\n 2. 追加导入:传入 --table-id,数据将作为新行追加到该已有表中\n\n工具内部会等待导入完成,大多数情况下一次调用即可拿到最终结果。\n若在 timeout 内未完成,再次传入相同 importId 继续等待,无需重新提交任务。\n\n追加导入时的注意事项:\n - 系统按列名自动匹配字段,源文件列名须与目标表字段名一致\n - 若需自定义映射关系,使用 --field-mapping 指定(key=目标表字段名,value=源文件列名)\n - 多 Sheet 文件默认使用第一个 Sheet,可通过 --src-sheet-name 指定" }, "effect": { "candidates": [ @@ -57948,21 +56044,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "导入数据" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "导入数据" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "导入数据" }, "use_when": { @@ -58674,11 +56770,8 @@ "cli_name": "upload", "cli_path": "aitable import upload", "confirmation": "not_required", - "description": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\r\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 对应的存储服务明确要求,否则不要额外附带 Content-Type 等自定义请求头。上传完成后将 importId 传入 import_data 即可触发导入,无需再传其他参数。", + "description": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl。\n上传完成后将 importId 传入 import data 即可触发导入。\n\n完整流程:\n 1. dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800\n → 获取 uploadUrl 和 importId\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" --data-binary @data.xlsx\n → 上传文件到 OSS\n 3. dws aitable import data --import-id \u003cimportId\u003e\n → 触发导入", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -58776,44 +56869,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\r\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 对应的存储服务明确要求,否则不要额外附带 Content-Type 等自定义请求头。上传完成后将 importId 传入 import_data 即可触发导入,无需再传其他参数。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl。\n上传完成后将 importId 传入 import data 即可触发导入。\n\n完整流程:\n 1. dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800\n → 获取 uploadUrl 和 importId\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" --data-binary @data.xlsx\n → 上传文件到 OSS\n 3. dws aitable import data --import-id \u003cimportId\u003e\n → 触发导入" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\r\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 对应的存储服务明确要求,否则不要额外附带 Content-Type 等自定义请求头。上传完成后将 importId 传入 import_data 即可触发导入,无需再传其他参数。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\r\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl;除非 uploadUrl 对应的存储服务明确要求,否则不要额外附带 Content-Type 等自定义请求头。上传完成后将 importId 传入 import_data 即可触发导入,无需再传其他参数。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为导入任务申请 OSS 直传地址。返回 uploadUrl 和 importId。\n客户端应通过 HTTP PUT 将原始文件字节流上传至 uploadUrl。\n上传完成后将 importId 传入 import data 即可触发导入。\n\n完整流程:\n 1. dws aitable import upload --base-id BASE_ID --file-name data.xlsx --file-size 204800\n → 获取 uploadUrl 和 importId\n 2. curl -X PUT \"\u003cuploadUrl\u003e\" --data-binary @data.xlsx\n → 上传文件到 OSS\n 3. dws aitable import data --import-id \u003cimportId\u003e\n → 触发导入" }, "effect": { "candidates": [ @@ -58958,21 +57029,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "准备导入文件上传" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "准备导入文件上传" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "准备导入文件上传" }, "use_when": { @@ -59372,11 +57443,8 @@ "cli_name": "info", "cli_path": "aitable info", "confirmation": "not_required", - "description": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard", + "description": "获取指定 Base 的资源目录级信息。\n这是 dws aitable base get 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -59474,44 +57542,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 Base 的资源目录级信息。\n这是 dws aitable base get 的便捷别名,两个命令完全等价。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 Base 的资源目录级信息,返回 baseName、tables、dashboards 的 summary 信息(不含字段与记录详情)。\r\n这是当前 Base 级目录入口:后续如需 tableId 或 dashboardId,优先从这里读取;table 详情再调用 get_tables,dashboard 详情再调用 get_dashboard" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 Base 的资源目录级信息。\n这是 dws aitable base get 的便捷别名,两个命令完全等价。" }, "effect": { "candidates": [ @@ -59658,22 +57704,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取 AI 表格信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取 AI 表格信息(dws aitable base get 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取 AI 表格信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取 AI 表格信息" + "source": "cobra_help", + "value": "获取 AI 表格信息(dws aitable base get 的别名)" }, "use_when": { "candidates": [ @@ -59818,7 +57864,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取 AI 表格信息", + "title": "获取 AI 表格信息(dws aitable base get 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable info 兼容路径时。" ] @@ -59844,11 +57890,8 @@ "cli_name": "list", "cli_path": "aitable list", "confirmation": "not_required", - "description": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", + "description": "列出当前用户可访问的 AI 表格 Base。\n这是 dws aitable base list 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -59946,44 +57989,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出当前用户可访问的 AI 表格 Base。\n这是 dws aitable base list 的便捷别名,两个命令完全等价。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出当前用户可访问的 AI 表格 Base。默认返回最近访问结果,支持分页游标续取。返回 baseId 与 baseName,后续可直接用于 get_base。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出当前用户可访问的 AI 表格 Base。\n这是 dws aitable base list 的便捷别名,两个命令完全等价。" }, "effect": { "candidates": [ @@ -60130,22 +58151,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取 AI 表格列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取 AI 表格列表(dws aitable base list 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取 AI 表格列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取 AI 表格列表" + "source": "cobra_help", + "value": "获取 AI 表格列表(dws aitable base list 的别名)" }, "use_when": { "candidates": [ @@ -60394,7 +58415,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取 AI 表格列表", + "title": "获取 AI 表格列表(dws aitable base list 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable list 兼容便捷路径时。" ] @@ -60429,9 +58450,6 @@ "confirmation": "not_required", "description": "查询 AI 表格记录。默认返回单页;传 --all 时自动翻页累计全部记录。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -60542,17 +58560,17 @@ "source": "tool_schema_hint", "value": "查询 AI 表格记录。默认返回单页;传 --all 时自动翻页累计全部记录。" }, + { + "precedence": "cobra_help", + "selected": false, + "source": "cobra_help", + "value": "查询指定表格中的记录,支持两种模式:\n- 按 ID 取:传入 --record-ids(单次最多 100 个),直接获取指定记录。忽略 filters 和 sort。\n- 条件查:通过 --filters 过滤、--sort 排序、--cursor 分页遍历全表。\n两种模式均可通过 --field-ids(单次最多 100 个)限制返回字段以节省 token。\n\n重要说明(公式、引用、关联字段):\n默认情况下,公式字段(formula)、引用字段(lookup)、关联字段(association)不会返回数据。\n如需返回这些字段的值,必须在 --field-ids 参数中显式指定这些字段的列 ID。\n例如:--field-ids \"fldTextId,fldFormulaId,fldLookupId,fldAssocId\"\n\n--filters 结构(最外层必须是并列关系 and 或 or):\n{\"operator\":\"and\",\"operands\":[{\"operator\":\"\u003cop\u003e\",\"operands\":[\"\u003cfieldId\u003e\",\"\u003cvalue\u003e\"]}]}\n 操作符:eq(等于) ne(不等于) exist(有值) un_exist(为空)\n lt gt lte gte(数值比较) contain exclusive(文本)\n all_of any_of none_of(多选)\n date_eq before after not_before not_after(日期)\n 注意:singleSelect/multipleSelect 字段过滤值 必须 传选项名称的字面量(比如 \"本科\"),不要传 option ID!\n 注意:date 日期字段 只能用 date_eq/before/after/not_before/not_after,值传日期串(如 \"2026-05-22\");\n 通用 eq/gte/lte/contain 对日期字段无效会返回 0 条;不支持区间(date_between)和相对(from_now),\n 范围用 not_before+not_after 组合。\n\n--sort 结构:[{\"fieldId\":\"\u003cfieldId\u003e\",\"direction\":\"asc|desc\"}]\n 示例:[{\"fieldId\":\"fldPriorityId\",\"direction\":\"asc\"},{\"fieldId\":\"fldDueDateId\",\"direction\":\"desc\"}]\n 注意:排序方向字段必须使用 direction(值为 asc 或 desc)" + }, { "precedence": "mcp_metadata", "selected": false, "source": "mcp_metadata", "value": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回" - }, - { - "precedence": "inference", - "selected": false, - "source": "cobra_help", - "value": "查询指定表格中的记录,支持两种模式:\n- 按 ID 取:传入 --record-ids(单次最多 100 个),直接获取指定记录。忽略 filters 和 sort。\n- 条件查:通过 --filters 过滤、--sort 排序、--cursor 分页遍历全表。\n两种模式均可通过 --field-ids(单次最多 100 个)限制返回字段以节省 token。\n\n重要说明(公式、引用、关联字段):\n默认情况下,公式字段(formula)、引用字段(lookup)、关联字段(association)不会返回数据。\n如需返回这些字段的值,必须在 --field-ids 参数中显式指定这些字段的列 ID。\n例如:--field-ids \"fldTextId,fldFormulaId,fldLookupId,fldAssocId\"\n\n--filters 结构(最外层必须是并列关系 and 或 or):\n{\"operator\":\"and\",\"operands\":[{\"operator\":\"\u003cop\u003e\",\"operands\":[\"\u003cfieldId\u003e\",\"\u003cvalue\u003e\"]}]}\n 操作符:eq(等于) ne(不等于) exist(有值) un_exist(为空)\n lt gt lte gte(数值比较) contain exclusive(文本)\n all_of any_of none_of(多选)\n date_eq before after not_before not_after(日期)\n 注意:singleSelect/multipleSelect 字段过滤值 必须 传选项名称的字面量(比如 \"本科\"),不要传 option ID!\n 注意:date 日期字段 只能用 date_eq/before/after/not_before/not_after,值传日期串(如 \"2026-05-22\");\n 通用 eq/gte/lte/contain 对日期字段无效会返回 0 条;不支持区间(date_between)和相对(from_now),\n 范围用 not_before+not_after 组合。\n\n--sort 结构:[{\"fieldId\":\"\u003cfieldId\u003e\",\"direction\":\"asc|desc\"}]\n 示例:[{\"fieldId\":\"fldPriorityId\",\"direction\":\"asc\"},{\"fieldId\":\"fldDueDateId\",\"direction\":\"desc\"}]\n 注意:排序方向字段必须使用 direction(值为 asc 或 desc)" } ], "precedence": "tool_schema_hint", @@ -60560,28 +58578,6 @@ "source": "tool_schema_hint", "value": "查询 AI 表格记录。默认返回单页;传 --all 时自动翻页累计全部记录。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -60725,22 +58721,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_records" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取行记录" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_records" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_records" + "source": "cobra_help", + "value": "获取行记录" }, "use_when": { "candidates": [ @@ -60802,16 +58798,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local auto-pagination control; never sent to query_records", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "all" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "all" + "review_reason": "local auto-pagination control; never sent to query_records", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -60856,7 +58860,6 @@ "value": "boolean" } }, - "property": "all", "required": false, "type": "boolean" }, @@ -61453,16 +59456,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local auto-pagination loop limit; never sent to query_records", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pageLimit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pageLimit" + "review_reason": "local auto-pagination loop limit; never sent to query_records", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -61513,7 +59524,6 @@ "value": "integer" } }, - "property": "pageLimit", "required": false, "type": "integer" }, @@ -61528,6 +59538,12 @@ "source": "cobra_usage", "value": "全文关键词。将对整表内容做文本匹配搜索,并返回符合条件的记录" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "全文关键词。将对整表内容做文本匹配搜索,并返回符合条件的记录。" + }, { "precedence": "default", "selected": false, @@ -61543,16 +59559,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ @@ -61597,7 +59619,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "全文关键词。将对整表内容做文本匹配搜索,并返回符合条件的记录。", + "property": "keyword", "required": false, "type": "string" }, @@ -61685,12 +59708,6 @@ "source": "reviewed_manual_hint", "value": false }, - { - "precedence": "typed_metadata", - "selected": false, - "source": "typed_parameter_metadata", - "value": true - }, { "precedence": "default", "selected": false, @@ -61979,7 +59996,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_records", + "title": "获取行记录", "use_when": [ "需要查询指定表格中的记录,支持按记录 ID 精确查询或按条件分页检索时。" ] @@ -61990,6 +60007,7 @@ "Cobra help: dws aitable record batch-update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/aitable.md" ], @@ -62005,9 +60023,6 @@ "confirmation": "not_required", "description": "将同一份 cells JSON 批量应用到多条记录上。适合\"统一标记完成 / 统一改负责人 / 统一清空某字段\"等场景。\n\n与 record update 的区别:\n - record update 每条记录可有不同 cells,参数是 records JSON 数组\n - record batch-update 所有记录共享同一份 cells(CLI 客户端展开后调用相同 MCP 工具)\n\n单次最多 100 条;超出请拆分多次调用。\ncells 写入格式与 record update / record create 相同(详见 record create --help)。\n只读字段(formula / filterUp / lookup / 系统字段)不能写入。\n\nCLI 行为:客户端把 --record-ids 拆开后构造 [{recordId, cells}, ...] 调用 update_records;\n当前服务端尚未提供 broadcast patch 工具,所以本命令是纯语义包装,不省网络体积,仅省 LLM 构造 prompt 的 token。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -62033,15 +60048,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -62097,39 +60114,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "将同一份 cells JSON 批量应用到多条记录上。适合\"统一标记完成 / 统一改负责人 / 统一清空某字段\"等场景。\n\n与 record update 的区别:\n - record update 每条记录可有不同 cells,参数是 records JSON 数组\n - record batch-update 所有记录共享同一份 cells(CLI 客户端展开后调用相同 MCP 工具)\n\n单次最多 100 条;超出请拆分多次调用。\ncells 写入格式与 record update / record create 相同(详见 record create --help)。\n只读字段(formula / filterUp / lookup / 系统字段)不能写入。\n\nCLI 行为:客户端把 --record-ids 拆开后构造 [{recordId, cells}, ...] 调用 update_records;\n当前服务端尚未提供 broadcast patch 工具,所以本命令是纯语义包装,不省网络体积,仅省 LLM 构造 prompt 的 token。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "将同一份 cells JSON 批量应用到多条记录上。适合\"统一标记完成 / 统一改负责人 / 统一清空某字段\"等场景。\n\n与 record update 的区别:\n - record update 每条记录可有不同 cells,参数是 records JSON 数组\n - record batch-update 所有记录共享同一份 cells(CLI 客户端展开后调用相同 MCP 工具)\n\n单次最多 100 条;超出请拆分多次调用。\ncells 写入格式与 record update / record create 相同(详见 record create --help)。\n只读字段(formula / filterUp / lookup / 系统字段)不能写入。\n\nCLI 行为:客户端把 --record-ids 拆开后构造 [{recordId, cells}, ...] 调用 update_records;\n当前服务端尚未提供 broadcast patch 工具,所以本命令是纯语义包装,不省网络体积,仅省 LLM 构造 prompt 的 token。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -62181,45 +60176,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -62261,13 +60260,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "批量更新记录(同一 cells 应用到多条 recordId)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "批量更新记录(同一 cells 应用到多条 recordId)" @@ -62296,8 +60295,8 @@ "group": "record", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection.", "is_alias": false, "name": "record_batch_update", "parameter_count": 4, @@ -62700,11 +60699,8 @@ "cli_name": "create", "cli_path": "aitable record create", "confirmation": "not_required", - "description": "在指定表格中批量新增记录", + "description": "在指定表格中批量新增记录。\n\nrecords 为待创建的记录列表 JSON 数组,单次最多 100 条。\n每条记录包含 cells 字段,key 为 fieldId(通过 table get 获取),value 为写入值。\n\n注意:filterUp(查找引用)和 lookup(关联引用)字段为只读字段,不能通过 record create/update 写入值。\n\n各类型写入格式:\n text → \"文本内容\"\n number → 123 或 123.45(也接受字符串 \"123\")\n singleSelect → \"选项名称\",或 {\"id\":\"opt_xxx\",\"name\":\"进行中\"};id 为准\n multipleSelect → [\"选项名1\",\"选项名2\"],或 [{\"id\":\"opt_a\",\"name\":\"标签A\"},...]\n date → \"2026-03-15\" 或 \"2026-03-15T09:00+08:00\"(RFC3339);亦支持毫秒时间戳\n checkbox → true | false\n user → [{\"userId\":\"staff_001\",\"corpId\":\"dingxxxxxxxx\"}]\n department → [{\"deptId\":\"52528700\"}]\n group → [{\"cid\":\"74577067501\"}] — 注意 key 是 cid,不是 openConversationId\n url → {\"text\":\"显示文字\",\"link\":\"https://...\"};不能直接传 URL 字符串\n richText → {\"markdown\":\"**加粗**\\n普通文字\\n\"}\n telephone/email/barcode/idCard → 字符串\n attachment → 推荐通过 prepare_attachment_upload + append_uploaded_file_to_record 写入\n unidirectionalLink/bidirectionalLink → {\"linkedRecordIds\":[\"recXXX\",\"recYYY\"]}\n creator/lastModifier/createdTime/lastModifiedTime → 系统自动回填,不建议手动写入\n\nWindows 用户注意:如果 --records JSON 很长(超过命令行长度限制),请使用 --records-file 参数指定一个 JSON 文件路径,\nCLI 会自动从文件中读取内容作为 --records 的值。这样可以避免 shell 引号转义和命令行截断问题。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -62802,44 +60798,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定表格中批量新增记录" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定表格中批量新增记录。\n\nrecords 为待创建的记录列表 JSON 数组,单次最多 100 条。\n每条记录包含 cells 字段,key 为 fieldId(通过 table get 获取),value 为写入值。\n\n注意:filterUp(查找引用)和 lookup(关联引用)字段为只读字段,不能通过 record create/update 写入值。\n\n各类型写入格式:\n text → \"文本内容\"\n number → 123 或 123.45(也接受字符串 \"123\")\n singleSelect → \"选项名称\",或 {\"id\":\"opt_xxx\",\"name\":\"进行中\"};id 为准\n multipleSelect → [\"选项名1\",\"选项名2\"],或 [{\"id\":\"opt_a\",\"name\":\"标签A\"},...]\n date → \"2026-03-15\" 或 \"2026-03-15T09:00+08:00\"(RFC3339);亦支持毫秒时间戳\n checkbox → true | false\n user → [{\"userId\":\"staff_001\",\"corpId\":\"dingxxxxxxxx\"}]\n department → [{\"deptId\":\"52528700\"}]\n group → [{\"cid\":\"74577067501\"}] — 注意 key 是 cid,不是 openConversationId\n url → {\"text\":\"显示文字\",\"link\":\"https://...\"};不能直接传 URL 字符串\n richText → {\"markdown\":\"**加粗**\\n普通文字\\n\"}\n telephone/email/barcode/idCard → 字符串\n attachment → 推荐通过 prepare_attachment_upload + append_uploaded_file_to_record 写入\n unidirectionalLink/bidirectionalLink → {\"linkedRecordIds\":[\"recXXX\",\"recYYY\"]}\n creator/lastModifier/createdTime/lastModifiedTime → 系统自动回填,不建议手动写入\n\nWindows 用户注意:如果 --records JSON 很长(超过命令行长度限制),请使用 --records-file 参数指定一个 JSON 文件路径,\nCLI 会自动从文件中读取内容作为 --records 的值。这样可以避免 shell 引号转义和命令行截断问题。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定表格中批量新增记录" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定表格中批量新增记录" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定表格中批量新增记录。\n\nrecords 为待创建的记录列表 JSON 数组,单次最多 100 条。\n每条记录包含 cells 字段,key 为 fieldId(通过 table get 获取),value 为写入值。\n\n注意:filterUp(查找引用)和 lookup(关联引用)字段为只读字段,不能通过 record create/update 写入值。\n\n各类型写入格式:\n text → \"文本内容\"\n number → 123 或 123.45(也接受字符串 \"123\")\n singleSelect → \"选项名称\",或 {\"id\":\"opt_xxx\",\"name\":\"进行中\"};id 为准\n multipleSelect → [\"选项名1\",\"选项名2\"],或 [{\"id\":\"opt_a\",\"name\":\"标签A\"},...]\n date → \"2026-03-15\" 或 \"2026-03-15T09:00+08:00\"(RFC3339);亦支持毫秒时间戳\n checkbox → true | false\n user → [{\"userId\":\"staff_001\",\"corpId\":\"dingxxxxxxxx\"}]\n department → [{\"deptId\":\"52528700\"}]\n group → [{\"cid\":\"74577067501\"}] — 注意 key 是 cid,不是 openConversationId\n url → {\"text\":\"显示文字\",\"link\":\"https://...\"};不能直接传 URL 字符串\n richText → {\"markdown\":\"**加粗**\\n普通文字\\n\"}\n telephone/email/barcode/idCard → 字符串\n attachment → 推荐通过 prepare_attachment_upload + append_uploaded_file_to_record 写入\n unidirectionalLink/bidirectionalLink → {\"linkedRecordIds\":[\"recXXX\",\"recYYY\"]}\n creator/lastModifier/createdTime/lastModifiedTime → 系统自动回填,不建议手动写入\n\nWindows 用户注意:如果 --records JSON 很长(超过命令行长度限制),请使用 --records-file 参数指定一个 JSON 文件路径,\nCLI 会自动从文件中读取内容作为 --records 的值。这样可以避免 shell 引号转义和命令行截断问题。" }, "effect": { "candidates": [ @@ -62984,21 +60958,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "新增记录" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "新增记录" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "新增记录" }, "use_when": { @@ -63288,16 +61262,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as create_records.records; the path itself is not an RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "recordsFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "recordsFile" + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as create_records.records; the path itself is not an RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -63342,7 +61324,6 @@ "value": "string" } }, - "property": "recordsFile", "required": false, "type": "string" }, @@ -63487,7 +61468,7 @@ "cli_name": "delete", "cli_path": "aitable record delete", "confirmation": "user_required", - "description": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\r\n单次最多删除 100 条;超出请拆分多次调用。\r\n调用前建议先通过 query_records 确认目标记录 ID 与内容,避免误删。", + "description": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\n单次最多删除 100 条;超出请拆分多次调用。\n调用前建议先通过 record query 确认目标记录 ID 与内容,避免误删。", "display": "AI 表格操作", "effect": "destructive", "effect_source": "skill-explicit", @@ -63593,22 +61574,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\r\n单次最多删除 100 条;超出请拆分多次调用。\r\n调用前建议先通过 query_records 确认目标记录 ID 与内容,避免误删。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\n单次最多删除 100 条;超出请拆分多次调用。\n调用前建议先通过 record query 确认目标记录 ID 与内容,避免误删。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\r\n单次最多删除 100 条;超出请拆分多次调用。\r\n调用前建议先通过 query_records 确认目标记录 ID 与内容,避免误删。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\r\n单次最多删除 100 条;超出请拆分多次调用。\r\n调用前建议先通过 query_records 确认目标记录 ID 与内容,避免误删。" + "source": "cobra_help", + "value": "在指定 Table 中批量删除记录(不可逆,数据将永久丢失)。\n单次最多删除 100 条;超出请拆分多次调用。\n调用前建议先通过 record query 确认目标记录 ID 与内容,避免误删。" }, "effect": { "candidates": [ @@ -63762,21 +61743,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除行记录" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除行记录" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除行记录" }, "use_when": { @@ -64177,11 +62158,8 @@ "cli_name": "get", "cli_path": "aitable record get", "confirmation": "not_required", - "description": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回", + "description": "按 recordId 精确获取一条或多条记录。\n这是 dws aitable record query --record-ids 的便捷别名;强制 record-ids 必填,未暴露 filters/sort/query/cursor/limit 等查询参数。\n如需关键词搜索、筛选、排序、自动翻页,请改用 dws aitable record query 或 dws aitable record list。\n\n--field-ids 同样支持,逗号分隔,单次最多 100 个;用于控制返回字段或显式拉取计算字段。\n公式(formula)、查找引用(filterUp)、关联引用(lookup)字段默认不返回值,\n需在 --field-ids 中显式指定字段 ID 才会返回。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -64279,44 +62257,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 recordId 精确获取一条或多条记录。\n这是 dws aitable record query --record-ids 的便捷别名;强制 record-ids 必填,未暴露 filters/sort/query/cursor/limit 等查询参数。\n如需关键词搜索、筛选、排序、自动翻页,请改用 dws aitable record query 或 dws aitable record list。\n\n--field-ids 同样支持,逗号分隔,单次最多 100 个;用于控制返回字段或显式拉取计算字段。\n公式(formula)、查找引用(filterUp)、关联引用(lookup)字段默认不返回值,\n需在 --field-ids 中显式指定字段 ID 才会返回。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定表格中的记录,支持两种模式:\r\n- 按 ID 取:传入 recordIds(单次最多 100 个),直接获取指定记录。\r\n- 条件查:通过 filters 过滤、sort 排序、cursor 分页遍历全表。\r\n两种模式均可通过 fieldIds(单次最多 100 个)限制返回字段以节省 token。\r\n如果需要获取计算、查找引用等字段则必须传fieldIds的列ID或者列名称才会返回" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按 recordId 精确获取一条或多条记录。\n这是 dws aitable record query --record-ids 的便捷别名;强制 record-ids 必填,未暴露 filters/sort/query/cursor/limit 等查询参数。\n如需关键词搜索、筛选、排序、自动翻页,请改用 dws aitable record query 或 dws aitable record list。\n\n--field-ids 同样支持,逗号分隔,单次最多 100 个;用于控制返回字段或显式拉取计算字段。\n公式(formula)、查找引用(filterUp)、关联引用(lookup)字段默认不返回值,\n需在 --field-ids 中显式指定字段 ID 才会返回。" }, "effect": { "candidates": [ @@ -64463,22 +62419,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_records" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 ID 获取记录(record query --record-ids 的便捷别名,单次最多 100 条)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_records" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_records" + "source": "cobra_help", + "value": "按 ID 获取记录(record query --record-ids 的便捷别名,单次最多 100 条)" }, "use_when": { "candidates": [ @@ -64794,16 +62750,9 @@ }, "required": { "candidates": [ - { - "precedence": "reviewed_manual", - "review_reason": "The reviewed query command supports both an optional ID lookup mode and a table scan/filter mode, so --record-ids is not unconditionally required.", - "selected": true, - "source": "reviewed_manual_hint", - "value": false - }, { "precedence": "typed_metadata", - "selected": false, + "selected": true, "source": "typed_parameter_metadata", "value": true }, @@ -64814,11 +62763,10 @@ "value": false } ], - "precedence": "reviewed_manual", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "review_reason": "The reviewed query command supports both an optional ID lookup mode and a table scan/filter mode, so --record-ids is not unconditionally required.", - "source": "reviewed_manual_hint", - "value": false + "source": "typed_parameter_metadata", + "value": true }, "required_when": { "candidates": [ @@ -64852,7 +62800,7 @@ "interface_description": "可选。指定要获取的记录 ID 列表,单次最多 100 个。传入时直接按 ID 返回,忽略 filters 和 sort。\n适用于已知 recordId(如关联字段中的 linkedRecordIds)时的精准取数。", "interface_type": "array", "property": "recordIds", - "required": false, + "required": true, "type": "string" }, "table-id": { @@ -64965,7 +62913,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_records", + "title": "按 ID 获取记录(record query --record-ids 的便捷别名,单次最多 100 条)", "use_when": [ "需要按 recordId 精确获取一条或多条记录时。" ] @@ -64993,11 +62941,8 @@ "cli_name": "history-list", "cli_path": "aitable record history-list", "confirmation": "not_required", - "description": "查询指定行记录的变更历史列表。返回该记录的字段变更、操作人(unionId)、操作时间等信息。\r\n操作人已完成身份脱敏,仅透出 unionId。", + "description": "按 recordId 查询单条记录的变更历史。\n返回字段(每条 history item):\n- type 变更类型(如 field_change / record_create)\n- action 操作动作(create / update / delete)\n- newValue 变更后的值(JSON 字符串)\n- oldValue 变更前的值(JSON 字符串)\n- operateTime 操作时间(毫秒级时间戳)\n- typeChangedFields 类型变更的字段信息(JSON 字符串)\n- version 版本号\n\n分页用 --offset / --limit;--limit 范围 [1, 50],默认 20。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -65095,44 +63040,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定行记录的变更历史列表。返回该记录的字段变更、操作人(unionId)、操作时间等信息。\r\n操作人已完成身份脱敏,仅透出 unionId。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 recordId 查询单条记录的变更历史。\n返回字段(每条 history item):\n- type 变更类型(如 field_change / record_create)\n- action 操作动作(create / update / delete)\n- newValue 变更后的值(JSON 字符串)\n- oldValue 变更前的值(JSON 字符串)\n- operateTime 操作时间(毫秒级时间戳)\n- typeChangedFields 类型变更的字段信息(JSON 字符串)\n- version 版本号\n\n分页用 --offset / --limit;--limit 范围 [1, 50],默认 20。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定行记录的变更历史列表。返回该记录的字段变更、操作人(unionId)、操作时间等信息。\r\n操作人已完成身份脱敏,仅透出 unionId。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定行记录的变更历史列表。返回该记录的字段变更、操作人(unionId)、操作时间等信息。\r\n操作人已完成身份脱敏,仅透出 unionId。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按 recordId 查询单条记录的变更历史。\n返回字段(每条 history item):\n- type 变更类型(如 field_change / record_create)\n- action 操作动作(create / update / delete)\n- newValue 变更后的值(JSON 字符串)\n- oldValue 变更前的值(JSON 字符串)\n- operateTime 操作时间(毫秒级时间戳)\n- typeChangedFields 类型变更的字段信息(JSON 字符串)\n- version 版本号\n\n分页用 --offset / --limit;--limit 范围 [1, 50],默认 20。" }, "effect": { "candidates": [ @@ -65279,21 +63202,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询行记录变更历史" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "查询行记录变更历史" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询行记录变更历史" }, "use_when": { @@ -65909,11 +63832,8 @@ "cli_name": "primary-doc-create", "cli_path": "aitable record primary-doc-create", "confirmation": "not_required", - "description": "为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。\\n必填 baseId、tableId、fieldId、recordId。\\n返回创建或已存在的主键文档 nodeId,可直接用于钉钉文档 MCP 的 nodeId 参数。", + "description": "为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\nfieldId 必须是 primaryDoc 类型的字段。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -66011,44 +63931,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。\\n必填 baseId、tableId、fieldId、recordId。\\n返回创建或已存在的主键文档 nodeId,可直接用于钉钉文档 MCP 的 nodeId 参数。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\nfieldId 必须是 primaryDoc 类型的字段。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。\\n必填 baseId、tableId、fieldId、recordId。\\n返回创建或已存在的主键文档 nodeId,可直接用于钉钉文档 MCP 的 nodeId 参数。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为指定记录创建主键文档(幂等:若该记录已有主键文档则直接返回已有文档的 nodeId)。\\n必填 baseId、tableId、fieldId、recordId。\\n返回创建或已存在的主键文档 nodeId,可直接用于钉钉文档 MCP 的 nodeId 参数。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\nfieldId 必须是 primaryDoc 类型的字段。" }, "effect": { "candidates": [ @@ -66195,22 +64093,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建主键文档" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为记录创建主键文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建主键文档" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建主键文档" + "source": "cobra_help", + "value": "为记录创建主键文档" }, "use_when": { "candidates": [ @@ -66665,7 +64563,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建主键文档", + "title": "为记录创建主键文档", "use_when": [ "需要为指定记录创建主键文档(幂等:已存在则返回已有文档的 nodeId)时。" ] @@ -66693,11 +64591,8 @@ "cli_name": "primary-doc-get", "cli_path": "aitable record primary-doc-get", "confirmation": "not_required", - "description": "查询指定记录的主键文档信息。根据 baseId、tableId、recordId 返回该记录关联的主键文档 nodeId。若记录尚未创建主键文档,nodeId 为 null。返回的 nodeId 可直接用于钉钉文档 MCP 的 nodeId 参数。", + "description": "查询指定记录关联的主键文档 nodeId。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\n若该记录尚未创建主键文档,nodeId 为 null。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -66795,44 +64690,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定记录的主键文档信息。根据 baseId、tableId、recordId 返回该记录关联的主键文档 nodeId。若记录尚未创建主键文档,nodeId 为 null。返回的 nodeId 可直接用于钉钉文档 MCP 的 nodeId 参数。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定记录关联的主键文档 nodeId。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\n若该记录尚未创建主键文档,nodeId 为 null。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定记录的主键文档信息。根据 baseId、tableId、recordId 返回该记录关联的主键文档 nodeId。若记录尚未创建主键文档,nodeId 为 null。返回的 nodeId 可直接用于钉钉文档 MCP 的 nodeId 参数。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定记录的主键文档信息。根据 baseId、tableId、recordId 返回该记录关联的主键文档 nodeId。若记录尚未创建主键文档,nodeId 为 null。返回的 nodeId 可直接用于钉钉文档 MCP 的 nodeId 参数。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定记录关联的主键文档 nodeId。\n返回的 nodeId 可直接用于 dws doc read/update 的 --node 参数来读写文档内容。\n若该记录尚未创建主键文档,nodeId 为 null。" }, "effect": { "candidates": [ @@ -66979,22 +64852,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询主键文档信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询记录的主键文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询主键文档信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询主键文档信息" + "source": "cobra_help", + "value": "查询记录的主键文档" }, "use_when": { "candidates": [ @@ -67346,7 +65219,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询主键文档信息", + "title": "查询记录的主键文档", "use_when": [ "需要查询指定记录关联的主键文档节点 ID 时。" ] @@ -67373,11 +65246,8 @@ "cli_name": "query-empty", "cli_path": "aitable record query-empty", "confirmation": "not_required", - "description": "查询指定表格中\"完全没填用户字段\"的空行。\r\n- 按表内顺序扫描一页(limit 默认 100,最大 100),内存中过滤出空行返回。\r\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,\r\n 所有 cell 都是 null、空字符串、空集合或空 Map。\r\n- cursor 行为同 query_records:若返回的 nextCursor 非空,需要把它传回继续翻页。\r\n- 注意:本页 records 为空数组不代表全表无空行;只有当 nextCursor 也为空时才表示扫完全表。", + "description": "按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行。\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,所有 cell 都是 null、空字符串、空集合或空 Map。\n- --limit 是扫描预算(不是返回数):可能扫了 100 条但全部非空,本页返回空数组。\n- 翻页:返回 nextCursor 非空时把它传回继续扫;nextCursor 为空才表示扫完全表。\n\n返回 data: {records: [...], nextCursor: \"...\"}。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -67475,44 +65345,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定表格中\"完全没填用户字段\"的空行。\r\n- 按表内顺序扫描一页(limit 默认 100,最大 100),内存中过滤出空行返回。\r\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,\r\n 所有 cell 都是 null、空字符串、空集合或空 Map。\r\n- cursor 行为同 query_records:若返回的 nextCursor 非空,需要把它传回继续翻页。\r\n- 注意:本页 records 为空数组不代表全表无空行;只有当 nextCursor 也为空时才表示扫完全表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行。\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,所有 cell 都是 null、空字符串、空集合或空 Map。\n- --limit 是扫描预算(不是返回数):可能扫了 100 条但全部非空,本页返回空数组。\n- 翻页:返回 nextCursor 非空时把它传回继续扫;nextCursor 为空才表示扫完全表。\n\n返回 data: {records: [...], nextCursor: \"...\"}。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定表格中\"完全没填用户字段\"的空行。\r\n- 按表内顺序扫描一页(limit 默认 100,最大 100),内存中过滤出空行返回。\r\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,\r\n 所有 cell 都是 null、空字符串、空集合或空 Map。\r\n- cursor 行为同 query_records:若返回的 nextCursor 非空,需要把它传回继续翻页。\r\n- 注意:本页 records 为空数组不代表全表无空行;只有当 nextCursor 也为空时才表示扫完全表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定表格中\"完全没填用户字段\"的空行。\r\n- 按表内顺序扫描一页(limit 默认 100,最大 100),内存中过滤出空行返回。\r\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,\r\n 所有 cell 都是 null、空字符串、空集合或空 Map。\r\n- cursor 行为同 query_records:若返回的 nextCursor 非空,需要把它传回继续翻页。\r\n- 注意:本页 records 为空数组不代表全表无空行;只有当 nextCursor 也为空时才表示扫完全表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行。\n- 空行定义:除系统字段(recordId / 创建人 / 创建时间 / 修改人 / 修改时间)外,所有 cell 都是 null、空字符串、空集合或空 Map。\n- --limit 是扫描预算(不是返回数):可能扫了 100 条但全部非空,本页返回空数组。\n- 翻页:返回 nextCursor 非空时把它传回继续扫;nextCursor 为空才表示扫完全表。\n\n返回 data: {records: [...], nextCursor: \"...\"}。" }, "effect": { "candidates": [ @@ -67659,22 +65507,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询空行" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询完全没填用户字段的空行" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询空行" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询空行" + "source": "cobra_help", + "value": "查询完全没填用户字段的空行" }, "use_when": { "candidates": [ @@ -68132,7 +65980,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询空行", + "title": "查询完全没填用户字段的空行", "use_when": [ "需要按表内顺序扫描一页,过滤出\"完全没填用户字段\"的空行时。" ] @@ -68160,11 +66008,8 @@ "cli_name": "share-url", "cli_path": "aitable record share-url", "confirmation": "not_required", - "description": "获取指定行记录的分享链接,可用于将记录分享给他人。", + "description": "按 recordId 批量获取记录分享链接。\n单次最多 20 条;可选 --view-id 生成带视图上下文的链接。\n\n返回 data.items 数组,每项 {recordId, shareUrl};shareUrl 为 null 表示该条获取失败。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -68262,44 +66107,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定行记录的分享链接,可用于将记录分享给他人。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 recordId 批量获取记录分享链接。\n单次最多 20 条;可选 --view-id 生成带视图上下文的链接。\n\n返回 data.items 数组,每项 {recordId, shareUrl};shareUrl 为 null 表示该条获取失败。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定行记录的分享链接,可用于将记录分享给他人。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定行记录的分享链接,可用于将记录分享给他人。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按 recordId 批量获取记录分享链接。\n单次最多 20 条;可选 --view-id 生成带视图上下文的链接。\n\n返回 data.items 数组,每项 {recordId, shareUrl};shareUrl 为 null 表示该条获取失败。" }, "effect": { "candidates": [ @@ -68446,22 +66269,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_record_share_url" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取记录分享链接" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_record_share_url" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_record_share_url" + "source": "cobra_help", + "value": "批量获取记录分享链接" }, "use_when": { "candidates": [ @@ -68925,7 +66748,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_record_share_url", + "title": "批量获取记录分享链接", "use_when": [ "需要按 recordId 批量获取记录分享链接时。" ] @@ -68955,11 +66778,8 @@ "cli_name": "update", "cli_path": "aitable record update", "confirmation": "not_required", - "description": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值", + "description": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值。\n\nrecords 为待更新的记录内容列表 JSON 数组,单次最多 100 条。\n每条记录必须包含 recordId 和 cells 字段。cells 的写入格式与 record create 相同(详见 record create --help)。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -69057,44 +66877,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值。\n\nrecords 为待更新的记录内容列表 JSON 数组,单次最多 100 条。\n每条记录必须包含 recordId 和 cells 字段。cells 的写入格式与 record create 相同(详见 record create --help)。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量更新指定记录的字段值,只需传入需修改的字段,未传入的字段保持原值。\n\nrecords 为待更新的记录内容列表 JSON 数组,单次最多 100 条。\n每条记录必须包含 recordId 和 cells 字段。cells 的写入格式与 record create 相同(详见 record create --help)。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。" }, "effect": { "candidates": [ @@ -69239,21 +67037,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新记录" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新记录" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新记录" }, "use_when": { @@ -69543,16 +67341,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as update_records.records; the path itself is not an RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "recordsFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "recordsFile" + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as update_records.records; the path itself is not an RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -69597,7 +67403,6 @@ "value": "string" } }, - "property": "recordsFile", "required": false, "type": "string" }, @@ -69739,11 +67544,8 @@ "cli_name": "upsert", "cli_path": "aitable record upsert", "confirmation": "not_required", - "description": "批量创建或更新记录(Upsert 语义)。传入一批记录,带 recordId 的走更新逻辑,不带 recordId 的走创建逻辑,服务端自动拆分并分别执行。\r\n单次请求的记录总数(创建 + 更新)不得超过 100 条。", + "description": "按 records 列表自动判断是创建还是更新:\n- 带 recordId 的项 → 走 update(按 recordId 局部更新 cells)\n- 不带 recordId 的项 → 走 create(生成新 recordId)\n\nrecords JSON 结构与 record update 完全一致:[{\"recordId\": \"\u003c可选\u003e\", \"cells\": {...}}, ...]\n单次最多 100 条(创建 + 更新合计)。\ncells 写入格式见 record create --help(key 是 fieldId,value 按字段类型)。\n\n返回 data: {createdRecordIds: [...], updatedRecordIds: [...]},分别按链路汇总。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -69841,44 +67643,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量创建或更新记录(Upsert 语义)。传入一批记录,带 recordId 的走更新逻辑,不带 recordId 的走创建逻辑,服务端自动拆分并分别执行。\r\n单次请求的记录总数(创建 + 更新)不得超过 100 条。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按 records 列表自动判断是创建还是更新:\n- 带 recordId 的项 → 走 update(按 recordId 局部更新 cells)\n- 不带 recordId 的项 → 走 create(生成新 recordId)\n\nrecords JSON 结构与 record update 完全一致:[{\"recordId\": \"\u003c可选\u003e\", \"cells\": {...}}, ...]\n单次最多 100 条(创建 + 更新合计)。\ncells 写入格式见 record create --help(key 是 fieldId,value 按字段类型)。\n\n返回 data: {createdRecordIds: [...], updatedRecordIds: [...]},分别按链路汇总。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量创建或更新记录(Upsert 语义)。传入一批记录,带 recordId 的走更新逻辑,不带 recordId 的走创建逻辑,服务端自动拆分并分别执行。\r\n单次请求的记录总数(创建 + 更新)不得超过 100 条。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量创建或更新记录(Upsert 语义)。传入一批记录,带 recordId 的走更新逻辑,不带 recordId 的走创建逻辑,服务端自动拆分并分别执行。\r\n单次请求的记录总数(创建 + 更新)不得超过 100 条。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按 records 列表自动判断是创建还是更新:\n- 带 recordId 的项 → 走 update(按 recordId 局部更新 cells)\n- 不带 recordId 的项 → 走 create(生成新 recordId)\n\nrecords JSON 结构与 record update 完全一致:[{\"recordId\": \"\u003c可选\u003e\", \"cells\": {...}}, ...]\n单次最多 100 条(创建 + 更新合计)。\ncells 写入格式见 record create --help(key 是 fieldId,value 按字段类型)。\n\n返回 data: {createdRecordIds: [...], updatedRecordIds: [...]},分别按链路汇总。\n\nWindows 用户注意:如果 --records JSON 很长,请使用 --records-file 参数指定一个 JSON 文件路径。" }, "effect": { "candidates": [ @@ -70025,22 +67805,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "record_upsert" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量创建或更新记录(Upsert)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "record_upsert" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "record_upsert" + "source": "cobra_help", + "value": "批量创建或更新记录(Upsert)" }, "use_when": { "candidates": [ @@ -70335,16 +68115,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as record_upsert.records; the path itself is not an RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "recordsFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "recordsFile" + "review_reason": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as record_upsert.records; the path itself is not an RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -70389,7 +68177,6 @@ "value": "string" } }, - "property": "recordsFile", "required": false, "type": "string" }, @@ -70503,7 +68290,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "record_upsert", + "title": "批量创建或更新记录(Upsert)", "use_when": [ "需要根据 records 中是否包含 recordId,批量创建新记录或更新现有记录时。" ] @@ -70529,11 +68316,8 @@ "cli_name": "search", "cli_path": "aitable search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}", + "description": "按名称关键词搜索 AI 表格 Base。\n这是 dws aitable base search 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -70631,44 +68415,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按名称关键词搜索 AI 表格 Base。\n这是 dws aitable base search 的便捷别名,两个命令完全等价。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按名称关键词搜索 AI 表格 Base。返回 baseId/baseName,结果按相关性排序。返回的 baseId 可直接用于 get_base 等后续工具。\r\nAI 表格访问地址可按 baseId 拼接为:https://docs.dingtalk.com/i/nodes/{baseId}" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按名称关键词搜索 AI 表格 Base。\n这是 dws aitable base search 的便捷别名,两个命令完全等价。" }, "effect": { "candidates": [ @@ -70815,22 +68577,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索 AI 表格" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "AI 表格搜索(dws aitable base search 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索 AI 表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索 AI 表格" + "source": "cobra_help", + "value": "AI 表格搜索(dws aitable base search 的别名)" }, "use_when": { "candidates": [ @@ -71065,7 +68827,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索 AI 表格", + "title": "AI 表格搜索(dws aitable base search 的别名)", "use_when": [ "仅在用户或既有脚本明确要求使用 dws aitable search 兼容便捷路径时。" ] @@ -71092,11 +68854,8 @@ "cli_name": "create", "cli_path": "aitable section create", "confirmation": "not_required", - "description": "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。\r\n\r\n必填:\r\n- baseId\r\n- name\r\n\r\n可选:\r\n- parentSectionId:不传或空字符串表示创建在 Base 根目录下\r\n- index:0-based,不传则追加到末尾\r\n\r\n返回新建分区的 sectionId 与 name。", + "description": "在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)。\n不传 --parent-section-id 或传空字符串表示创建在 Base 根目录下。\n--index 为 0-based 位置,不传则追加到末尾。\n返回新建文件夹的 sectionId 与 name。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -71194,44 +68953,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。\r\n\r\n必填:\r\n- baseId\r\n- name\r\n\r\n可选:\r\n- parentSectionId:不传或空字符串表示创建在 Base 根目录下\r\n- index:0-based,不传则追加到末尾\r\n\r\n返回新建分区的 sectionId 与 name。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)。\n不传 --parent-section-id 或传空字符串表示创建在 Base 根目录下。\n--index 为 0-based 位置,不传则追加到末尾。\n返回新建文件夹的 sectionId 与 name。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。\r\n\r\n必填:\r\n- baseId\r\n- name\r\n\r\n可选:\r\n- parentSectionId:不传或空字符串表示创建在 Base 根目录下\r\n- index:0-based,不传则追加到末尾\r\n\r\n返回新建分区的 sectionId 与 name。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 Base 下创建分区(用于在导航树中组织 table / dashboard,类似文件夹)。\r\n\r\n必填:\r\n- baseId\r\n- name\r\n\r\n可选:\r\n- parentSectionId:不传或空字符串表示创建在 Base 根目录下\r\n- index:0-based,不传则追加到末尾\r\n\r\n返回新建分区的 sectionId 与 name。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)。\n不传 --parent-section-id 或传空字符串表示创建在 Base 根目录下。\n--index 为 0-based 位置,不传则追加到末尾。\n返回新建文件夹的 sectionId 与 name。" }, "effect": { "candidates": [ @@ -71378,22 +69115,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建分组" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建分组" + "source": "cobra_help", + "value": "创建文件夹" }, "use_when": { "candidates": [ @@ -71852,7 +69589,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建分组", + "title": "创建文件夹", "use_when": [ "需要在指定 Base 下创建文件夹(用于在导航树中组织 table / dashboard,类似文件夹)时。" ] @@ -71880,11 +69617,8 @@ "cli_name": "delete", "cli_path": "aitable section delete", "confirmation": "user_required", - "description": "删除指定分区。\r\n\r\n必填 baseId、sectionId。\r\n\r\n注意删除操作不可逆;若分区下仍有 table / dashboard,下游会按既有规则处理。\r\n\r\n返回被删除的 sectionId。", + "description": "删除指定文件夹。\n注意:删除操作不可逆;若文件夹下仍有 table / dashboard,下游会按既有规则处理。\n返回被删除的 sectionId。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -71990,44 +69724,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定分区。\r\n\r\n必填 baseId、sectionId。\r\n\r\n注意删除操作不可逆;若分区下仍有 table / dashboard,下游会按既有规则处理。\r\n\r\n返回被删除的 sectionId。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定文件夹。\n注意:删除操作不可逆;若文件夹下仍有 table / dashboard,下游会按既有规则处理。\n返回被删除的 sectionId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定分区。\r\n\r\n必填 baseId、sectionId。\r\n\r\n注意删除操作不可逆;若分区下仍有 table / dashboard,下游会按既有规则处理。\r\n\r\n返回被删除的 sectionId。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定分区。\r\n\r\n必填 baseId、sectionId。\r\n\r\n注意删除操作不可逆;若分区下仍有 table / dashboard,下游会按既有规则处理。\r\n\r\n返回被删除的 sectionId。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除指定文件夹。\n注意:删除操作不可逆;若文件夹下仍有 table / dashboard,下游会按既有规则处理。\n返回被删除的 sectionId。" }, "effect": { "candidates": [ @@ -72190,22 +69902,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除分组" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除分组" + "source": "cobra_help", + "value": "删除文件夹" }, "use_when": { "candidates": [ @@ -72454,7 +70166,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除分组", + "title": "删除文件夹", "use_when": [ "需要删除指定文件夹时。" ] @@ -72481,11 +70193,8 @@ "cli_name": "list-empty", "cli_path": "aitable section list-empty", "confirmation": "not_required", - "description": "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;parentSectionId 为空串表示该分区在 Base 根目录下。", + "description": "列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树。\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;\nparentSectionId 为空串表示该文件夹在 Base 根目录下。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -72583,44 +70292,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;parentSectionId 为空串表示该分区在 Base 根目录下。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树。\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;\nparentSectionId 为空串表示该文件夹在 Base 根目录下。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;parentSectionId 为空串表示该分区在 Base 根目录下。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定 Base 下所有没有任何子节点的分区(空文件夹),用于清理或诊断导航树。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;parentSectionId 为空串表示该分区在 Base 根目录下。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树。\n返回按 name 升序排列的 [{sectionId, name, parentSectionId}] 列表与总数;\nparentSectionId 为空串表示该文件夹在 Base 根目录下。" }, "effect": { "candidates": [ @@ -72767,22 +70454,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询空分组" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出空文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询空分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询空分组" + "source": "cobra_help", + "value": "列出空文件夹" }, "use_when": { "candidates": [ @@ -72928,7 +70615,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询空分组", + "title": "列出空文件夹", "use_when": [ "需要列出指定 Base 下所有没有任何子节点的文件夹(空文件夹),用于清理或诊断导航树时。" ] @@ -72955,11 +70642,8 @@ "cli_name": "list-nodes", "cli_path": "aitable section list-nodes", "confirmation": "not_required", - "description": "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;parentSectionId 为空串表示该节点在 Base 根目录下。\r\n\r\n适合在 move_nsheet_node、reorder_section 等操作前用来定位节点 ID 与父级关系。", + "description": "列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等。\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;\nparentSectionId 为空串表示该节点在 Base 根目录下。\n适合在 section move-node / section reorder 等操作前用来定位节点 ID 与父级关系。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -73057,44 +70741,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;parentSectionId 为空串表示该节点在 Base 根目录下。\r\n\r\n适合在 move_nsheet_node、reorder_section 等操作前用来定位节点 ID 与父级关系。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等。\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;\nparentSectionId 为空串表示该节点在 Base 根目录下。\n适合在 section move-node / section reorder 等操作前用来定位节点 ID 与父级关系。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;parentSectionId 为空串表示该节点在 Base 根目录下。\r\n\r\n适合在 move_nsheet_node、reorder_section 等操作前用来定位节点 ID 与父级关系。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定 Base 当前版本下的全部 nsheet 节点,包括分区、AI 表格、表单视图、仪表盘、文档、查询视图等。\r\n\r\n必填 baseId。\r\n\r\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;parentSectionId 为空串表示该节点在 Base 根目录下。\r\n\r\n适合在 move_nsheet_node、reorder_section 等操作前用来定位节点 ID 与父级关系。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等。\n返回按 name 升序排列的 [{nodeId, nodeType, parentSectionId, name}] 列表与总数;\nparentSectionId 为空串表示该节点在 Base 根目录下。\n适合在 section move-node / section reorder 等操作前用来定位节点 ID 与父级关系。" }, "effect": { "candidates": [ @@ -73241,22 +70903,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询AI表格节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出全部节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询AI表格节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询AI表格节点" + "source": "cobra_help", + "value": "列出全部节点" }, "use_when": { "candidates": [ @@ -73402,7 +71064,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询AI表格节点", + "title": "列出全部节点", "use_when": [ "需要列出指定 Base 当前版本下的全部 nsheet 节点,包括文件夹、AI 表格、表单视图、仪表盘、文档、查询视图等时。" ] @@ -73429,11 +71091,8 @@ "cli_name": "move-node", "cli_path": "aitable section move-node", "confirmation": "not_required", - "description": "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。\r\n\r\n必填:\r\n- baseId\r\n- nodeId\r\n- newParentSectionId:传空字符串表示移动到 Base 根目录\r\n\r\n可选:\r\n- targetIndex:0-based 全局下标;对分区节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 reorder_section 重试\r\n\r\n服务端会自动识别节点类型,调用方无需区分分区与非分区。\r\n\r\n返回被移动节点的 id、type、目标父级与下标。", + "description": "把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置。\n--new-parent-section-id 传空字符串表示移动到 Base 根目录。\n--target-index 为 0-based 全局下标;对文件夹节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 section reorder 重试。\n服务端会自动识别节点类型,调用方无需区分文件夹与非文件夹。\n返回被移动节点的 id、type、目标父级与下标。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -73531,44 +71190,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。\r\n\r\n必填:\r\n- baseId\r\n- nodeId\r\n- newParentSectionId:传空字符串表示移动到 Base 根目录\r\n\r\n可选:\r\n- targetIndex:0-based 全局下标;对分区节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 reorder_section 重试\r\n\r\n服务端会自动识别节点类型,调用方无需区分分区与非分区。\r\n\r\n返回被移动节点的 id、type、目标父级与下标。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置。\n--new-parent-section-id 传空字符串表示移动到 Base 根目录。\n--target-index 为 0-based 全局下标;对文件夹节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 section reorder 重试。\n服务端会自动识别节点类型,调用方无需区分文件夹与非文件夹。\n返回被移动节点的 id、type、目标父级与下标。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。\r\n\r\n必填:\r\n- baseId\r\n- nodeId\r\n- newParentSectionId:传空字符串表示移动到 Base 根目录\r\n\r\n可选:\r\n- targetIndex:0-based 全局下标;对分区节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 reorder_section 重试\r\n\r\n服务端会自动识别节点类型,调用方无需区分分区与非分区。\r\n\r\n返回被移动节点的 id、type、目标父级与下标。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "把任意 nsheet 节点(分区 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标分区下,可选同时调整全局位置。\r\n\r\n必填:\r\n- baseId\r\n- nodeId\r\n- newParentSectionId:传空字符串表示移动到 Base 根目录\r\n\r\n可选:\r\n- targetIndex:0-based 全局下标;对分区节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 reorder_section 重试\r\n\r\n服务端会自动识别节点类型,调用方无需区分分区与非分区。\r\n\r\n返回被移动节点的 id、type、目标父级与下标。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置。\n--new-parent-section-id 传空字符串表示移动到 Base 根目录。\n--target-index 为 0-based 全局下标;对文件夹节点会先 move 再调 reorder,中间步骤失败时会返回 MOVE_OK_REORDER_FAILED,可用 section reorder 重试。\n服务端会自动识别节点类型,调用方无需区分文件夹与非文件夹。\n返回被移动节点的 id、type、目标父级与下标。" }, "effect": { "candidates": [ @@ -73715,22 +71352,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移动AI表格节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动AI表格节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移动AI表格节点" + "source": "cobra_help", + "value": "移动节点" }, "use_when": { "candidates": [ @@ -74201,7 +71838,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "移动AI表格节点", + "title": "移动节点", "use_when": [ "需要把任意 nsheet 节点(文件夹 / 多维表 / 表单视图 / 仪表盘 / 文档 / 查询视图)移动到目标文件夹下,可选同时调整全局位置时。" ] @@ -74228,11 +71865,8 @@ "cli_name": "rename", "cli_path": "aitable section rename", "confirmation": "not_required", - "description": "重命名指定分区。\r\n\r\n必填 baseId、sectionId、newName。\r\n\r\n返回重命名后的 sectionId 与新的 name。", + "description": "重命名指定文件夹。\n必填 --base-id、--section-id、--new-name。\n返回重命名后的 sectionId 与新的 name。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -74330,44 +71964,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "重命名指定分区。\r\n\r\n必填 baseId、sectionId、newName。\r\n\r\n返回重命名后的 sectionId 与新的 name。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名指定文件夹。\n必填 --base-id、--section-id、--new-name。\n返回重命名后的 sectionId 与新的 name。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "重命名指定分区。\r\n\r\n必填 baseId、sectionId、newName。\r\n\r\n返回重命名后的 sectionId 与新的 name。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "重命名指定分区。\r\n\r\n必填 baseId、sectionId、newName。\r\n\r\n返回重命名后的 sectionId 与新的 name。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "重命名指定文件夹。\n必填 --base-id、--section-id、--new-name。\n返回重命名后的 sectionId 与新的 name。" }, "effect": { "candidates": [ @@ -74514,22 +72126,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "重命名分组" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "重命名分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "重命名分组" + "source": "cobra_help", + "value": "重命名文件夹" }, "use_when": { "candidates": [ @@ -74881,7 +72493,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "重命名分组", + "title": "重命名文件夹", "use_when": [ "需要重命名指定文件夹时。" ] @@ -74908,11 +72520,8 @@ "cli_name": "reorder", "cli_path": "aitable section reorder", "confirmation": "not_required", - "description": "在当前父分区下调整分区的展示顺序。\r\n\r\n必填 baseId、sectionId、targetIndex(0-based)。\r\n\r\n返回被调整的 sectionId。", + "description": "在当前父文件夹下调整文件夹的展示顺序。\n必填 --base-id、--section-id、--target-index(0-based)。\n返回被调整的 sectionId。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -75010,44 +72619,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在当前父分区下调整分区的展示顺序。\r\n\r\n必填 baseId、sectionId、targetIndex(0-based)。\r\n\r\n返回被调整的 sectionId。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在当前父文件夹下调整文件夹的展示顺序。\n必填 --base-id、--section-id、--target-index(0-based)。\n返回被调整的 sectionId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在当前父分区下调整分区的展示顺序。\r\n\r\n必填 baseId、sectionId、targetIndex(0-based)。\r\n\r\n返回被调整的 sectionId。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在当前父分区下调整分区的展示顺序。\r\n\r\n必填 baseId、sectionId、targetIndex(0-based)。\r\n\r\n返回被调整的 sectionId。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在当前父文件夹下调整文件夹的展示顺序。\n必填 --base-id、--section-id、--target-index(0-based)。\n返回被调整的 sectionId。" }, "effect": { "candidates": [ @@ -75194,22 +72781,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "调整分组顺序" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "调整文件夹顺序" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "调整分组顺序" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "调整分组顺序" + "source": "cobra_help", + "value": "调整文件夹顺序" }, "use_when": { "candidates": [ @@ -75583,7 +73170,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "调整分组顺序", + "title": "调整文件夹顺序", "use_when": [ "需要在当前父文件夹下调整文件夹的展示顺序时。" ] @@ -75611,11 +73198,8 @@ "cli_name": "create", "cli_path": "aitable table create", "confirmation": "not_required", - "description": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\r\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为“标题”的 primaryDoc 首列。\r\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为“原名 1 / 原名 2 ...”,并在 summary 中返回当前表名。\r\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。", + "description": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为\"标题\"的 primaryDoc 首列。\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为\"原名 1 / 原名 2 ...\",并在 summary 中返回当前表名。\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。\n\n--fields 参数说明:\n建表时随附创建的初始字段列表,至少包含 1 个字段,单次最多 15 个。若传空数组 [],系统会自动补一个名为\"标题\"的 primaryDoc 首列。\n建议在此处定义结构清晰的基础字段(如文本、数字、日期、单选等);\n复杂字段(关联、流转等)建议建表完成后通过 field create 单独添加。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型,可选值与 config 结构详见下方字段参考\n config(可选): 字段配置,结构因 type 而异,详见下方参考\n\n字段类型参考(括号内为 config 键,* 表示必填,无括号表示无需 config):\n text: 文本 | number: 数字 (formatter) | singleSelect: 单选 (options*)\n multipleSelect: 多选 (options*) | date: 日期 (formatter)\n currency: 货币 (currencyType, formatter) | user: 人员 (multiple)\n department: 部门 (multiple) | group: 群组 (multiple)\n progress: 进度 (formatter, customizeRange, min, max) | rating: 评分 (min, max, icon)\n checkbox: 勾选 | attachment: 附件 | url: 链接 | richText: 富文本\n telephone: 电话 | email: 邮件 | idCard: 身份证 | barcode: 条码\n geolocation: 地理位置 | address: 行政区域 | primaryDoc: 文档 (仅限第一列) | formula: 公式\n filterUp: 查找引用 (targetSheet*, filters*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n lookup: 关联引用 (associateField*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n unidirectionalLink: 单向关联 (linkedTableId*, multiple)\n bidirectionalLink: 双向关联 (linkedTableId*, multiple)\n creator/lastModifier/createdTime/lastModifiedTime: 系统字段\n\nconfig 结构参考:\n formatter(number): INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4|THOUSAND|THOUSAND_FLOAT|PERCENT|PERCENT_FLOAT\n formatter(date): YYYY-MM-DD | YYYY-MM-DD HH:mm | YYYY-MM-DD HH:mm:ss | YYYY/MM/DD | YYYY/MM/DD HH:mm\n formatter(currency): 可省略(默认 FLOAT_2);若需指定小数位可用 INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4\n formatter(progress): 固定填 \"PERCENT\"\n currencyType(currency): CNY|HKD|USD|EUR|GBP|MOP|VND|JPY|KRW|AED|AUD|BRL|CAD|CHF|INR|IDR|MXN|MYR|PHP|PLN|RUB|SGD|THB|TRY|TWD\n options(singleSelect/multipleSelect): [{\"name\":\"选项名\"}, ...] — id 由系统生成,创建时只需传 name;更新时已有选项建议回传原 id\n multiple(user/department/group/unidirectionalLink/bidirectionalLink): true(多选,默认)| false(单选)\n progress: {\"formatter\":\"PERCENT\"} | 自定义范围: {\"formatter\":\"PERCENT\",\"min\":0,\"max\":1,\"customizeRange\":true}\n rating: {\"min\":1,\"max\":5,\"icon\":\"star\"} — max 范围 1~10\n formula: {\"formula\":\"[单价] * [数量]\"} — 使用 AI 表格公式字符串格式,方括号内填写表内字段名\n filterUp: {\"targetSheet\":\"\u003c目标表ID\u003e\",\"filters\":[{\"fieldId\":\"\u003c目标表字段ID\u003e\",\"operator\":\"equal|contain\",\"value\":\"常量值\",\"currentSheetFieldId\":\"\u003c本表字段ID\u003e\",\"link\":\"AND|OR\"}],\"valuesField\":\"\u003c目标表字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n filters 说明:operator 仅支持 equal/contain;value 与 currentSheetFieldId 二选一(value=常量匹配,currentSheetFieldId=按本表字段动态匹配);link 为多条件逻辑(AND/OR),单条件可省略,多条件必须统一\n lookup: {\"associateField\":\"\u003c关联字段ID\u003e\",\"valuesField\":\"\u003c目标字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n unidirectionalLink/bidirectionalLink: {\"linkedTableId\":\"\u003ctableId\u003e\",\"multiple\":true} — 反向关联端由系统自动创建,MCP 对外协议无需额外参数\n\n已知边界:\n formula 字段在当前服务实例上创建会返回 not supported yet,调用前不要假设可用。\n 关联字段创建对底层主键约束严格;即使已传 linkedTableId,也可能因下游返回\"主键不存在不允许创建关联字段\"而失败。\n\n示例:\n [{\"fieldName\":\"任务名称\",\"type\":\"text\"},\n {\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}},\n {\"fieldName\":\"截止日期\",\"type\":\"date\",\"config\":{\"formatter\":\"YYYY-MM-DD\"}},\n {\"fieldName\":\"负责人\",\"type\":\"user\",\"config\":{\"multiple\":false}}]", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -75713,44 +73297,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\r\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为“标题”的 primaryDoc 首列。\r\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为“原名 1 / 原名 2 ...”,并在 summary 中返回当前表名。\r\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为\"标题\"的 primaryDoc 首列。\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为\"原名 1 / 原名 2 ...\",并在 summary 中返回当前表名。\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。\n\n--fields 参数说明:\n建表时随附创建的初始字段列表,至少包含 1 个字段,单次最多 15 个。若传空数组 [],系统会自动补一个名为\"标题\"的 primaryDoc 首列。\n建议在此处定义结构清晰的基础字段(如文本、数字、日期、单选等);\n复杂字段(关联、流转等)建议建表完成后通过 field create 单独添加。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型,可选值与 config 结构详见下方字段参考\n config(可选): 字段配置,结构因 type 而异,详见下方参考\n\n字段类型参考(括号内为 config 键,* 表示必填,无括号表示无需 config):\n text: 文本 | number: 数字 (formatter) | singleSelect: 单选 (options*)\n multipleSelect: 多选 (options*) | date: 日期 (formatter)\n currency: 货币 (currencyType, formatter) | user: 人员 (multiple)\n department: 部门 (multiple) | group: 群组 (multiple)\n progress: 进度 (formatter, customizeRange, min, max) | rating: 评分 (min, max, icon)\n checkbox: 勾选 | attachment: 附件 | url: 链接 | richText: 富文本\n telephone: 电话 | email: 邮件 | idCard: 身份证 | barcode: 条码\n geolocation: 地理位置 | address: 行政区域 | primaryDoc: 文档 (仅限第一列) | formula: 公式\n filterUp: 查找引用 (targetSheet*, filters*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n lookup: 关联引用 (associateField*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n unidirectionalLink: 单向关联 (linkedTableId*, multiple)\n bidirectionalLink: 双向关联 (linkedTableId*, multiple)\n creator/lastModifier/createdTime/lastModifiedTime: 系统字段\n\nconfig 结构参考:\n formatter(number): INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4|THOUSAND|THOUSAND_FLOAT|PERCENT|PERCENT_FLOAT\n formatter(date): YYYY-MM-DD | YYYY-MM-DD HH:mm | YYYY-MM-DD HH:mm:ss | YYYY/MM/DD | YYYY/MM/DD HH:mm\n formatter(currency): 可省略(默认 FLOAT_2);若需指定小数位可用 INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4\n formatter(progress): 固定填 \"PERCENT\"\n currencyType(currency): CNY|HKD|USD|EUR|GBP|MOP|VND|JPY|KRW|AED|AUD|BRL|CAD|CHF|INR|IDR|MXN|MYR|PHP|PLN|RUB|SGD|THB|TRY|TWD\n options(singleSelect/multipleSelect): [{\"name\":\"选项名\"}, ...] — id 由系统生成,创建时只需传 name;更新时已有选项建议回传原 id\n multiple(user/department/group/unidirectionalLink/bidirectionalLink): true(多选,默认)| false(单选)\n progress: {\"formatter\":\"PERCENT\"} | 自定义范围: {\"formatter\":\"PERCENT\",\"min\":0,\"max\":1,\"customizeRange\":true}\n rating: {\"min\":1,\"max\":5,\"icon\":\"star\"} — max 范围 1~10\n formula: {\"formula\":\"[单价] * [数量]\"} — 使用 AI 表格公式字符串格式,方括号内填写表内字段名\n filterUp: {\"targetSheet\":\"\u003c目标表ID\u003e\",\"filters\":[{\"fieldId\":\"\u003c目标表字段ID\u003e\",\"operator\":\"equal|contain\",\"value\":\"常量值\",\"currentSheetFieldId\":\"\u003c本表字段ID\u003e\",\"link\":\"AND|OR\"}],\"valuesField\":\"\u003c目标表字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n filters 说明:operator 仅支持 equal/contain;value 与 currentSheetFieldId 二选一(value=常量匹配,currentSheetFieldId=按本表字段动态匹配);link 为多条件逻辑(AND/OR),单条件可省略,多条件必须统一\n lookup: {\"associateField\":\"\u003c关联字段ID\u003e\",\"valuesField\":\"\u003c目标字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n unidirectionalLink/bidirectionalLink: {\"linkedTableId\":\"\u003ctableId\u003e\",\"multiple\":true} — 反向关联端由系统自动创建,MCP 对外协议无需额外参数\n\n已知边界:\n formula 字段在当前服务实例上创建会返回 not supported yet,调用前不要假设可用。\n 关联字段创建对底层主键约束严格;即使已传 linkedTableId,也可能因下游返回\"主键不存在不允许创建关联字段\"而失败。\n\n示例:\n [{\"fieldName\":\"任务名称\",\"type\":\"text\"},\n {\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}},\n {\"fieldName\":\"截止日期\",\"type\":\"date\",\"config\":{\"formatter\":\"YYYY-MM-DD\"}},\n {\"fieldName\":\"负责人\",\"type\":\"user\",\"config\":{\"multiple\":false}}]" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\r\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为“标题”的 primaryDoc 首列。\r\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为“原名 1 / 原名 2 ...”,并在 summary 中返回当前表名。\r\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\r\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为“标题”的 primaryDoc 首列。\r\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为“原名 1 / 原名 2 ...”,并在 summary 中返回当前表名。\r\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定 Base 中新建表格,并可在创建时附带初始化一批基础字段。\n建表时单次最多附带 15 个字段;若 fields 为空,服务会自动补一个名为\"标题\"的 primaryDoc 首列。\n若 tableName 与当前 Base 下已有表重名,服务会自动续号为\"原名 1 / 原名 2 ...\",并在 summary 中返回当前表名。\n如需添加更多字段,或在已有表中增加字段,请使用 create_fields。\n\n--fields 参数说明:\n建表时随附创建的初始字段列表,至少包含 1 个字段,单次最多 15 个。若传空数组 [],系统会自动补一个名为\"标题\"的 primaryDoc 首列。\n建议在此处定义结构清晰的基础字段(如文本、数字、日期、单选等);\n复杂字段(关联、流转等)建议建表完成后通过 field create 单独添加。\n\n每个字段对象包含:\n fieldName(必填): 字段名称,最大 100 字,不支持换行\n type(必填): 字段类型,可选值与 config 结构详见下方字段参考\n config(可选): 字段配置,结构因 type 而异,详见下方参考\n\n字段类型参考(括号内为 config 键,* 表示必填,无括号表示无需 config):\n text: 文本 | number: 数字 (formatter) | singleSelect: 单选 (options*)\n multipleSelect: 多选 (options*) | date: 日期 (formatter)\n currency: 货币 (currencyType, formatter) | user: 人员 (multiple)\n department: 部门 (multiple) | group: 群组 (multiple)\n progress: 进度 (formatter, customizeRange, min, max) | rating: 评分 (min, max, icon)\n checkbox: 勾选 | attachment: 附件 | url: 链接 | richText: 富文本\n telephone: 电话 | email: 邮件 | idCard: 身份证 | barcode: 条码\n geolocation: 地理位置 | address: 行政区域 | primaryDoc: 文档 (仅限第一列) | formula: 公式\n filterUp: 查找引用 (targetSheet*, filters*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n lookup: 关联引用 (associateField*, valuesField*, aggregator*) — 只读字段,不能通过 record create/update 写入\n unidirectionalLink: 单向关联 (linkedTableId*, multiple)\n bidirectionalLink: 双向关联 (linkedTableId*, multiple)\n creator/lastModifier/createdTime/lastModifiedTime: 系统字段\n\nconfig 结构参考:\n formatter(number): INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4|THOUSAND|THOUSAND_FLOAT|PERCENT|PERCENT_FLOAT\n formatter(date): YYYY-MM-DD | YYYY-MM-DD HH:mm | YYYY-MM-DD HH:mm:ss | YYYY/MM/DD | YYYY/MM/DD HH:mm\n formatter(currency): 可省略(默认 FLOAT_2);若需指定小数位可用 INT|FLOAT_1|FLOAT_2|FLOAT_3|FLOAT_4\n formatter(progress): 固定填 \"PERCENT\"\n currencyType(currency): CNY|HKD|USD|EUR|GBP|MOP|VND|JPY|KRW|AED|AUD|BRL|CAD|CHF|INR|IDR|MXN|MYR|PHP|PLN|RUB|SGD|THB|TRY|TWD\n options(singleSelect/multipleSelect): [{\"name\":\"选项名\"}, ...] — id 由系统生成,创建时只需传 name;更新时已有选项建议回传原 id\n multiple(user/department/group/unidirectionalLink/bidirectionalLink): true(多选,默认)| false(单选)\n progress: {\"formatter\":\"PERCENT\"} | 自定义范围: {\"formatter\":\"PERCENT\",\"min\":0,\"max\":1,\"customizeRange\":true}\n rating: {\"min\":1,\"max\":5,\"icon\":\"star\"} — max 范围 1~10\n formula: {\"formula\":\"[单价] * [数量]\"} — 使用 AI 表格公式字符串格式,方括号内填写表内字段名\n filterUp: {\"targetSheet\":\"\u003c目标表ID\u003e\",\"filters\":[{\"fieldId\":\"\u003c目标表字段ID\u003e\",\"operator\":\"equal|contain\",\"value\":\"常量值\",\"currentSheetFieldId\":\"\u003c本表字段ID\u003e\",\"link\":\"AND|OR\"}],\"valuesField\":\"\u003c目标表字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n filters 说明:operator 仅支持 equal/contain;value 与 currentSheetFieldId 二选一(value=常量匹配,currentSheetFieldId=按本表字段动态匹配);link 为多条件逻辑(AND/OR),单条件可省略,多条件必须统一\n lookup: {\"associateField\":\"\u003c关联字段ID\u003e\",\"valuesField\":\"\u003c目标字段ID\u003e\",\"aggregator\":\"SUM|AVERAGE|COUNT|MAX|MIN|CONCATENATE\"}\n unidirectionalLink/bidirectionalLink: {\"linkedTableId\":\"\u003ctableId\u003e\",\"multiple\":true} — 反向关联端由系统自动创建,MCP 对外协议无需额外参数\n\n已知边界:\n formula 字段在当前服务实例上创建会返回 not supported yet,调用前不要假设可用。\n 关联字段创建对底层主键约束严格;即使已传 linkedTableId,也可能因下游返回\"主键不存在不允许创建关联字段\"而失败。\n\n示例:\n [{\"fieldName\":\"任务名称\",\"type\":\"text\"},\n {\"fieldName\":\"优先级\",\"type\":\"singleSelect\",\"config\":{\"options\":[{\"name\":\"高\"},{\"name\":\"中\"},{\"name\":\"低\"}]}},\n {\"fieldName\":\"截止日期\",\"type\":\"date\",\"config\":{\"formatter\":\"YYYY-MM-DD\"}},\n {\"fieldName\":\"负责人\",\"type\":\"user\",\"config\":{\"multiple\":false}}]" }, "effect": { "candidates": [ @@ -75895,21 +73457,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建数据表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建数据表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建数据表" }, "use_when": { @@ -76178,6 +73740,12 @@ "source": "cobra_usage", "value": "表格名称,1~100 个字符;不能包含 / \\ ? * [ ] : 等字符 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格名称,1~100 个字符;不能包含 / \\ ? * [ ] : 等字符。" + }, { "precedence": "default", "selected": false, @@ -76193,22 +73761,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "tableName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "tableName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -76219,9 +73799,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -76253,7 +73833,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "表格名称,1~100 个字符;不能包含 / \\ ? * [ ] : 等字符。", + "property": "tableName", "required": true, "type": "string" } @@ -76293,7 +73874,7 @@ "cli_name": "delete", "cli_path": "aitable table delete", "confirmation": "user_required", - "description": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\r\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。", + "description": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。\n若该表为 Base 中最后一张表,删除操作会失败(报错 \"cannot delete the last sheet\")。\n此时可改为调用 base delete 删除整个 Base,或先创建一张新表再删除目标表。", "display": "AI 表格操作", "effect": "destructive", "effect_source": "skill-explicit", @@ -76399,22 +73980,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\r\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。\n若该表为 Base 中最后一张表,删除操作会失败(报错 \"cannot delete the last sheet\")。\n此时可改为调用 base delete 删除整个 Base,或先创建一张新表再删除目标表。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\r\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\r\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。" + "source": "cobra_help", + "value": "删除指定 tableId 的数据表(不可逆,数据将永久丢失),该操作为高风险写入。\n调用前请先通过 get_base / get_tables 确认目标表 ID 与名称。\n若该表为 Base 中最后一张表,删除操作会失败(报错 \"cannot delete the last sheet\")。\n此时可改为调用 base delete 删除整个 Base,或先创建一张新表再删除目标表。" }, "effect": { "candidates": [ @@ -76568,21 +74149,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除数据表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除数据表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除数据表" }, "use_when": { @@ -76953,11 +74534,8 @@ "cli_name": "get", "cli_path": "aitable table get", "confirmation": "not_required", - "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。", + "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;\n字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\n若需读取字段的完整配置,请再调用 field get。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -77055,44 +74633,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;\n字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\n若需读取字段的完整配置,请再调用 field get。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;\n字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\n若需读取字段的完整配置,请再调用 field get。" }, "effect": { "candidates": [ @@ -77237,21 +74793,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取数据表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取数据表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取数据表" }, "use_when": { @@ -77543,11 +75099,8 @@ "cli_name": "list", "cli_path": "aitable table list", "confirmation": "not_required", - "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。", + "description": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n这是 dws aitable table get 的便捷别名,两个命令完全等价。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -77645,44 +75198,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n这是 dws aitable table get 的便捷别名,两个命令完全等价。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\r\n会返回 tables 列表;每个 table 直接包含 tableId、tableName、description、fields、views;字段列表仅包含 fieldId、fieldName、type、description;views 仅包含 viewId、viewName、type。\r\n若需读取字段的完整配置,请再调用 get_fields。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取指定 Tables(数据表)的表级信息、字段目录与视图目录。\n这是 dws aitable table get 的便捷别名,两个命令完全等价。" }, "effect": { "candidates": [ @@ -77829,22 +75360,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取数据表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取数据表信息(dws aitable table get 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取数据表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取数据表" + "source": "cobra_help", + "value": "获取数据表信息(dws aitable table get 的别名)" }, "use_when": { "candidates": [ @@ -78108,7 +75639,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取数据表", + "title": "获取数据表信息(dws aitable table get 的别名)", "use_when": [ "需要维持现有脚本或文档中的 table list 兼容调用,并接受其与 table get 等价的结果时。" ] @@ -78146,11 +75677,8 @@ ] ] }, - "description": "重命名指定 Table(数据表)。若新名称不符合命名要求、与同一 Base 下其他表重名或无权限,将返回错误。", + "description": "更新指定 Table(数据表)的名称、备注说明、行命名规则。\n--name / --description / --record-name-key 至少传一项;三者可同时使用。\n\n--record-name-key(行命名规则)取值是固定枚举键,不是字段 ID。常用值:\n ji_lu / project / task / event / question / customer / order /\n contact / item / issue / ticket / candidate / opportunity / meeting / member / okr 等\n完整枚举集合较大,由服务端校验;传非法 key 会被拒。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -78248,44 +75776,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "重命名指定 Table(数据表)。若新名称不符合命名要求、与同一 Base 下其他表重名或无权限,将返回错误。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定 Table(数据表)的名称、备注说明、行命名规则。\n--name / --description / --record-name-key 至少传一项;三者可同时使用。\n\n--record-name-key(行命名规则)取值是固定枚举键,不是字段 ID。常用值:\n ji_lu / project / task / event / question / customer / order /\n contact / item / issue / ticket / candidate / opportunity / meeting / member / okr 等\n完整枚举集合较大,由服务端校验;传非法 key 会被拒。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "重命名指定 Table(数据表)。若新名称不符合命名要求、与同一 Base 下其他表重名或无权限,将返回错误。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "重命名指定 Table(数据表)。若新名称不符合命名要求、与同一 Base 下其他表重名或无权限,将返回错误。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定 Table(数据表)的名称、备注说明、行命名规则。\n--name / --description / --record-name-key 至少传一项;三者可同时使用。\n\n--record-name-key(行命名规则)取值是固定枚举键,不是字段 ID。常用值:\n ji_lu / project / task / event / question / customer / order /\n contact / item / issue / ticket / candidate / opportunity / meeting / member / okr 等\n完整枚举集合较大,由服务端校验;传非法 key 会被拒。" }, "effect": { "candidates": [ @@ -78430,22 +75936,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_table" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新数据表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_table" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_table" + "source": "cobra_help", + "value": "更新数据表" }, "use_when": { "candidates": [ @@ -78692,6 +76198,12 @@ "source": "cobra_usage", "value": "新表名。不能包含 / \\ ? * [ ] : 等特殊字符;与 --description / --record-name-key 三选一" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "新表名,不能包含 / \\ ? * [ ] : 等特殊字符,newTableName、description、recordNameKey 至少传入一项。" + }, { "precedence": "default", "selected": false, @@ -78707,16 +76219,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newTableName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newTableName" }, "required": { "candidates": [ @@ -78767,7 +76285,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "新表名,不能包含 / \\ ? * [ ] : 等特殊字符,newTableName、description、recordNameKey 至少传入一项。", + "property": "newTableName", "required": false, "type": "string" }, @@ -78978,7 +76497,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_table", + "title": "更新数据表", "use_when": [ "需要更新指定 Table(数据表)的名称、备注说明、行命名规则时。" ] @@ -79005,11 +76524,8 @@ "cli_name": "search", "cli_path": "aitable template search", "confirmation": "not_required", - "description": "按名称关键词搜索 AI 表格模板,支持分页。\r\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\r\n返回的 templateId 可直接用于 create_base。\r\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到", + "description": "按名称关键词搜索 AI 表格模板,支持分页。\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\n返回的 templateId 可直接用于 base create。\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到\n不传关键词时返回热门模板。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -79107,44 +76623,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格模板,支持分页。\r\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\r\n返回的 templateId 可直接用于 create_base。\r\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按名称关键词搜索 AI 表格模板,支持分页。\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\n返回的 templateId 可直接用于 base create。\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到\n不传关键词时返回热门模板。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "按名称关键词搜索 AI 表格模板,支持分页。\r\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\r\n返回的 templateId 可直接用于 create_base。\r\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按名称关键词搜索 AI 表格模板,支持分页。\r\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\r\n返回的 templateId 可直接用于 create_base。\r\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按名称关键词搜索 AI 表格模板,支持分页。\n返回每个模板的 templateId、name、description,以及分页信息 hasMore / nextCursor。\n返回的 templateId 可直接用于 base create。\n模板预览链接可通过 https://docs.dingtalk.com/table/template/{templateId} 拼接得到\n不传关键词时返回热门模板。" }, "effect": { "candidates": [ @@ -79289,21 +76783,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索模板" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "搜索模板" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索模板" }, "use_when": { @@ -79686,11 +77180,8 @@ "cli_name": "create", "cli_path": "aitable view create", "confirmation": "not_required", - "description": "在指定数据表(Table)下创建一个新视图(View)。\r\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\r\n若未传 viewName,则会按视图类型自动生成不重名名称。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。", + "description": "在指定数据表(Table)下创建一个新视图(View)。\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\n若未传 --name,则会按视图类型自动生成不重名名称。\n首列字段是每条数据的索引,不支持删除、移动或隐藏。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -79788,44 +77279,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定数据表(Table)下创建一个新视图(View)。\r\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\r\n若未传 viewName,则会按视图类型自动生成不重名名称。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定数据表(Table)下创建一个新视图(View)。\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\n若未传 --name,则会按视图类型自动生成不重名名称。\n首列字段是每条数据的索引,不支持删除、移动或隐藏。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定数据表(Table)下创建一个新视图(View)。\r\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\r\n若未传 viewName,则会按视图类型自动生成不重名名称。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定数据表(Table)下创建一个新视图(View)。\r\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\r\n若未传 viewName,则会按视图类型自动生成不重名名称。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定数据表(Table)下创建一个新视图(View)。\n当前稳定支持的 viewType:Grid、FormDesigner、Gantt、Calendar、Kanban、Gallery。\n若未传 --name,则会按视图类型自动生成不重名名称。\n首列字段是每条数据的索引,不支持删除、移动或隐藏。" }, "effect": { "candidates": [ @@ -79970,21 +77439,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建视图" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建视图" }, "use_when": { @@ -80247,6 +77716,12 @@ "source": "cobra_usage", "value": "视图描述 JSON,如 {\"content\":[]}" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,视图描述,结构与前端 ViewDTO.description 保持一致。" + }, { "precedence": "default", "selected": false, @@ -80259,19 +77734,45 @@ "source": "cobra_usage", "value": "视图描述 JSON,如 {\"content\":[]}" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "object" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "object" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewDescription" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "source": "versioned_parameter_binding", + "value": "viewDescription" }, "required": { "candidates": [ @@ -80316,7 +77817,9 @@ "value": "string" } }, - "property": "desc", + "interface_description": "可选,视图描述,结构与前端 ViewDTO.description 保持一致。", + "interface_type": "object", + "property": "viewDescription", "required": false, "type": "string" }, @@ -80331,6 +77834,12 @@ "source": "cobra_usage", "value": "视图名称,未传时自动生成" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,新视图名称;未传时自动生成。" + }, { "precedence": "default", "selected": false, @@ -80346,16 +77855,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "viewName" }, "required": { "candidates": [ @@ -80400,7 +77915,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "可选,新视图名称;未传时自动生成。", + "property": "viewName", "required": false, "type": "string" }, @@ -80737,7 +78253,7 @@ "cli_name": "delete", "cli_path": "aitable view delete", "confirmation": "user_required", - "description": "删除指定视图(View)。该操作不可逆。\r\n已知保护:禁止删除数据表中的最后一个视图;锁定视图不允许删除。", + "description": "删除指定视图(View)。该操作不可逆。\n禁止删除数据表中的最后一个视图;锁定视图不允许删除。", "display": "AI 表格操作", "effect": "destructive", "effect_source": "skill-explicit", @@ -80843,22 +78359,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定视图(View)。该操作不可逆。\r\n已知保护:禁止删除数据表中的最后一个视图;锁定视图不允许删除。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定视图(View)。该操作不可逆。\n禁止删除数据表中的最后一个视图;锁定视图不允许删除。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定视图(View)。该操作不可逆。\r\n已知保护:禁止删除数据表中的最后一个视图;锁定视图不允许删除。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定视图(View)。该操作不可逆。\r\n已知保护:禁止删除数据表中的最后一个视图;锁定视图不允许删除。" + "source": "cobra_help", + "value": "删除指定视图(View)。该操作不可逆。\n禁止删除数据表中的最后一个视图;锁定视图不允许删除。" }, "effect": { "candidates": [ @@ -81012,21 +78528,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除视图" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除视图" }, "use_when": { @@ -81407,11 +78923,8 @@ "cli_name": "duplicate", "cli_path": "aitable view duplicate", "confirmation": "not_required", - "description": "复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。\r\n\r\n通过 baseId / tableId / sourceViewId 三元组定位源视图;未传 newViewName 时自动生成\"原视图名 (副本)\"风格的不重名名称。\r\n\r\n表单视图复制时会重置分享态,不会带过源视图的分享配置。", + "description": "复制指定视图,生成一个配置完全相同的新视图。\n若不传 --new-name,由系统默认命名(一般为\"原视图名 (副本)\")。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -81509,44 +79022,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。\r\n\r\n通过 baseId / tableId / sourceViewId 三元组定位源视图;未传 newViewName 时自动生成\"原视图名 (副本)\"风格的不重名名称。\r\n\r\n表单视图复制时会重置分享态,不会带过源视图的分享配置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制指定视图,生成一个配置完全相同的新视图。\n若不传 --new-name,由系统默认命名(一般为\"原视图名 (副本)\")。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。\r\n\r\n通过 baseId / tableId / sourceViewId 三元组定位源视图;未传 newViewName 时自动生成\"原视图名 (副本)\"风格的不重名名称。\r\n\r\n表单视图复制时会重置分享态,不会带过源视图的分享配置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "复制指定视图(View),生成一个与源视图结构一致的新视图(包含列顺序、筛选、排序、分组、自定义配置等)。\r\n\r\n通过 baseId / tableId / sourceViewId 三元组定位源视图;未传 newViewName 时自动生成\"原视图名 (副本)\"风格的不重名名称。\r\n\r\n表单视图复制时会重置分享态,不会带过源视图的分享配置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "复制指定视图,生成一个配置完全相同的新视图。\n若不传 --new-name,由系统默认命名(一般为\"原视图名 (副本)\")。" }, "effect": { "candidates": [ @@ -81693,21 +79184,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "复制视图" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "复制视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "复制视图" }, "use_when": { @@ -81858,6 +79349,12 @@ "source": "cobra_usage", "value": "新视图名称(不传则由 server 默认命名)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,复制出的新视图名称;未传时自动生成\"原视图名 (副本)\"风格的不重名名称。" + }, { "precedence": "default", "selected": false, @@ -81873,16 +79370,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newViewName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "newName" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "newName" + "source": "versioned_parameter_binding", + "value": "newViewName" }, "required": { "candidates": [ @@ -81933,7 +79436,8 @@ "value": "string" } }, - "property": "newName", + "interface_description": "可选,复制出的新视图名称;未传时自动生成\"原视图名 (副本)\"风格的不重名名称。", + "property": "newViewName", "required": false, "type": "string" }, @@ -82051,6 +79555,12 @@ "source": "cobra_usage", "value": "源 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要复制的源视图(View)的唯一标识。" + }, { "precedence": "default", "selected": false, @@ -82066,22 +79576,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "sourceViewId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "sourceViewId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -82092,9 +79614,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -82126,7 +79648,8 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "要复制的源视图(View)的唯一标识。", + "property": "sourceViewId", "required": true, "type": "string" } @@ -82151,6 +79674,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_aggregate", "skills/mono/references/products/aitable.md", @@ -82166,7 +79690,7 @@ "cli_name": "aggregate", "cli_path": "aitable view get aggregate", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 aggregate 配置。\n适用视图:Grid。返回字段聚合统计配置(map[fieldId]→AggregateAction)。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -82194,9 +79718,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -82208,8 +79732,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -82265,22 +79789,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 aggregate 配置。\n适用视图:Grid。返回字段聚合统计配置(map[fieldId]→AggregateAction)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 aggregate 配置。\n适用视图:Grid。返回字段聚合统计配置(map[fieldId]→AggregateAction)。" }, "effect": { "candidates": [ @@ -82334,9 +79858,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -82348,22 +79872,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -82371,10 +79902,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -82434,22 +79965,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 aggregate 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 aggregate 配置" }, "use_when": { "candidates": [ @@ -82702,6 +80233,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -82714,19 +80251,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -82777,7 +80340,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -82788,7 +80353,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 aggregate 配置", "use_when": [ "需要获取指定视图的 aggregate 配置时。" ] @@ -82802,6 +80367,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_card", "skills/mono/references/products/aitable.md", @@ -82817,7 +80383,7 @@ "cli_name": "card", "cli_path": "aitable view get card", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 card 配置。\n适用视图:Kanban / Gallery。返回对应视图的卡片配置子块(kanbanCard 或 galleryCard)。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -82845,9 +80411,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -82859,8 +80425,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -82916,22 +80482,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 card 配置。\n适用视图:Kanban / Gallery。返回对应视图的卡片配置子块(kanbanCard 或 galleryCard)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 card 配置。\n适用视图:Kanban / Gallery。返回对应视图的卡片配置子块(kanbanCard 或 galleryCard)。" }, "effect": { "candidates": [ @@ -82985,9 +80551,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -82999,22 +80565,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -83022,10 +80595,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -83085,22 +80658,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 card 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 card 配置" }, "use_when": { "candidates": [ @@ -83353,6 +80926,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -83365,19 +80944,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -83428,7 +81033,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -83439,7 +81046,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 card 配置", "use_when": [ "需要获取指定视图的 card 配置时。" ] @@ -83453,6 +81060,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_field_widths", "skills/mono/references/products/aitable.md", @@ -83468,7 +81076,7 @@ "cli_name": "field-widths", "cli_path": "aitable view get field-widths", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 field-widths 配置。\n适用视图:Grid。返回字段列宽映射(map[fieldId]→width)。注意服务端响应里落在 custom.widthMap,read 路径已自动投影到此。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -83496,9 +81104,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -83510,8 +81118,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -83567,22 +81175,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 field-widths 配置。\n适用视图:Grid。返回字段列宽映射(map[fieldId]→width)。注意服务端响应里落在 custom.widthMap,read 路径已自动投影到此。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 field-widths 配置。\n适用视图:Grid。返回字段列宽映射(map[fieldId]→width)。注意服务端响应里落在 custom.widthMap,read 路径已自动投影到此。" }, "effect": { "candidates": [ @@ -83636,9 +81244,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -83650,22 +81258,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -83673,10 +81288,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -83736,22 +81351,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 field-widths 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 field-widths 配置" }, "use_when": { "candidates": [ @@ -84004,6 +81619,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -84016,19 +81637,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -84079,7 +81726,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -84090,7 +81739,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 field-widths 配置", "use_when": [ "需要获取指定视图的 field-widths 配置时。" ] @@ -84104,6 +81753,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_fill_color_rule", "skills/mono/references/products/aitable.md", @@ -84119,7 +81769,7 @@ "cli_name": "fill-color-rule", "cli_path": "aitable view get fill-color-rule", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 fill-color-rule 配置。\n读取视图当前的条件填色规则(conditionalFormats 数组)。所有视图类型都支持。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -84147,9 +81797,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -84161,8 +81811,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -84218,22 +81868,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 fill-color-rule 配置。\n读取视图当前的条件填色规则(conditionalFormats 数组)。所有视图类型都支持。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 fill-color-rule 配置。\n读取视图当前的条件填色规则(conditionalFormats 数组)。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -84287,9 +81937,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -84301,22 +81951,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -84324,10 +81981,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -84387,22 +82044,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 fill-color-rule 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 fill-color-rule 配置" }, "use_when": { "candidates": [ @@ -84655,6 +82312,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -84667,19 +82330,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -84730,7 +82419,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -84741,7 +82432,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 fill-color-rule 配置", "use_when": [ "需要获取指定视图的 fill-color-rule 配置时。" ] @@ -84755,6 +82446,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_filter", "skills/mono/references/products/aitable.md", @@ -84770,7 +82462,7 @@ "cli_name": "filter", "cli_path": "aitable view get filter", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 filter 配置。\n返回视图当前的筛选规则数组。所有视图类型都支持。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -84798,9 +82490,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -84812,8 +82504,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -84869,22 +82561,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 filter 配置。\n返回视图当前的筛选规则数组。所有视图类型都支持。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 filter 配置。\n返回视图当前的筛选规则数组。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -84938,9 +82630,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -84952,22 +82644,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -84975,10 +82674,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -85038,22 +82737,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 filter 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 filter 配置" }, "use_when": { "candidates": [ @@ -85306,6 +83005,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -85318,19 +83023,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -85381,7 +83112,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -85392,7 +83125,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 filter 配置", "use_when": [ "需要获取指定视图的 filter 配置时。" ] @@ -85420,11 +83153,8 @@ "cli_name": "frozen-cols", "cli_path": "aitable view get frozen-cols", "confirmation": "not_required", - "description": "查询指定视图(View)当前的冻结列数(左侧固定列)。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 1),由调用方根据业务约定决定如何兜底。", + "description": "获取指定视图当前冻结的左侧列数。\n返回 {baseId, tableId, viewId, count}:count 为 null 表示视图未显式设置冻结列。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -85522,44 +83252,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的冻结列数(左侧固定列)。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 1),由调用方根据业务约定决定如何兜底。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图当前冻结的左侧列数。\n返回 {baseId, tableId, viewId, count}:count 为 null 表示视图未显式设置冻结列。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的冻结列数(左侧固定列)。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 1),由调用方根据业务约定决定如何兜底。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定视图(View)当前的冻结列数(左侧固定列)。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 1),由调用方根据业务约定决定如何兜底。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定视图当前冻结的左侧列数。\n返回 {baseId, tableId, viewId, count}:count 为 null 表示视图未显式设置冻结列。" }, "effect": { "candidates": [ @@ -85706,21 +83414,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取视图冻结列数" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取视图冻结列数" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取视图冻结列数" }, "use_when": { @@ -86087,6 +83795,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_group", "skills/mono/references/products/aitable.md", @@ -86102,7 +83811,7 @@ "cli_name": "group", "cli_path": "aitable view get group", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 group 配置。\n返回视图当前的分组规则数组。所有视图类型都支持。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -86130,9 +83839,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -86144,8 +83853,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -86201,22 +83910,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 group 配置。\n返回视图当前的分组规则数组。所有视图类型都支持。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 group 配置。\n返回视图当前的分组规则数组。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -86270,9 +83979,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -86284,22 +83993,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -86307,10 +84023,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -86370,22 +84086,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 group 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 group 配置" }, "use_when": { "candidates": [ @@ -86638,6 +84354,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -86650,19 +84372,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -86713,7 +84461,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -86724,7 +84474,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 group 配置", "use_when": [ "需要获取指定视图的 group 配置时。" ] @@ -86752,11 +84502,8 @@ "cli_name": "lock", "cli_path": "aitable view get lock", "confirmation": "not_required", - "description": "查询指定视图(View)当前的锁定状态。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图,返回 locked 字段(true 表示已锁定)。", + "description": "获取指定视图的锁定状态。返回 {baseId, tableId, viewId, locked: \u003cbool\u003e}:\nlocked 为 true 表示视图已锁定,false 表示未锁定。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -86854,44 +84601,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的锁定状态。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图,返回 locked 字段(true 表示已锁定)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的锁定状态。返回 {baseId, tableId, viewId, locked: \u003cbool\u003e}:\nlocked 为 true 表示视图已锁定,false 表示未锁定。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的锁定状态。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图,返回 locked 字段(true 表示已锁定)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定视图(View)当前的锁定状态。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图,返回 locked 字段(true 表示已锁定)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定视图的锁定状态。返回 {baseId, tableId, viewId, locked: \u003cbool\u003e}:\nlocked 为 true 表示视图已锁定,false 表示未锁定。" }, "effect": { "candidates": [ @@ -87038,21 +84763,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取视图锁定状态" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取视图锁定状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取视图锁定状态" }, "use_when": { @@ -87433,11 +85158,8 @@ "cli_name": "row-height", "cli_path": "aitable view get row-height", "confirmation": "not_required", - "description": "查询指定视图(View)当前的单元格行高,单位为像素。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 32px),由调用方根据业务约定决定如何兜底。", + "description": "获取指定视图当前的单元格行高,单位为像素。\n返回 {baseId, tableId, viewId, cellHeight}:cellHeight 为 null 表示视图未显式设置(前端实际显示回落到默认 32px)。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -87535,44 +85257,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的单元格行高,单位为像素。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 32px),由调用方根据业务约定决定如何兜底。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图当前的单元格行高,单位为像素。\n返回 {baseId, tableId, viewId, cellHeight}:cellHeight 为 null 表示视图未显式设置(前端实际显示回落到默认 32px)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定视图(View)当前的单元格行高,单位为像素。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 32px),由调用方根据业务约定决定如何兜底。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定视图(View)当前的单元格行高,单位为像素。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n视图未显式设置时返回 null(前端实际显示会回落到默认 32px),由调用方根据业务约定决定如何兜底。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定视图当前的单元格行高,单位为像素。\n返回 {baseId, tableId, viewId, cellHeight}:cellHeight 为 null 表示视图未显式设置(前端实际显示回落到默认 32px)。" }, "effect": { "candidates": [ @@ -87719,22 +85419,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取视图行高" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图行高(单元格高度)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取视图行高" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取视图行高" + "source": "cobra_help", + "value": "获取视图行高(单元格高度)" }, "use_when": { "candidates": [ @@ -88086,7 +85786,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取视图行高", + "title": "获取视图行高(单元格高度)", "use_when": [ "需要获取指定视图当前的单元格行高,单位为像素时。" ] @@ -88100,6 +85800,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_sort", "skills/mono/references/products/aitable.md", @@ -88115,7 +85816,7 @@ "cli_name": "sort", "cli_path": "aitable view get sort", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 sort 配置。\n返回视图当前的排序规则数组。所有视图类型都支持。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -88143,9 +85844,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -88157,8 +85858,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -88214,22 +85915,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 sort 配置。\n返回视图当前的排序规则数组。所有视图类型都支持。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 sort 配置。\n返回视图当前的排序规则数组。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -88283,9 +85984,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -88297,22 +85998,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -88320,10 +86028,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -88383,22 +86091,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 sort 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 sort 配置" }, "use_when": { "candidates": [ @@ -88651,6 +86359,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -88663,19 +86377,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -88726,7 +86466,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -88737,7 +86479,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 sort 配置", "use_when": [ "需要获取指定视图的 sort 配置时。" ] @@ -88751,6 +86493,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_timebar", "skills/mono/references/products/aitable.md", @@ -88766,7 +86509,7 @@ "cli_name": "timebar", "cli_path": "aitable view get timebar", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 timebar 配置。\n适用视图:Gantt。返回 ganttTimebar 子块(startField / endField / displayFieldId / timelineScale / colorConfigs / officialHoliday)。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -88794,9 +86537,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -88808,8 +86551,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -88865,22 +86608,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 timebar 配置。\n适用视图:Gantt。返回 ganttTimebar 子块(startField / endField / displayFieldId / timelineScale / colorConfigs / officialHoliday)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 timebar 配置。\n适用视图:Gantt。返回 ganttTimebar 子块(startField / endField / displayFieldId / timelineScale / colorConfigs / officialHoliday)。" }, "effect": { "candidates": [ @@ -88934,9 +86677,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -88948,22 +86691,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -88971,10 +86721,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -89034,22 +86784,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 timebar 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 timebar 配置" }, "use_when": { "candidates": [ @@ -89302,6 +87052,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -89314,19 +87070,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -89377,7 +87159,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -89388,7 +87172,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 timebar 配置", "use_when": [ "需要获取指定视图的 timebar 配置时。" ] @@ -89402,6 +87186,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.aitable.view_get_visible_fields", "skills/mono/references/products/aitable.md", @@ -89417,7 +87202,7 @@ "cli_name": "visible-fields", "cli_path": "aitable view get visible-fields", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "获取指定视图的 visible-fields 配置。\n返回视图当前可见字段 ID 列表(即 columns 字段,按显示顺序)。所有视图类型都支持。", "display": "AI 表格操作", "effect": "read", "effect_source": "command-verb", @@ -89445,9 +87230,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -89459,8 +87244,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -89516,22 +87301,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定视图的 visible-fields 配置。\n返回视图当前可见字段 ID 列表(即 columns 字段,按显示顺序)。所有视图类型都支持。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" + "source": "cobra_help", + "value": "获取指定视图的 visible-fields 配置。\n返回视图当前可见字段 ID 列表(即 columns 字段,按显示顺序)。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -89585,9 +87370,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, { @@ -89599,22 +87384,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "explicit", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/interface-refs.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" } }, + { + "precedence": "explicit", + "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", + "selected": false, + "source": "internal/cli/schema_hints/interface-refs.json", + "value": "aitable.get_views" + }, { "precedence": "mcp_fallback", "selected": false, @@ -89622,10 +87414,10 @@ "value": "aitable.get_views" } ], - "precedence": "explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "aitable", "rpc_name": "get_views" @@ -89685,22 +87477,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图 visible-fields 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图 visible-fields 配置" }, "use_when": { "candidates": [ @@ -89953,6 +87745,12 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。" + }, { "precedence": "default", "selected": false, @@ -89965,19 +87763,45 @@ "source": "cobra_usage", "value": "目标 View ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "viewIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "viewId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "viewId" + "source": "versioned_parameter_binding", + "value": "viewIds" }, "required": { "candidates": [ @@ -90028,7 +87852,9 @@ "value": "string" } }, - "property": "viewId", + "interface_description": "可选,待获取详情的视图(View)ID 列表。显式传入时单次最多 10 个;省略时默认返回当前表下全部视图。", + "interface_type": "array", + "property": "viewIds", "required": true, "type": "string" } @@ -90039,7 +87865,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图 visible-fields 配置", "use_when": [ "需要获取指定视图的 visible-fields 配置时。" ] @@ -90066,11 +87892,8 @@ "cli_name": "list", "cli_path": "aitable view list", "confirmation": "not_required", - "description": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。", + "description": "批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)。\n这是 dws aitable view get 的便捷别名,两个命令完全等价;不传 --view-ids 时返回当前表全部视图。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -90168,44 +87991,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)。\n这是 dws aitable view get 的便捷别名,两个命令完全等价;不传 --view-ids 时返回当前表全部视图。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定数据表(Table)中的视图(View)完整信息,包括列顺序、筛选、排序、分组、条件格式、自定义配置等。\r\n支持两种模式:\r\n- 显式选择:传入 viewIds,按入参顺序返回这些视图;单次最多 10 个。\r\n- 默认全量:省略 viewIds,返回当前表下全部视图,顺序与当前表视图目录一致。\r\n对 Kanban / Gantt / Gallery 视图,会在返回上额外提供 kanbanCard / ganttTimebar / galleryCard 三个类型化卡片配置块,其他视图类型为 null。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)。\n这是 dws aitable view get 的便捷别名,两个命令完全等价;不传 --view-ids 时返回当前表全部视图。" }, "effect": { "candidates": [ @@ -90352,22 +88153,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_views" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取视图信息(dws aitable view get 的别名)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_views" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_views" + "source": "cobra_help", + "value": "获取视图信息(dws aitable view get 的别名)" }, "use_when": { "candidates": [ @@ -90728,7 +88529,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_views", + "title": "获取视图信息(dws aitable view get 的别名)", "use_when": [ "需要批量获取指定 Table 下的视图配置(含 viewId、viewName、type、filter、sort、group、visibleFieldIds、fieldWidths 等)时。" ] @@ -90756,11 +88557,8 @@ "cli_name": "lock", "cli_path": "aitable view lock", "confirmation": "not_required", - "description": "锁定或解锁指定视图(View)。\r\n\r\n- lock:锁定后视图不再允许被修改或删除\r\n- unlock:解锁后恢复可编辑状态\r\n\r\n操作幂等:对已锁定视图再次 lock 或对未锁定视图再次 unlock 不会报错。", + "description": "锁定指定视图,禁止他人编辑。默认锁定;传 --off 解锁。\n返回 {baseId, tableId, viewId, action, locked}。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -90858,44 +88656,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "锁定或解锁指定视图(View)。\r\n\r\n- lock:锁定后视图不再允许被修改或删除\r\n- unlock:解锁后恢复可编辑状态\r\n\r\n操作幂等:对已锁定视图再次 lock 或对未锁定视图再次 unlock 不会报错。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "锁定指定视图,禁止他人编辑。默认锁定;传 --off 解锁。\n返回 {baseId, tableId, viewId, action, locked}。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "锁定或解锁指定视图(View)。\r\n\r\n- lock:锁定后视图不再允许被修改或删除\r\n- unlock:解锁后恢复可编辑状态\r\n\r\n操作幂等:对已锁定视图再次 lock 或对未锁定视图再次 unlock 不会报错。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "锁定或解锁指定视图(View)。\r\n\r\n- lock:锁定后视图不再允许被修改或删除\r\n- unlock:解锁后恢复可编辑状态\r\n\r\n操作幂等:对已锁定视图再次 lock 或对未锁定视图再次 unlock 不会报错。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "锁定指定视图,禁止他人编辑。默认锁定;传 --off 解锁。\n返回 {baseId, tableId, viewId, action, locked}。" }, "effect": { "candidates": [ @@ -91042,22 +88818,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "锁定或解锁视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "锁定/解锁视图" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "锁定或解锁视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "锁定或解锁视图" + "source": "cobra_help", + "value": "锁定/解锁视图" }, "use_when": { "candidates": [ @@ -91222,16 +88998,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Conditional CLI selector: absence maps to action=lock while --off=true maps to action=unlock; the boolean flag value is never passed to lock_or_unlock_view and therefore has no direct RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "off" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "off" + "review_reason": "Conditional CLI selector: absence maps to action=lock while --off=true maps to action=unlock; the boolean flag value is never passed to lock_or_unlock_view and therefore has no direct RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -91276,7 +89060,6 @@ "value": "boolean" } }, - "property": "off", "required": false, "type": "boolean" }, @@ -91493,7 +89276,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "锁定或解锁视图", + "title": "锁定/解锁视图", "use_when": [ "需要锁定指定视图,禁止他人编辑时。" ] @@ -91530,7 +89313,7 @@ ] ] }, - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "更新 Grid 视图的 aggregate 配置。value 为 map[fieldId]→AggregateAction string,\n传 null 清除单个字段聚合。便捷 flag:--field-id / --action 单字段写入;--clear-field-id 单/多清除。", "display": "AI 表格操作", "effect": "write", "effect_source": "command-verb", @@ -91637,22 +89420,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新 Grid 视图的 aggregate 配置。value 为 map[fieldId]→AggregateAction string,\n传 null 清除单个字段聚合。便捷 flag:--field-id / --action 单字段写入;--clear-field-id 单/多清除。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" + "source": "cobra_help", + "value": "更新 Grid 视图的 aggregate 配置。value 为 map[fieldId]→AggregateAction string,\n传 null 清除单个字段聚合。便捷 flag:--field-id / --action 单字段写入;--clear-field-id 单/多清除。" }, "effect": { "candidates": [ @@ -91709,7 +89492,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -91722,19 +89505,41 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." }, "interface_ref": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ { "precedence": "explicit", "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "selected": true, + "selected": false, "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "value": "aitable.update_view" }, { "precedence": "mcp_fallback", @@ -91743,14 +89548,11 @@ "value": "aitable.update_view" } ], - "precedence": "explicit", - "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -91806,22 +89608,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图字段聚合统计(仅 Grid)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图字段聚合统计(仅 Grid)" }, "use_when": { "candidates": [ @@ -91847,11 +89649,8 @@ "group": "view.update", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "view_update_aggregate", @@ -91883,16 +89682,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper pairs --action with a dynamic --field-id key inside config.aggregate, so it has no independent direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "action" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "action" + "review_reason": "Composite wrapper pairs --action with a dynamic --field-id key inside config.aggregate, so it has no independent direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -91937,7 +89744,6 @@ "value": "string" } }, - "property": "action", "required": false, "type": "string" }, @@ -92070,16 +89876,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper expands each selected field ID into a dynamic null entry inside config.aggregate, so there is no single direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "clearFieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "clearFieldId" + "review_reason": "Composite wrapper expands each selected field ID into a dynamic null entry inside config.aggregate, so there is no single direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -92124,7 +89938,6 @@ "value": "string" } }, - "property": "clearFieldId", "required": false, "type": "string" }, @@ -92154,16 +89967,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper uses the supplied field ID as a dynamic key inside config.aggregate, so there is no static direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldId" + "review_reason": "Composite wrapper uses the supplied field ID as a dynamic key inside config.aggregate, so there is no static direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -92208,7 +90029,6 @@ "value": "string" } }, - "property": "fieldId", "required": false, "type": "string" }, @@ -92238,16 +90058,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper locally merges the aggregate JSON map with typed changes before update_view, so the flag is not one direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "review_reason": "Composite wrapper locally merges the aggregate JSON map with typed changes before update_view, so the flag is not one direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -92306,7 +90134,6 @@ "value": "string" } }, - "property": "json", "required": false, "type": "string" }, @@ -92523,7 +90350,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图字段聚合统计(仅 Grid)", "use_when": [ "需要更新 Grid 视图的 aggregate 配置时。" ] @@ -92571,7 +90398,7 @@ ] ] }, - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性局部更新视图的 card 配置。preflight 调 get_views 拿 viewType 后分发:\n - Kanban → kanbanCard {coverFieldId, coverResizeMode, hiddenFieldTitle}\n - Gallery → galleryCard {coverMode, coverFieldId, coverResizeMode, displayFieldName}\ntyped flag 与 --json 同时存在时,typed flag 优先。--no-cover 与 --cover-field-id 互斥。", "display": "AI 表格操作", "effect": "write", "effect_source": "command-verb", @@ -92678,22 +90505,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性局部更新视图的 card 配置。preflight 调 get_views 拿 viewType 后分发:\n - Kanban → kanbanCard {coverFieldId, coverResizeMode, hiddenFieldTitle}\n - Gallery → galleryCard {coverMode, coverFieldId, coverResizeMode, displayFieldName}\ntyped flag 与 --json 同时存在时,typed flag 优先。--no-cover 与 --cover-field-id 互斥。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" + "source": "cobra_help", + "value": "按属性局部更新视图的 card 配置。preflight 调 get_views 拿 viewType 后分发:\n - Kanban → kanbanCard {coverFieldId, coverResizeMode, hiddenFieldTitle}\n - Gallery → galleryCard {coverMode, coverFieldId, coverResizeMode, displayFieldName}\ntyped flag 与 --json 同时存在时,typed flag 优先。--no-cover 与 --cover-field-id 互斥。" }, "effect": { "candidates": [ @@ -92750,7 +90577,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -92763,19 +90590,41 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." }, "interface_ref": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ { "precedence": "explicit", "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "selected": true, + "selected": false, "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "value": "aitable.update_view" }, { "precedence": "mcp_fallback", @@ -92784,14 +90633,11 @@ "value": "aitable.update_view" } ], - "precedence": "explicit", - "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -92847,22 +90693,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图 card 配置(Kanban / Gallery)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图 card 配置(Kanban / Gallery)" }, "use_when": { "candidates": [ @@ -92888,11 +90734,8 @@ "group": "view.update", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "view_update_card", @@ -93027,16 +90870,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "coverFieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "coverFieldId" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93087,7 +90938,6 @@ "value": "string" } }, - "property": "coverFieldId", "required": false, "type": "string" }, @@ -93117,16 +90967,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "coverMode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "coverMode" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93177,7 +91035,6 @@ "value": "string" } }, - "property": "coverMode", "required": false, "type": "string" }, @@ -93207,16 +91064,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "coverResizeMode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "coverResizeMode" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93267,7 +91132,6 @@ "value": "string" } }, - "property": "coverResizeMode", "required": false, "type": "string" }, @@ -93297,16 +91161,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "displayFieldName" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "displayFieldName" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93357,7 +91229,6 @@ "value": "boolean" } }, - "property": "displayFieldName", "required": false, "type": "boolean" }, @@ -93387,16 +91258,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "hiddenFieldTitle" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "hiddenFieldTitle" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93447,7 +91326,6 @@ "value": "boolean" } }, - "property": "hiddenFieldTitle", "required": false, "type": "boolean" }, @@ -93477,16 +91355,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper selects kanbanCard or galleryCard and locally merges the JSON block before update_view, so it has no single direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "review_reason": "Composite wrapper selects kanbanCard or galleryCard and locally merges the JSON block before update_view, so it has no single direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93551,7 +91437,6 @@ "value": "string" } }, - "property": "json", "required": false, "type": "string" }, @@ -93581,16 +91466,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper converts the flag to coverFieldId=NONE in a runtime-selected card block, so the boolean itself is not a direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "noCover" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "noCover" + "review_reason": "Composite wrapper converts the flag to coverFieldId=NONE in a runtime-selected card block, so the boolean itself is not a direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -93641,7 +91534,6 @@ "value": "boolean" } }, - "property": "noCover", "required": false, "type": "boolean" }, @@ -93858,7 +91750,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图 card 配置(Kanban / Gallery)", "use_when": [ "需要按属性局部更新指定视图的卡片配置时。" ] @@ -93895,7 +91787,7 @@ ] ] }, - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "更新 Grid 视图的字段列宽。value 为 map[fieldId]→width(int),可单字段或批量。", "display": "AI 表格操作", "effect": "write", "effect_source": "command-verb", @@ -94002,22 +91894,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新 Grid 视图的字段列宽。value 为 map[fieldId]→width(int),可单字段或批量。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" + "source": "cobra_help", + "value": "更新 Grid 视图的字段列宽。value 为 map[fieldId]→width(int),可单字段或批量。" }, "effect": { "candidates": [ @@ -94074,7 +91966,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -94087,19 +91979,41 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." }, "interface_ref": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ { "precedence": "explicit", "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "selected": true, + "selected": false, "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "value": "aitable.update_view" }, { "precedence": "mcp_fallback", @@ -94108,14 +92022,11 @@ "value": "aitable.update_view" } ], - "precedence": "explicit", - "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -94171,22 +92082,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图字段列宽(仅 Grid)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图字段列宽(仅 Grid)" }, "use_when": { "candidates": [ @@ -94212,11 +92123,8 @@ "group": "view.update", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "view_update_field_widths", @@ -94351,16 +92259,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper uses the field ID as a dynamic key inside config.fieldWidths after a get_views preflight, so there is no static property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldId" + "review_reason": "Composite wrapper uses the field ID as a dynamic key inside config.fieldWidths after a get_views preflight, so there is no static property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -94405,7 +92321,6 @@ "value": "string" } }, - "property": "fieldId", "required": false, "type": "string" }, @@ -94435,16 +92350,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper locally merges a dynamic field-width map before update_view, so the JSON flag is not one direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "review_reason": "Composite wrapper locally merges a dynamic field-width map before update_view, so the JSON flag is not one direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -94503,7 +92426,6 @@ "value": "string" } }, - "property": "json", "required": false, "type": "string" }, @@ -94739,16 +92661,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper pairs width with a dynamic field-id key inside config.fieldWidths, so width has no independent direct property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "width" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "width" + "review_reason": "Composite wrapper pairs width with a dynamic field-id key inside config.fieldWidths, so width has no independent direct property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -94793,7 +92723,6 @@ "value": "integer" } }, - "property": "width", "required": false, "type": "integer" } @@ -94804,7 +92733,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图字段列宽(仅 Grid)", "use_when": [ "需要更新 Grid 视图的字段列宽时。" ] @@ -94832,11 +92761,8 @@ "cli_name": "fill-color-rule", "cli_path": "aitable view update fill-color-rule", "confirmation": "not_required", - "description": "设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。传空数组 [] 表示清空当前视图的填色规则。单次最多设置 40 条规则;超出会被拒绝。注意:每条规则的 filters 数组只能有 1 条(filters[0])。如需多条件,请拆成多条规则。仅支持 Grid 视图;锁定视图不允许修改。", + "description": "全量覆盖指定 Grid 视图的条件填色规则。仅支持 --json 入口,每项规则结构:\n {type: cell|row|column|preRow, formatFieldId, format: {color}, filters: [{fieldId, symbol, value?}]}\n- color 必须用 FORMAT_COLORS 代号(如 firstLine1..firstLine11),不支持 hex\n- symbol 取 GT/LT/GTE/LTE/EQ/NE/CONTAIN/EXCLUSIVE/EXIST/UN_EXIST/ALL_OF/ANY_OF/NONE_OF/BEFORE/AFTER/NOT_BEFORE/NOT_AFTER/DATE_EQ/FROM_NOW/DATE_BETWEEN\n- 传 --json '[]' 清空当前视图所有填色规则", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -94934,44 +92860,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。传空数组 [] 表示清空当前视图的填色规则。单次最多设置 40 条规则;超出会被拒绝。注意:每条规则的 filters 数组只能有 1 条(filters[0])。如需多条件,请拆成多条规则。仅支持 Grid 视图;锁定视图不允许修改。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "全量覆盖指定 Grid 视图的条件填色规则。仅支持 --json 入口,每项规则结构:\n {type: cell|row|column|preRow, formatFieldId, format: {color}, filters: [{fieldId, symbol, value?}]}\n- color 必须用 FORMAT_COLORS 代号(如 firstLine1..firstLine11),不支持 hex\n- symbol 取 GT/LT/GTE/LTE/EQ/NE/CONTAIN/EXCLUSIVE/EXIST/UN_EXIST/ALL_OF/ANY_OF/NONE_OF/BEFORE/AFTER/NOT_BEFORE/NOT_AFTER/DATE_EQ/FROM_NOW/DATE_BETWEEN\n- 传 --json '[]' 清空当前视图所有填色规则" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。传空数组 [] 表示清空当前视图的填色规则。单次最多设置 40 条规则;超出会被拒绝。注意:每条规则的 filters 数组只能有 1 条(filters[0])。如需多条件,请拆成多条规则。仅支持 Grid 视图;锁定视图不允许修改。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置指定表格视图(Grid View)的条件填色规则(全量覆盖)。传空数组 [] 表示清空当前视图的填色规则。单次最多设置 40 条规则;超出会被拒绝。注意:每条规则的 filters 数组只能有 1 条(filters[0])。如需多条件,请拆成多条规则。仅支持 Grid 视图;锁定视图不允许修改。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "全量覆盖指定 Grid 视图的条件填色规则。仅支持 --json 入口,每项规则结构:\n {type: cell|row|column|preRow, formatFieldId, format: {color}, filters: [{fieldId, symbol, value?}]}\n- color 必须用 FORMAT_COLORS 代号(如 firstLine1..firstLine11),不支持 hex\n- symbol 取 GT/LT/GTE/LTE/EQ/NE/CONTAIN/EXCLUSIVE/EXIST/UN_EXIST/ALL_OF/ANY_OF/NONE_OF/BEFORE/AFTER/NOT_BEFORE/NOT_AFTER/DATE_EQ/FROM_NOW/DATE_BETWEEN\n- 传 --json '[]' 清空当前视图所有填色规则" }, "effect": { "candidates": [ @@ -95118,22 +93022,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置视图填色规则" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图数据高亮规则" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置视图填色规则" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置视图填色规则" + "source": "cobra_help", + "value": "更新视图数据高亮规则" }, "use_when": { "candidates": [ @@ -95283,6 +93187,12 @@ "source": "cobra_usage", "value": "conditionalFormats JSON 数组(整组替换;传 [] 清空)(必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "填色规则列表。传空数组 [] 表示清空当前视图的填色规则。调用后会全量覆盖原先的填色规则。单次最多 40 条。\n\n每个数组项是一个对象,必须包含以下四个核心字段:\n\n1. type (string, 必填): 填色规则作用范围。\n - 枚举值: \"cell\" (单元格), \"row\" (行), \"column\" (列), \"preRow\" (行头)\n\n2. formatFieldId (string, 必填): 填色规则所关联的字段 ID。\n\n3. format (object, 必填): 填色样式配置。\n - 结构: { \"color\": string }\n - color (string, 必填): 填色代号。严禁使用 'red'/'green' 等裸颜色名或 '#RRGGBB' hex 值。必须从以下集合选取:\n A. 深底色(推荐默认): \"firstLine1\"(红), \"firstLine2\"(橙), \"firstLine3\"(黄), \"firstLine4\"(青柠), \"firstLine5\"(绿), \"firstLine6\"(青), \"firstLine7\"(浅蓝), \"firstLine8\"(蓝), \"firstLine9\"(紫), \"firstLine10\"(粉), \"firstLine11\"(灰)\n B. 仅文字色: \"text_red_5\", \"text_orange_5\", \"text_yellow_5\", \"text_lime_5\", \"text_green_5\", \"text_teal_5\", \"text_lightblue_5\", \"text_blue_5\", \"text_purple_5\", \"text_pink_5\", \"text_grey_5\"\n C. 文字色+浅背景: \"text_red_6_bg_0\", \"text_orange_6_bg_0\", \"text_yellow_6_bg_0\", \"text_lime_6_bg_0\", \"text_green_6_bg_0\", \"text_teal_6_bg_0\", \"text_lightblue_6_bg_0\", \"text_blue_6_bg_0\", \"text_purple_6_bg_0\", \"text_pink_6_bg_0\", \"text_grey_6_bg_0\"\n D. 背景色深浅数字代号:\n - 最浅档: 40, 0, 1, \"lime1\", 3, 4, 5, 6, 7, 8, 9\n - 中间档: 41, 10, 11, \"lime2\", 13, 14, 15, 16, 17, 18, 19\n - 较深档: 42, 20, 21, \"lime3\", 23, 24, 25, 26, 27, 28, 29\n - 最深档: 43, 30, 31, \"lime4\", 33, 34, 35, 36, 37, 38, 39\n - 注意: 同一列表中尽量不要出现重复的 color 以便区分。\n\n4. filters (array, 必填): 填色规则的筛选条件。\n - 约束: 数组内有且仅有 1 条数据 (即 filters[0])。\n - 结构: [ { \"fieldId\": string, \"symbol\": string, \"value\": any, \"link\": string } ]\n - 字段详解:\n - fieldId (string, 必填): 筛选字段 ID。\n - symbol (string, 必填): 筛选符号。\n - 枚举值: \"GT\"(大于), \"LT\"(小于), \"GTE\"(大于等于), \"LTE\"(小于等于), \"EQ\"(等于), \"NE\"(不等于), \"CONTAIN\"(包含), \"EXCLUSIVE\"(不包含), \"EXIST\"(存在, value须为null), \"UN_EXIST\"(不存在, value须为null), \"ALL_OF\", \"ANY_OF\", \"NONE_OF\", \"BEFORE\"(日期之前), \"AFTER\"(日期之后), \"NOT_BEFORE\"(日期不早于), \"NOT_AFTER\"(日期不晚于), \"DATE_EQ\"(日期相等), \"FROM_NOW\"(相对当前), \"DATE_BETWEEN\"(日期区间)\n - value (any, 选填): 筛选值。\n - 当 symbol 为 \"EXIST\" 或 \"UN_EXIST\" 时,value 必须为 null。\n - 单选/多选字段请使用选项 ID。\n - 日期字段支持精确时间字符串或相对时间结构: { \"type\": \"relative\", \"period\": \"day\"|\"week\"|\"month\"|\"year\", \"offset\": number }\n - link (string, 选填): 筛选连接方式,默认为 \"AND\"。枚举值: \"AND\", \"OR\"。\n\n示例对象结构:\n{\n \"type\": \"row\",\n \"formatFieldId\": \"field_123\",\n \"format\": { \"color\": \"firstLine1\" },\n \"filters\": [\n {\n \"fieldId\": \"field_456\",\n \"symbol\": \"GT\",\n \"value\": 100,\n \"link\": \"AND\"\n }\n ]\n}" + }, { "precedence": "default", "selected": false, @@ -95295,25 +93205,57 @@ "source": "cobra_usage", "value": "conditionalFormats JSON 数组(整组替换;传 [] 清空)(必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "conditionalFormats" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "conditionalFormats" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -95324,9 +93266,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -95358,7 +93300,9 @@ "value": "string" } }, - "property": "json", + "interface_description": "填色规则列表。传空数组 [] 表示清空当前视图的填色规则。调用后会全量覆盖原先的填色规则。单次最多 40 条。\n\n每个数组项是一个对象,必须包含以下四个核心字段:\n\n1. type (string, 必填): 填色规则作用范围。\n - 枚举值: \"cell\" (单元格), \"row\" (行), \"column\" (列), \"preRow\" (行头)\n\n2. formatFieldId (string, 必填): 填色规则所关联的字段 ID。\n\n3. format (object, 必填): 填色样式配置。\n - 结构: { \"color\": string }\n - color (string, 必填): 填色代号。严禁使用 'red'/'green' 等裸颜色名或 '#RRGGBB' hex 值。必须从以下集合选取:\n A. 深底色(推荐默认): \"firstLine1\"(红), \"firstLine2\"(橙), \"firstLine3\"(黄), \"firstLine4\"(青柠), \"firstLine5\"(绿), \"firstLine6\"(青), \"firstLine7\"(浅蓝), \"firstLine8\"(蓝), \"firstLine9\"(紫), \"firstLine10\"(粉), \"firstLine11\"(灰)\n B. 仅文字色: \"text_red_5\", \"text_orange_5\", \"text_yellow_5\", \"text_lime_5\", \"text_green_5\", \"text_teal_5\", \"text_lightblue_5\", \"text_blue_5\", \"text_purple_5\", \"text_pink_5\", \"text_grey_5\"\n C. 文字色+浅背景: \"text_red_6_bg_0\", \"text_orange_6_bg_0\", \"text_yellow_6_bg_0\", \"text_lime_6_bg_0\", \"text_green_6_bg_0\", \"text_teal_6_bg_0\", \"text_lightblue_6_bg_0\", \"text_blue_6_bg_0\", \"text_purple_6_bg_0\", \"text_pink_6_bg_0\", \"text_grey_6_bg_0\"\n D. 背景色深浅数字代号:\n - 最浅档: 40, 0, 1, \"lime1\", 3, 4, 5, 6, 7, 8, 9\n - 中间档: 41, 10, 11, \"lime2\", 13, 14, 15, 16, 17, 18, 19\n - 较深档: 42, 20, 21, \"lime3\", 23, 24, 25, 26, 27, 28, 29\n - 最深档: 43, 30, 31, \"lime4\", 33, 34, 35, 36, 37, 38, 39\n - 注意: 同一列表中尽量不要出现重复的 color 以便区分。\n\n4. filters (array, 必填): 填色规则的筛选条件。\n - 约束: 数组内有且仅有 1 条数据 (即 filters[0])。\n - 结构: [ { \"fieldId\": string, \"symbol\": string, \"value\": any, \"link\": string } ]\n - 字段详解:\n - fieldId (string, 必填): 筛选字段 ID。\n - symbol (string, 必填): 筛选符号。\n - 枚举值: \"GT\"(大于), \"LT\"(小于), \"GTE\"(大于等于), \"LTE\"(小于等于), \"EQ\"(等于), \"NE\"(不等于), \"CONTAIN\"(包含), \"EXCLUSIVE\"(不包含), \"EXIST\"(存在, value须为null), \"UN_EXIST\"(不存在, value须为null), \"ALL_OF\", \"ANY_OF\", \"NONE_OF\", \"BEFORE\"(日期之前), \"AFTER\"(日期之后), \"NOT_BEFORE\"(日期不早于), \"NOT_AFTER\"(日期不晚于), \"DATE_EQ\"(日期相等), \"FROM_NOW\"(相对当前), \"DATE_BETWEEN\"(日期区间)\n - value (any, 选填): 筛选值。\n - 当 symbol 为 \"EXIST\" 或 \"UN_EXIST\" 时,value 必须为 null。\n - 单选/多选字段请使用选项 ID。\n - 日期字段支持精确时间字符串或相对时间结构: { \"type\": \"relative\", \"period\": \"day\"|\"week\"|\"month\"|\"year\", \"offset\": number }\n - link (string, 选填): 筛选连接方式,默认为 \"AND\"。枚举值: \"AND\", \"OR\"。\n\n示例对象结构:\n{\n \"type\": \"row\",\n \"formatFieldId\": \"field_123\",\n \"format\": { \"color\": \"firstLine1\" },\n \"filters\": [\n {\n \"fieldId\": \"field_456\",\n \"symbol\": \"GT\",\n \"value\": 100,\n \"link\": \"AND\"\n }\n ]\n}", + "interface_type": "array", + "property": "conditionalFormats", "required": true, "type": "string" }, @@ -95575,7 +93519,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置视图填色规则", + "title": "更新视图数据高亮规则", "use_when": [ "需要全量覆盖指定 Grid 视图的条件填色规则时。" ] @@ -95604,11 +93548,8 @@ "cli_name": "filter", "cli_path": "aitable view update filter", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)。\n[{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fldX\",\"value\"]}]}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -95706,44 +93647,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)。\n[{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fldX\",\"value\"]}]}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)。\n[{\"operator\":\"and\",\"operands\":[{\"operator\":\"eq\",\"operands\":[\"fldX\",\"value\"]}]}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" }, "effect": { "candidates": [ @@ -95897,22 +93816,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图 filter 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图 filter 配置" }, "use_when": { "candidates": [ @@ -96118,16 +94037,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.filter" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "config.filter" }, "required": { "candidates": [ @@ -96179,7 +94104,7 @@ } }, "format": "json", - "property": "json", + "property": "config.filter", "required": true, "type": "string" }, @@ -96396,7 +94321,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图 filter 配置", "use_when": [ "需要按属性更新视图的 filter 数组每项为 {operator,operands} 配置(整组替换)时。" ] @@ -96424,11 +94349,8 @@ "cli_name": "frozen-cols", "cli_path": "aitable view update frozen-cols", "confirmation": "not_required", - "description": "设置指定视图(View)的冻结列数(左侧固定列),默认 1。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。", + "description": "设置视图冻结列数。--count N 表示从首列起冻结 N 列;--count 0 表示取消冻结。\n返回 {baseId, tableId, viewId, count}。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -96526,44 +94448,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置指定视图(View)的冻结列数(左侧固定列),默认 1。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置视图冻结列数。--count N 表示从首列起冻结 N 列;--count 0 表示取消冻结。\n返回 {baseId, tableId, viewId, count}。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置指定视图(View)的冻结列数(左侧固定列),默认 1。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置指定视图(View)的冻结列数(左侧固定列),默认 1。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置视图冻结列数。--count N 表示从首列起冻结 N 列;--count 0 表示取消冻结。\n返回 {baseId, tableId, viewId, count}。" }, "effect": { "candidates": [ @@ -96710,22 +94610,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置视图冻结列数" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图冻结列数" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置视图冻结列数" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置视图冻结列数" + "source": "cobra_help", + "value": "更新视图冻结列数" }, "use_when": { "candidates": [ @@ -97201,7 +95101,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置视图冻结列数", + "title": "更新视图冻结列数", "use_when": [ "需要设置视图冻结列数时。" ] @@ -97230,11 +95130,8 @@ "cli_name": "group", "cli_path": "aitable view update group", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -97332,44 +95229,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" }, "effect": { "candidates": [ @@ -97523,22 +95398,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图 group 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图 group 配置" }, "use_when": { "candidates": [ @@ -97744,16 +95619,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.group" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "config.group" }, "required": { "candidates": [ @@ -97805,7 +95686,7 @@ } }, "format": "json", - "property": "json", + "property": "config.group", "required": true, "type": "string" }, @@ -98022,7 +95903,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图 group 配置", "use_when": [ "需要按属性更新视图的 group 数组每项为 {fieldId,direction} 配置(整组替换)时。" ] @@ -98051,11 +95932,8 @@ "cli_name": "name", "cli_path": "aitable view update name", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "重命名指定视图,等价于 dws aitable view update --name X。无 config 参数。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -98153,44 +96031,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名指定视图,等价于 dws aitable view update --name X。无 config 参数。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "重命名指定视图,等价于 dws aitable view update --name X。无 config 参数。" }, "effect": { "candidates": [ @@ -98344,22 +96200,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名视图(= view update --name 的便捷子命令)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "重命名视图(= view update --name 的便捷子命令)" }, "use_when": { "candidates": [ @@ -98509,6 +96365,12 @@ "source": "cobra_usage", "value": "新视图名称 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可选,新的视图名称。" + }, { "precedence": "default", "selected": false, @@ -98524,16 +96386,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newViewName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newViewName" }, "required": { "candidates": [ @@ -98584,7 +96452,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "可选,新的视图名称。", + "property": "newViewName", "required": true, "type": "string" }, @@ -98801,7 +96670,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "重命名视图(= view update --name 的便捷子命令)", "use_when": [ "需要重命名指定视图,等价于执行 dws aitable view update --name X 时。" ] @@ -98829,11 +96698,8 @@ "cli_name": "row-height", "cli_path": "aitable view update row-height", "confirmation": "not_required", - "description": "设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n工具层不做范围或枚举校验,超出下游允许范围的取值由下游回填错误。", + "description": "设置视图单元格高度,单位为像素。--cell-height 必填,合法档位 32 / 56 / 88 / 128,默认 32。\n返回 {baseId, tableId, viewId, cellHeight}。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -98931,44 +96797,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n工具层不做范围或枚举校验,超出下游允许范围的取值由下游回填错误。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置视图单元格高度,单位为像素。--cell-height 必填,合法档位 32 / 56 / 88 / 128,默认 32。\n返回 {baseId, tableId, viewId, cellHeight}。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n工具层不做范围或枚举校验,超出下游允许范围的取值由下游回填错误。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置指定视图(View)的单元格高度(行高),单位为像素,默认 32。\r\n\r\n通过 baseId / tableId / viewId 三元组定位目标视图。\r\n\r\n工具层不做范围或枚举校验,超出下游允许范围的取值由下游回填错误。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置视图单元格高度,单位为像素。--cell-height 必填,合法档位 32 / 56 / 88 / 128,默认 32。\n返回 {baseId, tableId, viewId, cellHeight}。" }, "effect": { "candidates": [ @@ -99115,22 +96959,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "set_cell_height_of_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图行高(单元格高度)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "set_cell_height_of_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "set_cell_height_of_view" + "source": "cobra_help", + "value": "更新视图行高(单元格高度)" }, "use_when": { "candidates": [ @@ -99606,7 +97450,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "set_cell_height_of_view", + "title": "更新视图行高(单元格高度)", "use_when": [ "需要设置视图单元格高度,单位为像素时。" ] @@ -99635,11 +97479,8 @@ "cli_name": "sort", "cli_path": "aitable view update sort", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -99737,44 +97578,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)。\n[{\"fieldId\":\"fldX\",\"direction\":\"asc\"}]\n若传对象会自动 wrap 为数组;其他非法格式拒绝。" }, "effect": { "candidates": [ @@ -99928,22 +97747,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图 sort 配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图 sort 配置" }, "use_when": { "candidates": [ @@ -100149,16 +97968,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.sort" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "config.sort" }, "required": { "candidates": [ @@ -100210,7 +98035,7 @@ } }, "format": "json", - "property": "json", + "property": "config.sort", "required": true, "type": "string" }, @@ -100427,7 +98252,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图 sort 配置", "use_when": [ "需要按属性更新视图的 sort 数组每项为 {fieldId,direction} 配置(整组替换)时。" ] @@ -100469,7 +98294,7 @@ ] ] }, - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性局部更新 Gantt 视图的 ganttTimebar 配置。\n子字段:startField / endField (date 字段) / displayFieldId / timelineScale (year|quarter|month|weeks) /\ncolorConfigs (JSON 数组) / officialHoliday (bool)。", "display": "AI 表格操作", "effect": "write", "effect_source": "command-verb", @@ -100576,22 +98401,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性局部更新 Gantt 视图的 ganttTimebar 配置。\n子字段:startField / endField (date 字段) / displayFieldId / timelineScale (year|quarter|month|weeks) /\ncolorConfigs (JSON 数组) / officialHoliday (bool)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" + "source": "cobra_help", + "value": "按属性局部更新 Gantt 视图的 ganttTimebar 配置。\n子字段:startField / endField (date 字段) / displayFieldId / timelineScale (year|quarter|month|weeks) /\ncolorConfigs (JSON 数组) / officialHoliday (bool)。" }, "effect": { "candidates": [ @@ -100648,7 +98473,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -100661,19 +98486,41 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "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." }, "interface_ref": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ { "precedence": "explicit", "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "selected": true, + "selected": false, "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "value": "aitable.update_view" }, { "precedence": "mcp_fallback", @@ -100682,14 +98529,11 @@ "value": "aitable.update_view" } ], - "precedence": "explicit", - "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "aitable", - "rpc_name": "update_view" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -100745,22 +98589,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图 timebar 配置(仅 Gantt)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图 timebar 配置(仅 Gantt)" }, "use_when": { "candidates": [ @@ -100786,11 +98630,8 @@ "group": "view.update", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "aitable", - "rpc_name": "update_view" - }, + "interface_mode": "composite", + "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.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "view_update_timebar", @@ -100925,16 +98766,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.colorConfigs" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "colorConfigs" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "colorConfigs" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.colorConfigs" }, "required": { "candidates": [ @@ -100985,7 +98832,7 @@ "value": "string" } }, - "property": "colorConfigs", + "property": "config.ganttTimebar.colorConfigs", "required": false, "type": "string" }, @@ -101015,16 +98862,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.displayFieldId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "displayFieldId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "displayFieldId" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.displayFieldId" }, "required": { "candidates": [ @@ -101075,7 +98928,7 @@ "value": "string" } }, - "property": "displayFieldId", + "property": "config.ganttTimebar.displayFieldId", "required": false, "type": "string" }, @@ -101105,16 +98958,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.endField" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "endField" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "endField" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.endField" }, "required": { "candidates": [ @@ -101165,7 +99024,7 @@ "value": "string" } }, - "property": "endField", + "property": "config.ganttTimebar.endField", "required": false, "type": "string" }, @@ -101195,16 +99054,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar" }, "required": { "candidates": [ @@ -101269,7 +99134,7 @@ "value": "string" } }, - "property": "json", + "property": "config.ganttTimebar", "required": false, "type": "string" }, @@ -101299,16 +99164,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.officialHoliday" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "officialHoliday" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "officialHoliday" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.officialHoliday" }, "required": { "candidates": [ @@ -101359,7 +99230,7 @@ "value": "boolean" } }, - "property": "officialHoliday", + "property": "config.ganttTimebar.officialHoliday", "required": false, "type": "boolean" }, @@ -101389,16 +99260,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.startField" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "startField" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "startField" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.startField" }, "required": { "candidates": [ @@ -101449,7 +99326,7 @@ "value": "string" } }, - "property": "startField", + "property": "config.ganttTimebar.startField", "required": false, "type": "string" }, @@ -101582,16 +99459,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.timelineScale" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "timelineScale" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "timelineScale" + "source": "versioned_parameter_binding", + "value": "config.ganttTimebar.timelineScale" }, "required": { "candidates": [ @@ -101642,7 +99525,7 @@ "value": "string" } }, - "property": "timelineScale", + "property": "config.ganttTimebar.timelineScale", "required": false, "type": "string" }, @@ -101756,7 +99639,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图 timebar 配置(仅 Gantt)", "use_when": [ "需要按属性局部更新 Gantt 视图的 ganttTimebar 配置时。" ] @@ -101785,11 +99668,8 @@ "cli_name": "visible-fields", "cli_path": "aitable view update visible-fields", "confirmation": "not_required", - "description": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。", + "description": "按属性更新视图的 visibleFieldIds(即列顺序)。传入的字段 ID 列表\n完全替换原有顺序;首列字段不可隐藏。所有视图类型都支持。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -101887,44 +99767,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按属性更新视图的 visibleFieldIds(即列顺序)。传入的字段 ID 列表\n完全替换原有顺序;首列字段不可隐藏。所有视图类型都支持。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定视图(View)的名称、描述或配置。\r\n当前稳定支持更新:newViewName、viewDescription、visibleFieldIds、filter、sort、group;fieldWidths 和 aggregate 仅支持 Grid 视图。\r\n首列字段是每条数据的索引,不支持删除、移动或隐藏。\r\n对 Kanban / Gantt / Gallery 视图,config 入参支持 kanbanCard / ganttTimebar / galleryCard 三个类型化配置块进行局部更新(传谁更新谁);若视图类型与块不匹配会返回 INVALID_UPDATE_VIEW_REQUEST。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按属性更新视图的 visibleFieldIds(即列顺序)。传入的字段 ID 列表\n完全替换原有顺序;首列字段不可隐藏。所有视图类型都支持。" }, "effect": { "candidates": [ @@ -102078,22 +99936,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_view" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新视图可见字段列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_view" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_view" + "source": "cobra_help", + "value": "更新视图可见字段列表" }, "use_when": { "candidates": [ @@ -102258,16 +100116,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.visibleFieldIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fieldIds" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fieldIds" + "source": "versioned_parameter_binding", + "value": "config.visibleFieldIds" }, "required": { "candidates": [ @@ -102318,7 +100182,7 @@ "value": "string" } }, - "property": "fieldIds", + "property": "config.visibleFieldIds", "required": true, "type": "string" }, @@ -102348,16 +100212,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "config.visibleFieldIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "json" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "json" + "source": "versioned_parameter_binding", + "value": "config.visibleFieldIds" }, "required": { "candidates": [ @@ -102402,7 +100272,7 @@ "value": "string" } }, - "property": "json", + "property": "config.visibleFieldIds", "required": false, "type": "string" }, @@ -102619,7 +100489,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_view", + "title": "更新视图可见字段列表", "use_when": [ "需要按属性更新视图的 visibleFieldIds(即列顺序)时。" ] @@ -102648,7 +100518,7 @@ "cli_name": "disable", "cli_path": "aitable workflow disable", "confirmation": "user_required", - "description": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。", + "description": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。\n此操作直接影响业务自动化,建议在交互场景下用 --yes 二次确认。\n返回 {workflowId, disabled} 用于确认操作结果(disabled 为动作确认而非状态查询)。", "display": "AI 表格操作", "effect": "write", "effect_source": "agent-hint", @@ -102755,22 +100625,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。\n此操作直接影响业务自动化,建议在交互场景下用 --yes 二次确认。\n返回 {workflowId, disabled} 用于确认操作结果(disabled 为动作确认而非状态查询)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。" + "source": "cobra_help", + "value": "禁用指定 Base 中的自动化工作流。禁用后工作流将不再自动触发执行。\n此操作直接影响业务自动化,建议在交互场景下用 --yes 二次确认。\n返回 {workflowId, disabled} 用于确认操作结果(disabled 为动作确认而非状态查询)。" }, "effect": { "candidates": [ @@ -102933,22 +100803,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "禁用自动化工作流" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "禁用指定工作流(高危)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "禁用自动化工作流" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "禁用自动化工作流" + "source": "cobra_help", + "value": "禁用指定工作流(高危)" }, "use_when": { "candidates": [ @@ -103197,7 +101067,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "禁用自动化工作流", + "title": "禁用指定工作流(高危)", "use_when": [ "需要禁用指定 Base 中的自动化工作流时。" ] @@ -103225,11 +101095,8 @@ "cli_name": "enable", "cli_path": "aitable workflow enable", "confirmation": "not_required", - "description": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。", + "description": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。\n返回 {workflowId, enabled} 用于确认操作结果(enabled 为动作确认而非状态查询)。\n当前不支持通过 CLI 新建工作流,请在 AI 表格 Web 端配置好后用 workflow list 拿到 workflowId 再启停。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -103327,44 +101194,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。\n返回 {workflowId, enabled} 用于确认操作结果(enabled 为动作确认而非状态查询)。\n当前不支持通过 CLI 新建工作流,请在 AI 表格 Web 端配置好后用 workflow list 拿到 workflowId 再启停。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "启用指定 Base 中的自动化工作流。启用后工作流将按配置的触发条件自动执行。\n返回 {workflowId, enabled} 用于确认操作结果(enabled 为动作确认而非状态查询)。\n当前不支持通过 CLI 新建工作流,请在 AI 表格 Web 端配置好后用 workflow list 拿到 workflowId 再启停。" }, "effect": { "candidates": [ @@ -103511,22 +101356,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "启用自动化工作流" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "启用指定工作流" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "启用自动化工作流" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "启用自动化工作流" + "source": "cobra_help", + "value": "启用指定工作流" }, "use_when": { "candidates": [ @@ -103775,7 +101620,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "启用自动化工作流", + "title": "启用指定工作流", "use_when": [ "需要启用指定 Base 中的自动化工作流时。" ] @@ -103803,11 +101648,8 @@ "cli_name": "get", "cli_path": "aitable workflow get", "confirmation": "not_required", - "description": "获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。", + "description": "获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)。\n返回结构由服务端 getFlowDetail 透传,agent 应按需读取关心字段。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -103905,44 +101747,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)。\n返回结构由服务端 getFlowDetail 透传,agent 应按需读取关心字段。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定 Base 中某个自动化工作流的详细信息,直接返回下游 getFlowDetail 的详情结构。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)。\n返回结构由服务端 getFlowDetail 透传,agent 应按需读取关心字段。" }, "effect": { "candidates": [ @@ -104089,22 +101909,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取自动化工作流" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取单个工作流详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取自动化工作流" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取自动化工作流" + "source": "cobra_help", + "value": "获取单个工作流详情" }, "use_when": { "candidates": [ @@ -104353,7 +102173,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取自动化工作流", + "title": "获取单个工作流详情", "use_when": [ "需要获取指定 Base 中某个自动化工作流的详细信息(含触发条件、动作步骤等)时。" ] @@ -104381,11 +102201,8 @@ "cli_name": "list", "cli_path": "aitable workflow list", "confirmation": "not_required", - "description": "列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。支持分页,limit 默认 20,最大 100;offset 默认 0。", + "description": "列出指定 Base 中的自动化工作流,支持分页。\n--limit 默认服务端 20,最大 100;--offset 默认 0。\n返回结构由服务端 searchFlows 透传,含 workflowId、name 等字段。", "display": "AI 表格操作", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -104483,44 +102300,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。支持分页,limit 默认 20,最大 100;offset 默认 0。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定 Base 中的自动化工作流,支持分页。\n--limit 默认服务端 20,最大 100;--offset 默认 0。\n返回结构由服务端 searchFlows 透传,含 workflowId、name 等字段。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。支持分页,limit 默认 20,最大 100;offset 默认 0。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定 Base 中的自动化工作流,直接返回下游 searchFlows 的响应结构。支持分页,limit 默认 20,最大 100;offset 默认 0。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定 Base 中的自动化工作流,支持分页。\n--limit 默认服务端 20,最大 100;--offset 默认 0。\n返回结构由服务端 searchFlows 透传,含 workflowId、name 等字段。" }, "effect": { "candidates": [ @@ -104667,22 +102462,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出自动化工作流" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出 Base 下的工作流" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出自动化工作流" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出自动化工作流" + "source": "cobra_help", + "value": "列出 Base 下的工作流" }, "use_when": { "candidates": [ @@ -105076,7 +102871,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出自动化工作流", + "title": "列出 Base 下的工作流", "use_when": [ "需要列出指定 Base 中的自动化工作流,支持分页时。" ] @@ -105088,6 +102883,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -105103,9 +102899,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情。\n--adjustment-id 必填。注意:已被删除或被更新覆盖的补卡规则无法查询到。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -105131,15 +102924,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -105209,39 +103004,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情。\n--adjustment-id 必填。注意:已被删除或被更新覆盖的补卡规则无法查询到。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_adjustment_rule_detail,根据补卡规则主键 ID 查询对应的补卡规则详情。\n--adjustment-id 必填。注意:已被删除或被更新覆盖的补卡规则无法查询到。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -105321,45 +103094,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -105422,13 +103199,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据补卡规则主键 ID 查询补卡规则详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据补卡规则主键 ID 查询补卡规则详情" @@ -105457,8 +103234,8 @@ "group": "adjustment", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "adjustment_get", "parameter_count": 1, @@ -105489,16 +103266,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_get has no singular pinned interface_ref; --adjustment-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "adjustmentId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "adjustmentId" + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_get has no singular pinned interface_ref; --adjustment-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -105549,7 +103334,6 @@ "value": "integer" } }, - "property": "adjustmentId", "required": true, "type": "integer" } @@ -105572,6 +103356,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -105585,11 +103370,8 @@ "cli_name": "search", "cli_path": "attendance adjustment search", "confirmation": "not_required", - "description": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)", + "description": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -105615,15 +103397,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -105654,6 +103438,14 @@ "source": "reviewed_command_registry", "source_ref": "attendance adjustment search", "value": "attendance.adjustment_search" + }, + { + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "selected": false, + "source": "reviewed_manual_hint", + "source_ref": "attendance adjustment search", + "value": "attendance.adjustment_search" } ], "precedence": "command_registry", @@ -105693,38 +103485,16 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", - "value": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)" + "value": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", - "value": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "value": "根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 补卡规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)" }, "effect": { "candidates": [ @@ -105805,45 +103575,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -105906,13 +103680,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户可管理的补卡规则列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户可管理的补卡规则列表" @@ -105941,15 +103715,15 @@ "group": "adjustment", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "adjustment_search", "parameter_count": 3, "parameters": { "limit": { "default": "20", - "description": "每页条数,200 以内(必填)", + "description": "每页条数,200 以内(默认 20,可选)", "field_provenance": { "description": { "candidates": [ @@ -105957,7 +103731,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, { "precedence": "default", @@ -105969,29 +103743,44 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", "selected": true, - "source": "usage_required_inference", - "value": true + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -106000,10 +103789,11 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", - "value": true + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -106034,13 +103824,12 @@ "value": "integer" } }, - "property": "limit", - "required": true, + "required": false, "type": "integer" }, "page": { "default": "1", - "description": "页码,从 1 开始(必填)", + "description": "页码,从 1 开始(默认 1,可选)", "field_provenance": { "description": { "candidates": [ @@ -106048,7 +103837,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, { "precedence": "default", @@ -106060,29 +103849,44 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", "selected": true, - "source": "usage_required_inference", - "value": true + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -106091,10 +103895,11 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", - "value": true + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -106125,8 +103930,7 @@ "value": "integer" } }, - "property": "page", - "required": true, + "required": false, "type": "integer" }, "query": { @@ -106155,16 +103959,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -106209,7 +104021,6 @@ "value": "string" } }, - "property": "query", "required": false, "type": "string" } @@ -106232,6 +104043,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/intent-guide.md", "skills/mono/references/products/attendance-report.md", @@ -106249,9 +104061,6 @@ "confirmation": "not_required", "description": "查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)。\n审批类型 --types 支持以下关键词(多个用英文逗号分隔):\n - overtime / 加班 → bizType=1\n - trip / travel / business_trip / business-trip / 出差 / 外出 → bizType=2(出差与外出在查询接口合并为同一类,不再细分)\n - leave / 请假 → bizType=3\n - patch / repair-check / repair_check / 补卡 → bizType=4\n说明:\n - 服务端查询接口 bizType=2 同时覆盖出差与外出,传入 trip / travel / 出差 / 外出 任一别名都会返回这两类合并的记录;\n - 如需在提交入口区分外出(TRAVEL)与出差(OUT),请改用 dws attendance approve templates --type travel|out;\n - 返回每条记录含:用户 ID、审批标签、审批子类型、审批类型、生效时间、时长、时长单位、流程实例 ID。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -106277,15 +104086,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -106355,39 +104166,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)。\n审批类型 --types 支持以下关键词(多个用英文逗号分隔):\n - overtime / 加班 → bizType=1\n - trip / travel / business_trip / business-trip / 出差 / 外出 → bizType=2(出差与外出在查询接口合并为同一类,不再细分)\n - leave / 请假 → bizType=3\n - patch / repair-check / repair_check / 补卡 → bizType=4\n说明:\n - 服务端查询接口 bizType=2 同时覆盖出差与外出,传入 trip / travel / 出差 / 外出 任一别名都会返回这两类合并的记录;\n - 如需在提交入口区分外出(TRAVEL)与出差(OUT),请改用 dws attendance approve templates --type travel|out;\n - 返回每条记录含:用户 ID、审批标签、审批子类型、审批类型、生效时间、时长、时长单位、流程实例 ID。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定用户的考勤业务审批单记录(补卡 / 加班 / 请假 / 出差外出)。\n审批类型 --types 支持以下关键词(多个用英文逗号分隔):\n - overtime / 加班 → bizType=1\n - trip / travel / business_trip / business-trip / 出差 / 外出 → bizType=2(出差与外出在查询接口合并为同一类,不再细分)\n - leave / 请假 → bizType=3\n - patch / repair-check / repair_check / 补卡 → bizType=4\n说明:\n - 服务端查询接口 bizType=2 同时覆盖出差与外出,传入 trip / travel / 出差 / 外出 任一别名都会返回这两类合并的记录;\n - 如需在提交入口区分外出(TRAVEL)与出差(OUT),请改用 dws attendance approve templates --type travel|out;\n - 返回每条记录含:用户 ID、审批标签、审批子类型、审批类型、生效时间、时长、时长单位、流程实例 ID。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -106467,45 +104256,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -106568,13 +104361,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询用户审批单(补卡/加班/请假/出差外出)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询用户审批单(补卡/加班/请假/出差外出)" @@ -106603,8 +104396,8 @@ "group": "approve", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "approve_list", "parameter_count": 4, @@ -106632,19 +104425,47 @@ "source": "cobra_usage", "value": "结束日期,格式 YYYY-MM-DD (必填)" }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "date" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "date" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -106695,7 +104516,7 @@ "value": "string" } }, - "property": "end", + "format": "date", "required": true, "type": "string" }, @@ -106722,19 +104543,47 @@ "source": "cobra_usage", "value": "起始日期,格式 YYYY-MM-DD (必填)" }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "date" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "date" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -106785,12 +104634,13 @@ "value": "string" } }, - "property": "start", + "format": "date", "required": true, "type": "string" }, "types": { "description": "审批类型,逗号分隔:overtime/trip/leave/patch (必填)", + "example": "overtime,leave", "field_provenance": { "description": { "candidates": [ @@ -106812,19 +104662,47 @@ "source": "cobra_usage", "value": "审批类型,逗号分隔:overtime/trip/leave/patch (必填)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "overtime,leave" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "overtime,leave" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --types is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "types" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "types" + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --types is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -106875,7 +104753,6 @@ "value": "string" } }, - "property": "types", "required": true, "type": "string" }, @@ -106905,16 +104782,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -106965,7 +104850,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -106988,6 +104872,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -107004,9 +104889,6 @@ "confirmation": "not_required", "description": "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接。\n审批类型支持:repair-check/patch/补卡、leave/请假、overtime/加班、travel/外出、out/trip/出差,也支持直接传 REPAIR_CHECK、LEAVE、OVERTIME、TRAVEL、OUT。\n向用户展示提交入口时,不要直接裸露 submitUrl,应使用 Markdown 可点击链接格式:[表单名称](submitUrl)。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -107032,15 +104914,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -107110,39 +104994,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接。\n审批类型支持:repair-check/patch/补卡、leave/请假、overtime/加班、travel/外出、out/trip/出差,也支持直接传 REPAIR_CHECK、LEAVE、OVERTIME、TRAVEL、OUT。\n向用户展示提交入口时,不要直接裸露 submitUrl,应使用 Markdown 可点击链接格式:[表单名称](submitUrl)。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "当用户需要提交补卡、请假、加班、外出、出差时,查询对应考勤审批表单模板,返回审批提交跳转链接。\n审批类型支持:repair-check/patch/补卡、leave/请假、overtime/加班、travel/外出、out/trip/出差,也支持直接传 REPAIR_CHECK、LEAVE、OVERTIME、TRAVEL、OUT。\n向用户展示提交入口时,不要直接裸露 submitUrl,应使用 Markdown 可点击链接格式:[表单名称](submitUrl)。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -107222,45 +105084,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -107323,13 +105189,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询补卡/请假/加班/外出/出差审批提交链接" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询补卡/请假/加班/外出/出差审批提交链接" @@ -107358,8 +105224,8 @@ "group": "approve", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "approve_templates", "parameter_count": 1, @@ -107390,16 +105256,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.approve_templates has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Reviewed unpinned adapter: attendance.approve_templates has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -107450,7 +105324,6 @@ "value": "string" } }, - "property": "type", "required": true, "type": "string" } @@ -107490,11 +105363,8 @@ "cli_name": "list", "cli_path": "attendance shift list", "confirmation": "not_required", - "description": "批量查询多个员工在指定日期的考勤班次信息,返回每条记录包含:用户 ID(userId)、工作日期(workDate,毫秒时间戳)、打卡类型(checkType,如 OnDuty 表示上班)、计划打卡时间(planCheckTime,毫秒时间戳)以及是否为休息日(isRest,\"Y\"/\"N\")。结果基于组织考勤配置生成,仅返回调用者有权限查看的员工数据,适用于排班核对、考勤预览等场景。", + "description": "批量查询多个员工在指定日期的考勤班次信息。\n返回每条记录含:用户 ID、工作日期、打卡类型(OnDuty/OffDuty)、\n计划打卡时间、是否休息日。间隔不超过 7 天,最多 50 人。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -107594,44 +105464,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量查询多个员工在指定日期的考勤班次信息,返回每条记录包含:用户 ID(userId)、工作日期(workDate,毫秒时间戳)、打卡类型(checkType,如 OnDuty 表示上班)、计划打卡时间(planCheckTime,毫秒时间戳)以及是否为休息日(isRest,\"Y\"/\"N\")。结果基于组织考勤配置生成,仅返回调用者有权限查看的员工数据,适用于排班核对、考勤预览等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量查询多个员工在指定日期的考勤班次信息。\n返回每条记录含:用户 ID、工作日期、打卡类型(OnDuty/OffDuty)、\n计划打卡时间、是否休息日。间隔不超过 7 天,最多 50 人。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量查询多个员工在指定日期的考勤班次信息,返回每条记录包含:用户 ID(userId)、工作日期(workDate,毫秒时间戳)、打卡类型(checkType,如 OnDuty 表示上班)、计划打卡时间(planCheckTime,毫秒时间戳)以及是否为休息日(isRest,\"Y\"/\"N\")。结果基于组织考勤配置生成,仅返回调用者有权限查看的员工数据,适用于排班核对、考勤预览等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量查询多个员工在指定日期的考勤班次信息,返回每条记录包含:用户 ID(userId)、工作日期(workDate,毫秒时间戳)、打卡类型(checkType,如 OnDuty 表示上班)、计划打卡时间(planCheckTime,毫秒时间戳)以及是否为休息日(isRest,\"Y\"/\"N\")。结果基于组织考勤配置生成,仅返回调用者有权限查看的员工数据,适用于排班核对、考勤预览等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量查询多个员工在指定日期的考勤班次信息。\n返回每条记录含:用户 ID、工作日期、打卡类型(OnDuty/OffDuty)、\n计划打卡时间、是否休息日。间隔不超过 7 天,最多 50 人。" }, "effect": { "candidates": [ @@ -107789,22 +105637,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "batch_get_employee_shifts" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量查询员工班次信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "batch_get_employee_shifts" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "batch_get_employee_shifts" + "source": "cobra_help", + "value": "批量查询员工班次信息" }, "use_when": { "candidates": [ @@ -107851,6 +105699,12 @@ "source": "cobra_usage", "value": "结束日期,格式 YYYY-MM-DD (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "结束日期,Unix时间戳,单位毫秒。开始时间和结束时间的间隔不能超过7天。 查询时间限制距今180天内。" + }, { "precedence": "default", "selected": false, @@ -107883,19 +105737,45 @@ "source": "typed_parameter_metadata", "value": "date" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "toDateTime" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "source": "versioned_parameter_binding", + "value": "toDateTime" }, "required": { "candidates": [ @@ -107905,6 +105785,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -107953,7 +105839,9 @@ } }, "format": "date", - "property": "end", + "interface_description": "结束日期,Unix时间戳,单位毫秒。开始时间和结束时间的间隔不能超过7天。 查询时间限制距今180天内。", + "interface_type": "number", + "property": "toDateTime", "required": true, "type": "string" }, @@ -107968,6 +105856,12 @@ "source": "cobra_usage", "value": "开始日期,格式 YYYY-MM-DD (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "起始日期,Unix时间戳,单位毫秒。 开始时间和结束时间的间隔不能超过7天。 查询时间限制距今180天内。" + }, { "precedence": "default", "selected": false, @@ -108000,19 +105894,45 @@ "source": "typed_parameter_metadata", "value": "date" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fromDateTime" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "source": "versioned_parameter_binding", + "value": "fromDateTime" }, "required": { "candidates": [ @@ -108022,6 +105942,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -108070,7 +105996,9 @@ } }, "format": "date", - "property": "start", + "interface_description": "起始日期,Unix时间戳,单位毫秒。 开始时间和结束时间的间隔不能超过7天。 查询时间限制距今180天内。", + "interface_type": "number", + "property": "fromDateTime", "required": true, "type": "string" }, @@ -108085,6 +106013,12 @@ "source": "cobra_usage", "value": "用户 ID 列表,逗号分隔,最多 50 个 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要查询的人员userId列表,多个userId用列表表示,一次最多可传50个。" + }, { "precedence": "default", "selected": false, @@ -108105,6 +106039,12 @@ "source": "tool_schema_hint", "value": "array" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "array" + }, { "precedence": "fallback", "selected": false, @@ -108120,16 +106060,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ @@ -108139,6 +106085,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -108186,8 +106138,9 @@ "value": "string" } }, + "interface_description": "要查询的人员userId列表,多个userId用列表表示,一次最多可传50个。", "interface_type": "array", - "property": "users", + "property": "userIds", "required": true, "type": "string" } @@ -108198,7 +106151,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "batch_get_employee_shifts", + "title": "批量查询员工班次信息", "use_when": [ "当用户需要批量查询多个员工在不超过七天范围内的考勤班次信息,并能提供命令所需的查询条件时使用。" ] @@ -108211,6 +106164,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -108251,15 +106205,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -108323,13 +106279,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 boss_check 修改员工打卡记录。管理员可修改打卡时间、打卡结果等信息。\n\n参数说明:\n --plan-id 排班ID(与 --result-id 二选一)\n 来源:通过 dws attendance schedule get 获取,返回结果的 id 字段\n 示例:id: 948964045503 表示某天下班打卡的排班记录ID\n\n --result-id 打卡结果ID(与 --plan-id 二选一,优先使用)\n 来源:暂不支持(record get 未返回此字段),建议使用 --plan-id\n\n --time 新打卡时间,格式 yyyy-MM-dd HH:mm(可选)\n --result 打卡结果:Normal/TimesResultA/TimesResultB/TimesResultC/TimesResultD/TimesResultE/TimesResultF(可选)\n --absent-min 缺勤时长(分钟),当 result 为异常状态时需传值(可选)\n --remark 备注,最长500字符(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示\n\n打卡结果枚举值:\n Normal 正常\n TimesResultA 迟到\n TimesResultB 早退\n TimesResultC 缺卡\n TimesResultD 迟到+早退\n TimesResultE 缺卡+早退\n TimesResultF 迟到+缺卡\n\n获取 planId 步骤:\n 1. 查询排班记录:dws attendance schedule get --userIdList USER_ID --workDateBegin DATE --workDateEnd DATE\n 2. 从返回结果中找到对应打卡类型(OnDuty=上班,OffDuty=下班)的 id 字段\n 3. 使用该 id 作为 --plan-id 参数" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 boss_check 修改员工打卡记录。管理员可修改打卡时间、打卡结果等信息。\n\n参数说明:\n --plan-id 排班ID(与 --result-id 二选一)\n 来源:通过 dws attendance schedule get 获取,返回结果的 id 字段\n 示例:id: 948964045503 表示某天下班打卡的排班记录ID\n\n --result-id 打卡结果ID(与 --plan-id 二选一,优先使用)\n 来源:暂不支持(record get 未返回此字段),建议使用 --plan-id\n\n --time 新打卡时间,格式 yyyy-MM-dd HH:mm(可选)\n --result 打卡结果:Normal/TimesResultA/TimesResultB/TimesResultC/TimesResultD/TimesResultE/TimesResultF(可选)\n --absent-min 缺勤时长(分钟),当 result 为异常状态时需传值(可选)\n --remark 备注,最长500字符(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示\n\n打卡结果枚举值:\n Normal 正常\n TimesResultA 迟到\n TimesResultB 早退\n TimesResultC 缺卡\n TimesResultD 迟到+早退\n TimesResultE 缺卡+早退\n TimesResultF 迟到+缺卡\n\n获取 planId 步骤:\n 1. 查询排班记录:dws attendance schedule get --userIdList USER_ID --workDateBegin DATE --workDateEnd DATE\n 2. 从返回结果中找到对应打卡类型(OnDuty=上班,OffDuty=下班)的 id 字段\n 3. 使用该 id 作为 --plan-id 参数" @@ -108401,45 +106357,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -108496,13 +106456,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "BOSS 改签打卡记录" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "BOSS 改签打卡记录" @@ -108530,8 +106490,8 @@ }, "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "boss_check", "parameter_count": 7, @@ -108562,16 +106522,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --absent-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "absentMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "absentMin" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --absent-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -108616,7 +106584,6 @@ "value": "integer" } }, - "property": "absentMin", "required": false, "type": "integer" }, @@ -108646,16 +106613,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --plan-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "planId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "planId" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --plan-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -108706,7 +106681,6 @@ "value": "string" } }, - "property": "planId", "required": true, "type": "string" }, @@ -108736,16 +106710,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --remark is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "remark" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "remark" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --remark is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -108790,7 +106772,6 @@ "value": "string" } }, - "property": "remark", "required": false, "type": "string" }, @@ -108820,16 +106801,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "result" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "result" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -108874,7 +106863,6 @@ "value": "string" } }, - "property": "result", "required": false, "type": "string" }, @@ -108904,16 +106892,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "resultId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "resultId" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -108958,7 +106954,6 @@ "value": "string" } }, - "property": "resultId", "required": false, "type": "string" }, @@ -108988,16 +106983,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --time is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "time" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "time" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --time is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -109042,7 +107045,6 @@ "value": "string" } }, - "property": "time", "required": false, "type": "string" }, @@ -109072,16 +107074,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userSayYes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userSayYes" + "review_reason": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -109126,7 +107136,6 @@ "value": "boolean" } }, - "property": "userSayYes", "required": false, "type": "boolean" } @@ -109149,6 +107158,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -109165,9 +107175,6 @@ "confirmation": "not_required", "description": "查询指定用户的打卡流水记录。\n返回每条记录含:用户 ID、实际打卡时间、打卡地址、打卡经纬度、\n打卡类型(OnDuty/OffDuty)、定位方式(Map/Wifi/etc)。\n时间跨度不超过 1 个月。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -109193,15 +107200,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -109271,39 +107280,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定用户的打卡流水记录。\n返回每条记录含:用户 ID、实际打卡时间、打卡地址、打卡经纬度、\n打卡类型(OnDuty/OffDuty)、定位方式(Map/Wifi/etc)。\n时间跨度不超过 1 个月。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定用户的打卡流水记录。\n返回每条记录含:用户 ID、实际打卡时间、打卡地址、打卡经纬度、\n打卡类型(OnDuty/OffDuty)、定位方式(Map/Wifi/etc)。\n时间跨度不超过 1 个月。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -109383,45 +107370,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -109484,13 +107475,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询打卡流水" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询打卡流水" @@ -109519,8 +107510,8 @@ "group": "check", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "check_record", "parameter_count": 3, @@ -109551,16 +107542,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -109611,7 +107610,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -109641,16 +107639,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -109701,7 +107707,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -109731,16 +107736,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -109791,7 +107804,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -109814,6 +107826,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -109830,9 +107843,6 @@ "confirmation": "not_required", "description": "查询指定用户的打卡结果记录。\n返回每条记录含:用户 ID、工作日期、时间结果(Normal/Late/Early/Absenteeism/NotSigned)、\n位置结果、计划打卡时间、实际打卡时间、打卡流水 ID。\n时间跨度不超过 1 个月,最多 100 人。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -109858,15 +107868,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -109936,39 +107948,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定用户的打卡结果记录。\n返回每条记录含:用户 ID、工作日期、时间结果(Normal/Late/Early/Absenteeism/NotSigned)、\n位置结果、计划打卡时间、实际打卡时间、打卡流水 ID。\n时间跨度不超过 1 个月,最多 100 人。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定用户的打卡结果记录。\n返回每条记录含:用户 ID、工作日期、时间结果(Normal/Late/Early/Absenteeism/NotSigned)、\n位置结果、计划打卡时间、实际打卡时间、打卡流水 ID。\n时间跨度不超过 1 个月,最多 100 人。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -110048,45 +108038,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -110149,13 +108143,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询打卡结果" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询打卡结果" @@ -110184,8 +108178,8 @@ "group": "check", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "check_result", "parameter_count": 5, @@ -110216,16 +108210,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -110276,7 +108278,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -110307,16 +108308,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -110367,7 +108376,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -110397,16 +108405,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --offset is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "offset" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "offset" + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --offset is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -110457,7 +108473,6 @@ "value": "integer" } }, - "property": "offset", "required": false, "type": "integer" }, @@ -110487,16 +108502,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -110547,7 +108570,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -110577,16 +108599,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -110637,7 +108667,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -110660,6 +108689,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -110676,9 +108706,6 @@ "confirmation": "not_required", "description": "查询指定员工在一段时间内的签到记录。\n权限说明:\n - Boss / 超级管理员 / 超级子管理员:可查看全公司员工\n - 子管理员:可查看管理范围内的员工及自己\n - 部门主管:可查看所管理部门的员工及自己\n - 普通员工:只能查询自己\n\n日期格式:yyyy-MM-dd HH:mm:ss(如 2026-04-01 09:00:00)", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -110704,15 +108731,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -110782,39 +108811,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定员工在一段时间内的签到记录。\n权限说明:\n - Boss / 超级管理员 / 超级子管理员:可查看全公司员工\n - 子管理员:可查看管理范围内的员工及自己\n - 部门主管:可查看所管理部门的员工及自己\n - 普通员工:只能查询自己\n\n日期格式:yyyy-MM-dd HH:mm:ss(如 2026-04-01 09:00:00)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定员工在一段时间内的签到记录。\n权限说明:\n - Boss / 超级管理员 / 超级子管理员:可查看全公司员工\n - 子管理员:可查看管理范围内的员工及自己\n - 部门主管:可查看所管理部门的员工及自己\n - 普通员工:只能查询自己\n\n日期格式:yyyy-MM-dd HH:mm:ss(如 2026-04-01 09:00:00)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -110894,45 +108901,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -110995,13 +109006,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定员工的签到记录" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定员工的签到记录" @@ -111030,8 +109041,8 @@ "group": "checkin", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "checkin_records", "parameter_count": 5, @@ -111062,16 +109073,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111122,7 +109141,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -111152,16 +109170,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-corp-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "operatorCorpId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "operatorCorpId" + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-corp-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111212,7 +109238,6 @@ "value": "string" } }, - "property": "operatorCorpId", "required": true, "type": "string" }, @@ -111242,16 +109267,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-staff-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "operatorStaffId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "operatorStaffId" + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-staff-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111302,7 +109335,6 @@ "value": "string" } }, - "property": "operatorStaffId", "required": true, "type": "string" }, @@ -111332,16 +109364,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --staff-ids is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "staffIds" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "staffIds" + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --staff-ids is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111392,7 +109432,6 @@ "value": "string" } }, - "property": "staffIds", "required": true, "type": "string" }, @@ -111422,16 +109461,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111482,7 +109529,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" } @@ -111505,6 +109551,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -111545,15 +109592,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -111623,13 +109672,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 create_class_setting,创建一个新的班次。\n--name 和 --sections 必填,其余参数可选。由于保存班次耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于创建班次的说明\n\n常用 flag:\n --name 班次名称(必填)\n --owner 班次负责人 userId(可选)\n --class-vo 完整 TopAtClassVO JSON 字符串(可选,用于传入复杂结构)\n\n当使用 --class-vo 传入完整 JSON 时,--name 和 --owner 仍可覆写 JSON 中的同名字段。\ncheckTime 字段统一使用 \"HH:mm\" 格式(如 \"09:00\"),CLI 自动转换为服务端所需的时间戳。\n\n--class-vo JSON 可用字段说明:\n\n name string 班次名称(必填)\n owner string 班次负责人 userId\n sections []object 班次上下班时间段(必填),支持多段上下班,每段包含 times 数组:\n - times []object 每段有且只能有两个对象(上班+下班),每个对象字段:\n checkType string 打卡类型:OnDuty(上班)/ OffDuty(下班)(必填)\n checkTime string 打卡时间,格式 \"HH:mm\"(必填,如 \"09:00\"、\"17:30\")\n across number 是否跨天:0(不跨天)/ 1(跨天)(必填)\n freeCheck bool 是否免打卡\n beginMin number 允许最早提前打卡时间(分钟,-1 表示不限制)\n endMin number 允许最晚打卡时间(分钟,-1 表示不限制)\n setting object 班次其他配置:\n - seriousLateMinutes number 晚到多少分钟记为严重迟到\n - absenteeismLateMinutes number 晚到多少分钟记为旷工迟到\n - attendDays number 本班次记为多少天出勤(支持两位小数)\n - topRestTimeList []object 班次休息时间(仅 sections 只有一段上下班时可用,最多 3 段休息时间):\n checkType string 休息类型:OnDuty(开始休息)/ OffDuty(结束休息)\n checkTime string 休息时间,格式 \"HH:mm\"(如 \"12:00\"、\"13:00\")\n across number 是否跨天:0/1" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 create_class_setting,创建一个新的班次。\n--name 和 --sections 必填,其余参数可选。由于保存班次耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于创建班次的说明\n\n常用 flag:\n --name 班次名称(必填)\n --owner 班次负责人 userId(可选)\n --class-vo 完整 TopAtClassVO JSON 字符串(可选,用于传入复杂结构)\n\n当使用 --class-vo 传入完整 JSON 时,--name 和 --owner 仍可覆写 JSON 中的同名字段。\ncheckTime 字段统一使用 \"HH:mm\" 格式(如 \"09:00\"),CLI 自动转换为服务端所需的时间戳。\n\n--class-vo JSON 可用字段说明:\n\n name string 班次名称(必填)\n owner string 班次负责人 userId\n sections []object 班次上下班时间段(必填),支持多段上下班,每段包含 times 数组:\n - times []object 每段有且只能有两个对象(上班+下班),每个对象字段:\n checkType string 打卡类型:OnDuty(上班)/ OffDuty(下班)(必填)\n checkTime string 打卡时间,格式 \"HH:mm\"(必填,如 \"09:00\"、\"17:30\")\n across number 是否跨天:0(不跨天)/ 1(跨天)(必填)\n freeCheck bool 是否免打卡\n beginMin number 允许最早提前打卡时间(分钟,-1 表示不限制)\n endMin number 允许最晚打卡时间(分钟,-1 表示不限制)\n setting object 班次其他配置:\n - seriousLateMinutes number 晚到多少分钟记为严重迟到\n - absenteeismLateMinutes number 晚到多少分钟记为旷工迟到\n - attendDays number 本班次记为多少天出勤(支持两位小数)\n - topRestTimeList []object 班次休息时间(仅 sections 只有一段上下班时可用,最多 3 段休息时间):\n checkType string 休息类型:OnDuty(开始休息)/ OffDuty(结束休息)\n checkTime string 休息时间,格式 \"HH:mm\"(如 \"12:00\"、\"13:00\")\n across number 是否跨天:0/1" @@ -111713,45 +109762,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -111814,13 +109867,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建班次" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建班次" @@ -111849,8 +109902,8 @@ "group": "class", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "class_create", "parameter_count": 4, @@ -111881,16 +109934,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "classVo" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "classVo" + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -111941,7 +110002,6 @@ "value": "string" } }, - "property": "classVo", "required": true, "type": "string" }, @@ -111971,16 +110031,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -112031,7 +110099,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -112061,16 +110128,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "owner" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "owner" + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -112115,7 +110190,6 @@ "value": "string" } }, - "property": "owner", "required": false, "type": "string" }, @@ -112145,16 +110219,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -112199,7 +110281,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -112222,6 +110303,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -112237,9 +110319,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息。--class-id 必填。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -112265,15 +110344,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -112343,39 +110424,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息。--class-id 必填。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_class_detail,根据班次 ID 查询该班次的详细信息。--class-id 必填。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -112455,45 +110514,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -112556,13 +110619,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据班次 ID 查询班次详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据班次 ID 查询班次详情" @@ -112591,8 +110654,8 @@ "group": "class", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "class_get", "parameter_count": 1, @@ -112623,16 +110686,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_get has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "classId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "classId" + "review_reason": "Reviewed unpinned adapter: attendance.class_get has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -112683,7 +110754,6 @@ "value": "integer" } }, - "property": "classId", "required": true, "type": "integer" } @@ -112706,6 +110776,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -112721,9 +110792,6 @@ "confirmation": "not_required", "description": "查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤。\n所有参数均为可选项:\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(最大 200,默认 20)\n --query 班次名称关键字,模糊搜索\n --filter-type 班次类型:ALL(全部班次)/ MINE_OWN(我负责的),默认 ALL", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -112749,15 +110817,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -112827,39 +110897,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤。\n所有参数均为可选项:\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(最大 200,默认 20)\n --query 班次名称关键字,模糊搜索\n --filter-type 班次类型:ALL(全部班次)/ MINE_OWN(我负责的),默认 ALL" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户有权管理的班次列表(班次定义),支持按名称搜索和类型过滤。\n所有参数均为可选项:\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(最大 200,默认 20)\n --query 班次名称关键字,模糊搜索\n --filter-type 班次类型:ALL(全部班次)/ MINE_OWN(我负责的),默认 ALL" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -112939,45 +110987,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -113040,13 +111092,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户可管理的所有班次详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户可管理的所有班次详情" @@ -113075,8 +111127,8 @@ "group": "class", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "class_search", "parameter_count": 4, @@ -113107,16 +111159,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --filter-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterType" + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --filter-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113161,7 +111221,6 @@ "value": "string" } }, - "property": "filterType", "required": false, "type": "string" }, @@ -113192,16 +111251,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113252,7 +111319,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -113283,16 +111349,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113343,7 +111417,6 @@ "value": "integer" } }, - "property": "page", "required": false, "type": "integer" }, @@ -113373,16 +111446,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113427,7 +111508,6 @@ "value": "string" } }, - "property": "query", "required": false, "type": "string" } @@ -113450,6 +111530,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -113490,15 +111571,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -113568,13 +111651,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 update_class_setting,更新一个已有的班次。\n--class-id 必填;其余参数均可选,仅需对要修改的字段进行赋値,未传的字段会自动从已有配置补充。由于保存班次耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新班次的说明\n\n常用 flag:\n --class-id 班次 ID(必填)\n --name 班次名称(可选,不传则保持原值)\n --owner 班次负责人 userId(可选,不传则保持原值)\n --class-vo 完整 TopAtClassVO JSON 字符串(可选,用于传入复杂结构)\n\n当使用 --class-vo 传入完整 JSON 时,--name 和 --owner 仍可覆写 JSON 中的同名字段。\ncheckTime 字段统一使用 \"HH:mm\" 格式(如 \"09:00\"),CLI 自动转换为服务端所需的时间戳。\n\n--class-vo JSON 可用字段说明:\n\n name string 班次名称(可选,不传则保持原值)\n owner string 班次负责人 userId(可选,不传则保持原值)\n sections []object 班次上下班时间段(可选,不传则保持原值),支持多段上下班,每段包含 times 数组:\n - times []object 每段有且只能有两个对象(上班+下班),每个对象字段:\n checkType string 打卡类型:OnDuty(上班)/ OffDuty(下班)(必填)\n checkTime string 打卡时间,格式 \"HH:mm\"(必填,如 \"09:00\"、\"17:30\")\n across number 是否跨天:0(不跨天)/ 1(跨天)(必填)\n freeCheck bool 是否免打卡\n beginMin number 允许最早提前打卡时间(分钟,-1 表示不限制)\n endMin number 允许最晚打卡时间(分钟,-1 表示不限制)\n setting object 班次其他配置:\n - seriousLateMinutes number 晚到多少分钟记为严重迟到\n - absenteeismLateMinutes number 晚到多少分钟记为旷工迟到\n - attendDays number 本班次记为多少天出勤(支持两位小数)\n - topRestTimeList []object 班次休息时间(仅 sections 只有一段上下班时可用,最多 3 段休息时间):\n checkType string 休息类型:OnDuty(开始休息)/ OffDuty(结束休息)\n checkTime string 休息时间,格式 \"HH:mm\"(如 \"12:00\"、\"13:00\")\n across number 是否跨天:0/1" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 update_class_setting,更新一个已有的班次。\n--class-id 必填;其余参数均可选,仅需对要修改的字段进行赋値,未传的字段会自动从已有配置补充。由于保存班次耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新班次的说明\n\n常用 flag:\n --class-id 班次 ID(必填)\n --name 班次名称(可选,不传则保持原值)\n --owner 班次负责人 userId(可选,不传则保持原值)\n --class-vo 完整 TopAtClassVO JSON 字符串(可选,用于传入复杂结构)\n\n当使用 --class-vo 传入完整 JSON 时,--name 和 --owner 仍可覆写 JSON 中的同名字段。\ncheckTime 字段统一使用 \"HH:mm\" 格式(如 \"09:00\"),CLI 自动转换为服务端所需的时间戳。\n\n--class-vo JSON 可用字段说明:\n\n name string 班次名称(可选,不传则保持原值)\n owner string 班次负责人 userId(可选,不传则保持原值)\n sections []object 班次上下班时间段(可选,不传则保持原值),支持多段上下班,每段包含 times 数组:\n - times []object 每段有且只能有两个对象(上班+下班),每个对象字段:\n checkType string 打卡类型:OnDuty(上班)/ OffDuty(下班)(必填)\n checkTime string 打卡时间,格式 \"HH:mm\"(必填,如 \"09:00\"、\"17:30\")\n across number 是否跨天:0(不跨天)/ 1(跨天)(必填)\n freeCheck bool 是否免打卡\n beginMin number 允许最早提前打卡时间(分钟,-1 表示不限制)\n endMin number 允许最晚打卡时间(分钟,-1 表示不限制)\n setting object 班次其他配置:\n - seriousLateMinutes number 晚到多少分钟记为严重迟到\n - absenteeismLateMinutes number 晚到多少分钟记为旷工迟到\n - attendDays number 本班次记为多少天出勤(支持两位小数)\n - topRestTimeList []object 班次休息时间(仅 sections 只有一段上下班时可用,最多 3 段休息时间):\n checkType string 休息类型:OnDuty(开始休息)/ OffDuty(结束休息)\n checkTime string 休息时间,格式 \"HH:mm\"(如 \"12:00\"、\"13:00\")\n across number 是否跨天:0/1" @@ -113658,45 +111741,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -113759,13 +111846,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新班次" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新班次" @@ -113794,8 +111881,8 @@ "group": "class", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "class_update", "parameter_count": 5, @@ -113826,16 +111913,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "classId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "classId" + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113886,7 +111981,6 @@ "value": "integer" } }, - "property": "classId", "required": true, "type": "integer" }, @@ -113916,16 +112010,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "classVo" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "classVo" + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -113970,7 +112072,6 @@ "value": "string" } }, - "property": "classVo", "required": false, "type": "string" }, @@ -114000,16 +112101,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -114054,7 +112163,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -114084,16 +112192,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "owner" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "owner" + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -114138,7 +112254,6 @@ "value": "string" } }, - "property": "owner", "required": false, "type": "string" }, @@ -114168,16 +112283,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -114222,7 +112345,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -114247,6 +112369,7 @@ "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.attendance.get_attendance_summary", "skills/mono/references/products/attendance-report.md", @@ -114262,11 +112385,8 @@ "cli_name": "summary", "cli_path": "attendance summary", "confirmation": "not_required", - "description": "获取考勤统计摘要", + "description": "查询某个人的考勤统计摘要。--user、--date、--stats-type 均必填。\nstatsType 统计类型支持:week(周统计)、month(月统计)。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -114293,9 +112413,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -114307,8 +112427,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -114372,44 +112492,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取考勤统计摘要" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询某个人的考勤统计摘要。--user、--date、--stats-type 均必填。\nstatsType 统计类型支持:week(周统计)、month(月统计)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取考勤统计摘要" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取考勤统计摘要" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询某个人的考勤统计摘要。--user、--date、--stats-type 均必填。\nstatsType 统计类型支持:week(周统计)、month(月统计)。" }, "effect": { "candidates": [ @@ -114479,10 +112577,10 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, { "precedence": "mcp_fallback", @@ -114493,20 +112591,42 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised." }, "interface_ref": { "candidates": [ { - "precedence": "imported", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null + } + ], + "overridden_candidates": [ + { + "precedence": "imported", + "selected": false, "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - } + "value": "attendance.get_attendance_summary" }, { "precedence": "mcp_fallback", @@ -114515,13 +112635,11 @@ "value": "attendance.get_attendance_summary" } ], - "precedence": "imported", - "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -114585,22 +112703,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_attendance_summary" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询某个人的考勤统计摘要" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_attendance_summary" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_attendance_summary" + "source": "cobra_help", + "value": "查询某个人的考勤统计摘要" }, "use_when": { "candidates": [ @@ -114625,15 +112743,12 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "attendance", - "rpc_name": "get_attendance_summary" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "get_attendance_summary", - "parameter_count": 4, + "parameter_count": 3, "parameters": { "date": { "description": "查询日期,格式 YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss(必填)", @@ -114661,16 +112776,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local CLI adapter converts the date into queryDate for an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "date" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "date" + "review_reason": "local CLI adapter converts the date into queryDate for an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -114727,7 +112850,6 @@ "value": "string" } }, - "property": "date", "required": true, "type": "string" }, @@ -114757,16 +112879,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "statsType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "statsType" + "review_reason": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -114823,94 +112953,9 @@ "value": "string" } }, - "property": "statsType", "required": true, "type": "string" }, - "tag-name": { - "description": "标签名称(可选)", - "field_provenance": { - "description": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_usage", - "value": "标签名称(可选)" - }, - { - "precedence": "default", - "selected": false, - "source": "default", - "value": "" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "标签名称(可选)" - }, - "property": { - "candidates": [ - { - "precedence": "inference", - "selected": true, - "source": "flag_name_inference", - "value": "tagName" - } - ], - "precedence": "inference", - "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "tagName" - }, - "required": { - "candidates": [ - { - "precedence": "default", - "selected": true, - "source": "default", - "value": false - } - ], - "precedence": "default", - "resolution": "fallback", - "source": "default", - "value": false - }, - "required_when": { - "candidates": [ - { - "precedence": "default", - "selected": true, - "source": "default", - "value": "" - } - ], - "precedence": "default", - "resolution": "highest_precedence", - "source": "default", - "value": "" - }, - "type": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_flag_type", - "value": "string" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_flag_type", - "value": "string" - } - }, - "property": "tagName", - "required": false, - "type": "string" - }, "user": { "description": "钉钉用户 ID(必填)", "field_provenance": { @@ -114937,16 +112982,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -115003,7 +113056,6 @@ "value": "string" } }, - "property": "user", "required": true, "type": "string" } @@ -115014,7 +113066,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_attendance_summary", + "title": "查询某个人的考勤统计摘要", "use_when": [ "当用户需要查询指定用户的周度或月度考勤统计摘要,并能提供命令所需的查询条件时使用。" ] @@ -115043,11 +113095,8 @@ "cli_name": "get", "cli_path": "attendance record get", "confirmation": "not_required", - "description": "查询指定用户在某一天的考勤详情,包括实际打卡记录(如上班/下班时间、是否正常打卡)、当日所排班次、所属考勤组信息、是否为休息日、出勤工时(如 \"0Hours\")、加班时长等。返回数据受组织权限和隐私策略限制,仅当调用者有权限查看该用户考勤信息时才返回有效内容。适用于员工自助查询、HR 核对出勤或审批关联场景。", + "description": "查询个人考勤详情", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -115153,44 +113202,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定用户在某一天的考勤详情,包括实际打卡记录(如上班/下班时间、是否正常打卡)、当日所排班次、所属考勤组信息、是否为休息日、出勤工时(如 \"0Hours\")、加班时长等。返回数据受组织权限和隐私策略限制,仅当调用者有权限查看该用户考勤信息时才返回有效内容。适用于员工自助查询、HR 核对出勤或审批关联场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询个人考勤详情" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定用户在某一天的考勤详情,包括实际打卡记录(如上班/下班时间、是否正常打卡)、当日所排班次、所属考勤组信息、是否为休息日、出勤工时(如 \"0Hours\")、加班时长等。返回数据受组织权限和隐私策略限制,仅当调用者有权限查看该用户考勤信息时才返回有效内容。适用于员工自助查询、HR 核对出勤或审批关联场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定用户在某一天的考勤详情,包括实际打卡记录(如上班/下班时间、是否正常打卡)、当日所排班次、所属考勤组信息、是否为休息日、出勤工时(如 \"0Hours\")、加班时长等。返回数据受组织权限和隐私策略限制,仅当调用者有权限查看该用户考勤信息时才返回有效内容。适用于员工自助查询、HR 核对出勤或审批关联场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询个人考勤详情" }, "effect": { "candidates": [ @@ -115366,22 +113393,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定用户某一天的考勤详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询个人考勤详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定用户某一天的考勤详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定用户某一天的考勤详情" + "source": "cobra_help", + "value": "查询个人考勤详情" }, "use_when": { "candidates": [ @@ -115428,6 +113455,12 @@ "source": "cobra_usage", "value": "查询日期,格式 YYYY-MM-DD (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要查询的日期的Unix时间戳,仅保留日期信息,单位毫秒。" + }, { "precedence": "default", "selected": false, @@ -115440,19 +113473,45 @@ "source": "cobra_usage", "value": "查询日期,格式 YYYY-MM-DD (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workDate" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "date" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "date" + "source": "versioned_parameter_binding", + "value": "workDate" }, "required": { "candidates": [ @@ -115462,6 +113521,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -115509,7 +113574,9 @@ "value": "string" } }, - "property": "date", + "interface_description": "要查询的日期的Unix时间戳,仅保留日期信息,单位毫秒。", + "interface_type": "number", + "property": "workDate", "required": true, "type": "string" }, @@ -115524,6 +113591,12 @@ "source": "cobra_usage", "value": "钉钉用户 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要查询的用户的userId" + }, { "precedence": "default", "selected": false, @@ -115539,16 +113612,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "source": "versioned_parameter_binding", + "value": "userId" }, "required": { "candidates": [ @@ -115558,6 +113637,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -115605,7 +113690,8 @@ "value": "string" } }, - "property": "user", + "interface_description": "要查询的用户的userId", + "property": "userId", "required": true, "type": "string" } @@ -115616,7 +113702,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询指定用户某一天的考勤详情", + "title": "查询个人考勤详情", "use_when": [ "当用户需要查询指定用户在指定日期的个人考勤详情,并能提供命令所需的查询条件时使用。" ] @@ -115628,6 +113714,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -115643,9 +113730,6 @@ "confirmation": "not_required", "description": "查询全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次查询面向全局范围\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -115671,15 +113755,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -115749,39 +113835,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次查询面向全局范围\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次查询面向全局范围\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -115861,45 +113925,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -115962,13 +114030,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询全局规则设置(仅管理员)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询全局规则设置(仅管理员)" @@ -115997,8 +114065,8 @@ "group": "globalsetting", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "globalsetting_get", "parameter_count": 2, @@ -116029,16 +114097,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scope" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scope" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116089,7 +114165,6 @@ "value": "string" } }, - "property": "scope", "required": true, "type": "string" }, @@ -116119,16 +114194,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "settingScene" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "settingScene" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116179,7 +114262,6 @@ "value": "string" } }, - "property": "settingScene", "required": true, "type": "string" } @@ -116203,6 +114285,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -116243,15 +114326,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -116321,13 +114406,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新保存全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 必填,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次更新面向全局范围\n\n按 settingScene 传入对应设置字段,且至少传一个字段:\n checkRemind:\n --check-remind-corp\n --check-remind-pc-corp\n fastCheck:\n --fast-check-corp\n checkResultNotify:\n --enable-check-cert-push\n lackRemind:\n --lack-remind-corp\n personalAttendStatNotify:\n --enable-personal-daily-report\n --enable-personal-weekly-report\n --enable-personal-weekly-report-card\n --enable-personal-monthly-report\n bossAttendStatNotify:\n --boss-daily-report-type\n --boss-weekly-report-type\n --boss-monthly-report-type\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n返回 ServiceResult,result 为 boolean,表示保存是否成功。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新保存全局规则设置,仅管理员可以调用。\n\n入参字段:\n --setting-scene 必填,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --scope 必填,必须明确输入 企业、全公司 或 所有人,用于确认本次更新面向全局范围\n\n按 settingScene 传入对应设置字段,且至少传一个字段:\n checkRemind:\n --check-remind-corp\n --check-remind-pc-corp\n fastCheck:\n --fast-check-corp\n checkResultNotify:\n --enable-check-cert-push\n lackRemind:\n --lack-remind-corp\n personalAttendStatNotify:\n --enable-personal-daily-report\n --enable-personal-weekly-report\n --enable-personal-weekly-report-card\n --enable-personal-monthly-report\n bossAttendStatNotify:\n --boss-daily-report-type\n --boss-weekly-report-type\n --boss-monthly-report-type\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n返回 ServiceResult,result 为 boolean,表示保存是否成功。" @@ -116411,45 +114496,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -116512,13 +114601,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新保存全局规则设置(仅管理员)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新保存全局规则设置(仅管理员)" @@ -116547,8 +114636,8 @@ "group": "globalsetting", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "globalsetting_save", "parameter_count": 15, @@ -116579,16 +114668,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-daily-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossDailyReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossDailyReportType" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-daily-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116633,7 +114730,6 @@ "value": "integer" } }, - "property": "bossDailyReportType", "required": false, "type": "integer" }, @@ -116663,16 +114759,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-monthly-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossMonthlyReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossMonthlyReportType" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-monthly-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116717,7 +114821,6 @@ "value": "integer" } }, - "property": "bossMonthlyReportType", "required": false, "type": "integer" }, @@ -116747,16 +114850,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-weekly-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossWeeklyReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossWeeklyReportType" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-weekly-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116801,7 +114912,6 @@ "value": "integer" } }, - "property": "bossWeeklyReportType", "required": false, "type": "integer" }, @@ -116831,16 +114941,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-corp is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkRemindCorp" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkRemindCorp" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-corp is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116885,7 +115003,6 @@ "value": "boolean" } }, - "property": "checkRemindCorp", "required": false, "type": "boolean" }, @@ -116915,16 +115032,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-pc-corp is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkRemindPcCorp" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkRemindPcCorp" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-pc-corp is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -116969,7 +115094,6 @@ "value": "boolean" } }, - "property": "checkRemindPcCorp", "required": false, "type": "boolean" }, @@ -116999,16 +115123,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-check-cert-push is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enableCheckCertPush" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enableCheckCertPush" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-check-cert-push is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117053,7 +115185,6 @@ "value": "boolean" } }, - "property": "enableCheckCertPush", "required": false, "type": "boolean" }, @@ -117083,16 +115214,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-daily-report is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enablePersonalDailyReport" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enablePersonalDailyReport" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-daily-report is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117137,7 +115276,6 @@ "value": "boolean" } }, - "property": "enablePersonalDailyReport", "required": false, "type": "boolean" }, @@ -117167,16 +115305,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-monthly-report is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enablePersonalMonthlyReport" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enablePersonalMonthlyReport" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-monthly-report is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117221,7 +115367,6 @@ "value": "boolean" } }, - "property": "enablePersonalMonthlyReport", "required": false, "type": "boolean" }, @@ -117251,16 +115396,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enablePersonalWeeklyReport" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enablePersonalWeeklyReport" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117305,7 +115458,6 @@ "value": "boolean" } }, - "property": "enablePersonalWeeklyReport", "required": false, "type": "boolean" }, @@ -117335,16 +115487,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report-card is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enablePersonalWeeklyReportCard" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enablePersonalWeeklyReportCard" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report-card is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117389,7 +115549,6 @@ "value": "boolean" } }, - "property": "enablePersonalWeeklyReportCard", "required": false, "type": "boolean" }, @@ -117419,16 +115578,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --fast-check-corp is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fastCheckCorp" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fastCheckCorp" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --fast-check-corp is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117473,7 +115640,6 @@ "value": "boolean" } }, - "property": "fastCheckCorp", "required": false, "type": "boolean" }, @@ -117503,16 +115669,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --lack-remind-corp is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "lackRemindCorp" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "lackRemindCorp" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --lack-remind-corp is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117557,7 +115731,6 @@ "value": "boolean" } }, - "property": "lackRemindCorp", "required": false, "type": "boolean" }, @@ -117587,16 +115760,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scope" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scope" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117647,7 +115828,6 @@ "value": "string" } }, - "property": "scope", "required": true, "type": "string" }, @@ -117677,16 +115857,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "settingScene" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "settingScene" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117737,7 +115925,6 @@ "value": "string" } }, - "property": "settingScene", "required": true, "type": "string" }, @@ -117767,16 +115954,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -117821,7 +116016,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -117844,6 +116038,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -117884,15 +116079,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -117962,13 +116159,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 create_group_setting,创建一个新的考勤组。\n--name 和 --type 必填,其余参数可选(未传字段使用默认值)。由于创建考勤组耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于创建考勤组的说明\n\n常用 flag:\n --name 考勤组名称(必填)\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)(必填,显式校验)\n --owner 考勤组主负责人 userId(可选)\n --group-vo 完整 groupVO JSON 字符串(可选,用于传入复杂子对象,会与 --name/--type/--owner 合并)\n\n当使用 --group-vo 传入完整 JSON 时,--name、--type、--owner 仍可覆写 JSON 中的同名字段。\n\n【无条件必填字段】\n name string 考勤组名称\n type string 考勤组类型:FIXED / TURN / NONE\n\n【条件必填字段(type=FIXED 固定班制时)】\n workDayClassList []number 工作日班次列表,不能为空。\n 一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息。\n 例如 [0,1279240003,0,0,0,0,0] 表示周一的班次id为1279240003,其余日子都是休息\n defaultClassId number 默认班次 ID,不能为 null\n\n条件必填字段通过 --group-vo JSON 传入,CLI 在 --type=FIXED 时会显式校验这些字段。\n\n--group-vo 可用字段说明(与更新考勤组一致,均可选,只需包含要设置的字段):\n\n【基础信息】\n id number 考勤组id(创建时禁止传入,由服务端分配)\n name string 考勤组名称(必填)\n type string 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)(必填)\n owner string 考勤组主负责人 userId\n managerList []string 考勤组子负责人 userId 列表\n skipHolidays bool 节假日自动排休(只有固定班制和自由工时考勤组生效)\n defaultGroup bool 是否默认考勤组\n classIds []number 所选班次 id 列表(只有固定班制和排班制才有班次,自由工时没有)\n\n【打卡范围与定位】\n trimDistance number 定位允许微调距离(米)\n enablePositionOfGps bool 打卡是否允许开启 GPS 定位\n enablePositionOfWifi bool 是否开启 wifi 定位\n enablePositionOfBle bool 是否启用蓝牙定位\n\n positions []object 考勤打卡地址列表(地址定位打卡用),每项字段:\n - title string 地址标题\n - address string 地址详情(完整地址文本)\n - latitude number 纬度\n - longitude number 经度\n - offset number 该地址允许的打卡范围,单位米\n\n wifis []object 打卡方式中的 wifi 详情列表,每项字段:\n - ssid string wifi 的 ssid(wifi名称)\n - macAddr string wifi 的 macAddr(MAC 地址)\n - groupId number 考勤组id\n\n bleDeviceVOList []object 已选择的蓝牙设备列表,每项字段:\n - name string 设备名称\n - deviceUid number 设备 uid\n - sn string 设备 sn 序列号\n - productType string 对外的设备类型\n - devServId number 内部设备类型\n\n【外勤打卡设置】\n enableOutsideCheck bool 是否可以外勤打卡\n enableOutsideCameraCheck bool 是否开启外勤打卡必须拍照\n enableOutsideRemark bool 是否开启外勤打卡必须填写备注\n enableOutsideApply bool 是否开启外勤打卡必须审批\n forbidHideOutSideAddress bool 禁止隐藏外勤打卡地址的功能,false表示允许用户隐藏外勤打卡地址\n enableOutSideUpdateNormalCheck bool 下班时间:允许外勤卡更新内勤卡\n enableOnDutyNormalUpdateOutsideCheck bool 上班时间:允许内勤卡更新外勤卡\n outsideCheckApproveMode string 外勤打卡需审批执行模式:\n NO_NEED_APPROVE(无需审批)\n APPROVE_FIRST(先审批后打卡)\n CHECK_FIRST(先打卡后审批)\n APPROVE_EVERYTIME(每次打卡都需要审批)\n outSideCheckApplyType number 外勤审批范围:1(全天外勤打卡)/ 2(上班外勤打卡)/ 3(下班外勤打卡)\n\n【打卡方式】\n enableCameraCheck bool 是否开启拍照打卡\n openCameraCheck bool 是否开启拍照打卡(与 enableCameraCheck 含义相同)\n openFaceCheck bool 是否开启人脸打卡\n enableFaceStrictMode bool 是否开启人脸严格模式(强制活体检测)\n enableFaceBeauty bool 是否开启美颜\n onlyMachineCheck bool 只允许考勤机打卡\n permitMaxBeaconCount number 允许绑定的智点设备数量\n disableCheckWhenRest bool 休息日打卡需审批(只在固定班制和排班制生效,true表示打卡需要提交审批单)\n\n\n【固定班制设置(FIXED)】\n defaultClassId number 固定班制的默认班次 id(type=FIXED 时必填)\n workDayClassList []number 固定班制的工作日班次 id 列表,一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息,例如[0,1279240003,0,0,0,0,0]表示周一的班次id为1279240003,其余日子都是休息\n\n【排班制设置(TURN)】\n disableCheckWithoutSchedule bool 未排班时员工可打卡(true=未排班时禁止打卡)\n enableEmpSelectClass bool 未排班时,员工可选班次打卡\n enableScheduleAutoMatch bool 未排班时,系统自动匹配班次\n ----以下是排班制设置排班周期的,非必要,不是所有排班制考勤组都需要设置,不设置就是按照classIds中的班次由管理员自行排班-----\n cycleDays number 排班循环天数,支持大小周(14天)\n startCycleDate number 用户设置的大小周开始时间(时间戳,毫秒)\n cycleScheduleList []object 循环排班设置列表,每项字段:\n - cycleName string 周期名字(如\"第一周\")\n - groupId number 考勤组 id\n - isValid string 是否有效:Y(有效)/ N(无效)\n - itemList []object 排班设置列表,每项字段:\n - classId number 班次 id\n - className string 班次名称\n - isValid string 是否有效(Y/N)\n\n【自由工时设置(NONE)】\n workDays []number 自由工时的工作日,如 [1,2,3,4,5] 表示周一到周五(1=周一,7=周日)\n freeCheckDayStartMinOffset number 自由打卡每日开始时间,距离 0 点的分钟数(如 480 表示 08:00 开始)\n freeCheckCoreTime number 自由工时考勤组的打卡最短工作时长(分钟)\n freeCheckDemandWorkMinutes number 自由工时考勤组要求的打卡时长(分钟)\n\n freeCheckSettingVO object 自由工时打卡设置,包含字段:\n - freeCheckType string 自由工时打卡类型:\n CYCLE(上下班交替打卡)\n MAX_TIME_UPDATE(最大时间打卡,第一次为上班,后续均为下班卡)\n - freeWorkDayLackSwitch bool 自由工时打卡规则:工作日没打卡记为缺卡(true=记缺卡)\n - freeOnDutyLackMinOffset number 自由工时打卡规则:上班缺卡生成时间偏移分钟数\n - freeOffDutyLackMinOffset number 自由工时打卡规则:下班缺卡生成时间偏移分钟数\n - delimitOffsetMinutesBetweenDays number 自由工时前后两天的分割线(距 0 点分钟数,超过此时间则归属第二天)\n - freeCheckGapVO object 自由工时/休息日打卡间隔设置:\n - onOffCheckGapMinutes number 上班打卡后,多久才可以打下班卡(分钟)\n - offOnCheckGapMinutes number 下班打卡后,多久才可以打上班卡(分钟)\n\n freeGroupSpecialDayVO object 自由工时考勤组特殊日期设置,包含字段:\n - specialOnDutyDays []number 特殊需要打卡日期的时间戳列表(毫秒,原本休息日需额外打卡的日期)\n - specialOffDutyDays []number 特殊无需打卡日期的时间戳列表(毫秒,原本工作日可免打卡的日期)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 create_group_setting,创建一个新的考勤组。\n--name 和 --type 必填,其余参数可选(未传字段使用默认值)。由于创建考勤组耗时较久,指令需要带上 --timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于创建考勤组的说明\n\n常用 flag:\n --name 考勤组名称(必填)\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)(必填,显式校验)\n --owner 考勤组主负责人 userId(可选)\n --group-vo 完整 groupVO JSON 字符串(可选,用于传入复杂子对象,会与 --name/--type/--owner 合并)\n\n当使用 --group-vo 传入完整 JSON 时,--name、--type、--owner 仍可覆写 JSON 中的同名字段。\n\n【无条件必填字段】\n name string 考勤组名称\n type string 考勤组类型:FIXED / TURN / NONE\n\n【条件必填字段(type=FIXED 固定班制时)】\n workDayClassList []number 工作日班次列表,不能为空。\n 一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息。\n 例如 [0,1279240003,0,0,0,0,0] 表示周一的班次id为1279240003,其余日子都是休息\n defaultClassId number 默认班次 ID,不能为 null\n\n条件必填字段通过 --group-vo JSON 传入,CLI 在 --type=FIXED 时会显式校验这些字段。\n\n--group-vo 可用字段说明(与更新考勤组一致,均可选,只需包含要设置的字段):\n\n【基础信息】\n id number 考勤组id(创建时禁止传入,由服务端分配)\n name string 考勤组名称(必填)\n type string 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)(必填)\n owner string 考勤组主负责人 userId\n managerList []string 考勤组子负责人 userId 列表\n skipHolidays bool 节假日自动排休(只有固定班制和自由工时考勤组生效)\n defaultGroup bool 是否默认考勤组\n classIds []number 所选班次 id 列表(只有固定班制和排班制才有班次,自由工时没有)\n\n【打卡范围与定位】\n trimDistance number 定位允许微调距离(米)\n enablePositionOfGps bool 打卡是否允许开启 GPS 定位\n enablePositionOfWifi bool 是否开启 wifi 定位\n enablePositionOfBle bool 是否启用蓝牙定位\n\n positions []object 考勤打卡地址列表(地址定位打卡用),每项字段:\n - title string 地址标题\n - address string 地址详情(完整地址文本)\n - latitude number 纬度\n - longitude number 经度\n - offset number 该地址允许的打卡范围,单位米\n\n wifis []object 打卡方式中的 wifi 详情列表,每项字段:\n - ssid string wifi 的 ssid(wifi名称)\n - macAddr string wifi 的 macAddr(MAC 地址)\n - groupId number 考勤组id\n\n bleDeviceVOList []object 已选择的蓝牙设备列表,每项字段:\n - name string 设备名称\n - deviceUid number 设备 uid\n - sn string 设备 sn 序列号\n - productType string 对外的设备类型\n - devServId number 内部设备类型\n\n【外勤打卡设置】\n enableOutsideCheck bool 是否可以外勤打卡\n enableOutsideCameraCheck bool 是否开启外勤打卡必须拍照\n enableOutsideRemark bool 是否开启外勤打卡必须填写备注\n enableOutsideApply bool 是否开启外勤打卡必须审批\n forbidHideOutSideAddress bool 禁止隐藏外勤打卡地址的功能,false表示允许用户隐藏外勤打卡地址\n enableOutSideUpdateNormalCheck bool 下班时间:允许外勤卡更新内勤卡\n enableOnDutyNormalUpdateOutsideCheck bool 上班时间:允许内勤卡更新外勤卡\n outsideCheckApproveMode string 外勤打卡需审批执行模式:\n NO_NEED_APPROVE(无需审批)\n APPROVE_FIRST(先审批后打卡)\n CHECK_FIRST(先打卡后审批)\n APPROVE_EVERYTIME(每次打卡都需要审批)\n outSideCheckApplyType number 外勤审批范围:1(全天外勤打卡)/ 2(上班外勤打卡)/ 3(下班外勤打卡)\n\n【打卡方式】\n enableCameraCheck bool 是否开启拍照打卡\n openCameraCheck bool 是否开启拍照打卡(与 enableCameraCheck 含义相同)\n openFaceCheck bool 是否开启人脸打卡\n enableFaceStrictMode bool 是否开启人脸严格模式(强制活体检测)\n enableFaceBeauty bool 是否开启美颜\n onlyMachineCheck bool 只允许考勤机打卡\n permitMaxBeaconCount number 允许绑定的智点设备数量\n disableCheckWhenRest bool 休息日打卡需审批(只在固定班制和排班制生效,true表示打卡需要提交审批单)\n\n\n【固定班制设置(FIXED)】\n defaultClassId number 固定班制的默认班次 id(type=FIXED 时必填)\n workDayClassList []number 固定班制的工作日班次 id 列表,一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息,例如[0,1279240003,0,0,0,0,0]表示周一的班次id为1279240003,其余日子都是休息\n\n【排班制设置(TURN)】\n disableCheckWithoutSchedule bool 未排班时员工可打卡(true=未排班时禁止打卡)\n enableEmpSelectClass bool 未排班时,员工可选班次打卡\n enableScheduleAutoMatch bool 未排班时,系统自动匹配班次\n ----以下是排班制设置排班周期的,非必要,不是所有排班制考勤组都需要设置,不设置就是按照classIds中的班次由管理员自行排班-----\n cycleDays number 排班循环天数,支持大小周(14天)\n startCycleDate number 用户设置的大小周开始时间(时间戳,毫秒)\n cycleScheduleList []object 循环排班设置列表,每项字段:\n - cycleName string 周期名字(如\"第一周\")\n - groupId number 考勤组 id\n - isValid string 是否有效:Y(有效)/ N(无效)\n - itemList []object 排班设置列表,每项字段:\n - classId number 班次 id\n - className string 班次名称\n - isValid string 是否有效(Y/N)\n\n【自由工时设置(NONE)】\n workDays []number 自由工时的工作日,如 [1,2,3,4,5] 表示周一到周五(1=周一,7=周日)\n freeCheckDayStartMinOffset number 自由打卡每日开始时间,距离 0 点的分钟数(如 480 表示 08:00 开始)\n freeCheckCoreTime number 自由工时考勤组的打卡最短工作时长(分钟)\n freeCheckDemandWorkMinutes number 自由工时考勤组要求的打卡时长(分钟)\n\n freeCheckSettingVO object 自由工时打卡设置,包含字段:\n - freeCheckType string 自由工时打卡类型:\n CYCLE(上下班交替打卡)\n MAX_TIME_UPDATE(最大时间打卡,第一次为上班,后续均为下班卡)\n - freeWorkDayLackSwitch bool 自由工时打卡规则:工作日没打卡记为缺卡(true=记缺卡)\n - freeOnDutyLackMinOffset number 自由工时打卡规则:上班缺卡生成时间偏移分钟数\n - freeOffDutyLackMinOffset number 自由工时打卡规则:下班缺卡生成时间偏移分钟数\n - delimitOffsetMinutesBetweenDays number 自由工时前后两天的分割线(距 0 点分钟数,超过此时间则归属第二天)\n - freeCheckGapVO object 自由工时/休息日打卡间隔设置:\n - onOffCheckGapMinutes number 上班打卡后,多久才可以打下班卡(分钟)\n - offOnCheckGapMinutes number 下班打卡后,多久才可以打上班卡(分钟)\n\n freeGroupSpecialDayVO object 自由工时考勤组特殊日期设置,包含字段:\n - specialOnDutyDays []number 特殊需要打卡日期的时间戳列表(毫秒,原本休息日需额外打卡的日期)\n - specialOffDutyDays []number 特殊无需打卡日期的时间戳列表(毫秒,原本工作日可免打卡的日期)" @@ -118052,45 +116249,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -118153,13 +116354,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建考勤组" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建考勤组" @@ -118188,8 +116389,8 @@ "group": "group", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_create", "parameter_count": 6, @@ -118220,16 +116421,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --corp-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "corpId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "corpId" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --corp-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118274,7 +116483,6 @@ "value": "string" } }, - "property": "corpId", "required": false, "type": "string" }, @@ -118304,16 +116512,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupVo" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupVo" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118358,7 +116574,6 @@ "value": "string" } }, - "property": "groupVo", "required": false, "type": "string" }, @@ -118388,16 +116603,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118448,7 +116671,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -118478,16 +116700,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "owner" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "owner" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118532,7 +116762,6 @@ "value": "string" } }, - "property": "owner", "required": false, "type": "string" }, @@ -118562,16 +116791,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118622,7 +116859,6 @@ "value": "string" } }, - "property": "type", "required": true, "type": "string" }, @@ -118652,16 +116888,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -118706,7 +116950,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -118729,6 +116972,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -118745,9 +116989,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集,\n强烈建议在仅需查询成员信息、打卡地址、蓝牙、Wifi 时使用,节省查询成本。\n--group-id 必填;四个过滤字段均可选(不传则默认 false,即不查询该字段)。\n --member 是否查询考勤组成员信息\n --position 是否查询打卡地址\n --wifi 是否查询打卡 Wifi\n --bles 是否查询打卡蓝牙", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -118773,15 +117014,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -118851,39 +117094,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集,\n强烈建议在仅需查询成员信息、打卡地址、蓝牙、Wifi 时使用,节省查询成本。\n--group-id 必填;四个过滤字段均可选(不传则默认 false,即不查询该字段)。\n --member 是否查询考勤组成员信息\n --position 是否查询打卡地址\n --wifi 是否查询打卡 Wifi\n --bles 是否查询打卡蓝牙" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_group_filtered_detail,根据考勤组 ID 仅返回关心的字段子集,\n强烈建议在仅需查询成员信息、打卡地址、蓝牙、Wifi 时使用,节省查询成本。\n--group-id 必填;四个过滤字段均可选(不传则默认 false,即不查询该字段)。\n --member 是否查询考勤组成员信息\n --position 是否查询打卡地址\n --wifi 是否查询打卡 Wifi\n --bles 是否查询打卡蓝牙" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -118963,45 +117184,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -119064,13 +117289,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据考勤组 ID 按需查询成员/打卡地址/蓝牙/Wifi 信息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据考勤组 ID 按需查询成员/打卡地址/蓝牙/Wifi 信息" @@ -119099,8 +117324,8 @@ "group": "group", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_filtered_get", "parameter_count": 5, @@ -119131,16 +117356,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --bles is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bles" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bles" + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --bles is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -119185,7 +117418,6 @@ "value": "boolean" } }, - "property": "bles", "required": false, "type": "boolean" }, @@ -119215,16 +117447,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupId" + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -119275,7 +117515,6 @@ "value": "integer" } }, - "property": "groupId", "required": true, "type": "integer" }, @@ -119305,16 +117544,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --member is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "member" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "member" + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --member is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -119359,7 +117606,6 @@ "value": "boolean" } }, - "property": "member", "required": false, "type": "boolean" }, @@ -119389,16 +117635,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --position is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "position" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "position" + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --position is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -119443,7 +117697,6 @@ "value": "boolean" } }, - "property": "position", "required": false, "type": "boolean" }, @@ -119473,16 +117726,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --wifi is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "wifi" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "wifi" + "review_reason": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --wifi is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -119527,7 +117788,6 @@ "value": "boolean" } }, - "property": "wifi", "required": false, "type": "boolean" } @@ -119550,6 +117810,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -119566,9 +117827,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息。\n--group-id 必填。如果只需查询成员、打卡地址、蓝牙、Wifi 子集,请使用 group filtered-get 以节省查询成本。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -119594,15 +117852,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -119672,39 +117932,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息。\n--group-id 必填。如果只需查询成员、打卡地址、蓝牙、Wifi 子集,请使用 group filtered-get 以节省查询成本。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_group_detail,根据考勤组 ID 查询该考勤组的全量信息。\n--group-id 必填。如果只需查询成员、打卡地址、蓝牙、Wifi 子集,请使用 group filtered-get 以节省查询成本。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -119784,45 +118022,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -119885,13 +118127,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据考勤组 ID 查询考勤组全量信息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据考勤组 ID 查询考勤组全量信息" @@ -119920,8 +118162,8 @@ "group": "group", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_get", "parameter_count": 1, @@ -119952,16 +118194,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupId" + "review_reason": "Reviewed unpinned adapter: attendance.group_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120012,7 +118262,6 @@ "value": "integer" } }, - "property": "groupId", "required": true, "type": "integer" } @@ -120035,6 +118284,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -120049,11 +118299,8 @@ "cli_name": "search", "cli_path": "attendance group search", "confirmation": "not_required", - "description": "根据当前用户的权限和筛选条件获取考勤组简要信息。\n入参 ATGroupSearchParam 对象(至少填写一个子字段)和 PageQuery 对象(两个子字段必填)均不能为空。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)", + "description": "根据当前用户的权限和筛选条件获取考勤组简要信息。\nCLI 会在未传筛选条件时补齐默认查询字段,在未传分页参数时补齐 page=1、limit=20,以满足服务端非空对象约束。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -120079,15 +118326,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -120165,38 +118414,16 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", - "value": "根据当前用户的权限和筛选条件获取考勤组简要信息。\n入参 ATGroupSearchParam 对象(至少填写一个子字段)和 PageQuery 对象(两个子字段必填)均不能为空。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)" + "value": "根据当前用户的权限和筛选条件获取考勤组简要信息。\nCLI 会在未传筛选条件时补齐默认查询字段,在未传分页参数时补齐 page=1、limit=20,以满足服务端非空对象约束。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", - "value": "根据当前用户的权限和筛选条件获取考勤组简要信息。\n入参 ATGroupSearchParam 对象(至少填写一个子字段)和 PageQuery 对象(两个子字段必填)均不能为空。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "value": "根据当前用户的权限和筛选条件获取考勤组简要信息。\nCLI 会在未传筛选条件时补齐默认查询字段,在未传分页参数时补齐 page=1、limit=20,以满足服务端非空对象约束。\n --query 考勤组名称关键字,模糊搜索\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --query-position 是否查询地理定位和 Wifi 名称(默认 false)\n --query-ble 是否查询蓝牙设备列表(默认 false)\n --page 页码(从 1 开始,默认 1)\n --limit 每页条数(200 以内,默认 20)" }, "effect": { "candidates": [ @@ -120277,45 +118504,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -120378,13 +118609,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户可管理的考勤组列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户可管理的考勤组列表" @@ -120413,15 +118644,15 @@ "group": "group", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_search", "parameter_count": 6, "parameters": { "limit": { "default": "20", - "description": "每页条数,200 以内(必填)", + "description": "每页条数,200 以内(默认 20,可选)", "field_provenance": { "description": { "candidates": [ @@ -120429,7 +118660,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, { "precedence": "default", @@ -120441,21 +118672,29 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120467,10 +118706,10 @@ "value": false }, { - "precedence": "inference", + "precedence": "cobra_contract", "selected": false, - "source": "usage_required_inference", - "value": true + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -120514,13 +118753,12 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, "page": { "default": "1", - "description": "页码,从 1 开始(必填)", + "description": "页码,从 1 开始(默认 1,可选)", "field_provenance": { "description": { "candidates": [ @@ -120528,7 +118766,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, { "precedence": "default", @@ -120540,21 +118778,29 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120566,10 +118812,10 @@ "value": false }, { - "precedence": "inference", + "precedence": "cobra_contract", "selected": false, - "source": "usage_required_inference", - "value": true + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -120613,7 +118859,6 @@ "value": "integer" } }, - "property": "page", "required": false, "type": "integer" }, @@ -120643,16 +118888,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120697,7 +118950,6 @@ "value": "string" } }, - "property": "query", "required": false, "type": "string" }, @@ -120727,16 +118979,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-ble is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "queryBle" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "queryBle" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-ble is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120781,7 +119041,6 @@ "value": "boolean" } }, - "property": "queryBle", "required": false, "type": "boolean" }, @@ -120811,16 +119070,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-position is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "queryPosition" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "queryPosition" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-position is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120865,7 +119132,6 @@ "value": "boolean" } }, - "property": "queryPosition", "required": false, "type": "boolean" }, @@ -120895,16 +119161,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -120949,7 +119223,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" } @@ -120972,6 +119245,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -121012,15 +119286,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -121090,13 +119366,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 update_group_setting,更新考勤组配置信息。\n--group-id 必填;其余参数均可选,仅需对要修改的字段进行赋値,未传的字段会自动从已有配置补充。由于保存考勤组耗时较久,指令需要带上--timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新考勤组配置的说明\n\n常用简单字段可直接用 flag 传入;复杂子对象(如打卡地址、wifi、蓝牙设备、循环排班等)请用 --group-vo JSON 字符串传入完整 groupVO 对象覆写。\n\n常用 flag:\n --name 考勤组名称\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --owner 考勤组主负责人 userId\n --classIds []number 所选班次 id 列表\n --enable-outside-check 是否允许外勤打卡 (true/false)\n --group-vo 完整 groupVO JSON 字符串(用于修改复杂子对象,会与其他 flag 合并,重复字段以 flag 为准)\n\n--group-vo 可用字段说明(均可选,只需包含要修改的字段):\n\n【基础信息】\n id number 考勤组id,不随更新变化\n name string 考勤组名称\n type string 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n owner string 考勤组主负责人 userId\n managerList []string 考勤组子负责人 userId 列表\n skipHolidays bool 节假日自动排休(只有固定班制和自由工时考勤组生效)\n defaultGroup bool 是否默认考勤组\n classIds []number 所选班次 id 列表(只有固定班制和排班制才有班次,自由工时没有)\n\n【打卡范围与定位】\n trimDistance number 定位允许微调距离(米)\n enablePositionOfGps bool 打卡是否允许开启 GPS 定位\n enablePositionOfWifi bool 是否开启 wifi 定位\n enablePositionOfBle bool 是否启用蓝牙定位\n\n positions []object 考勤打卡地址列表(地址定位打卡用),每项字段:\n - title string 地址标题\n - address string 地址详情(完整地址文本)\n - latitude number 纬度\n - longitude number 经度\n - offset number 该地址允许的打卡范围,单位米\n\n wifis []object 打卡方式中的 wifi 详情列表,每项字段:\n - ssid string wifi 的 ssid(wifi名称)\n - macAddr string wifi 的 macAddr(MAC 地址)\n - groupId number 考勤组id\n\n bleDeviceVOList []object 已选择的蓝牙设备列表,每项字段:\n - name string 设备名称\n - deviceUid number 设备 uid\n - sn string 设备 sn 序列号\n - productType string 对外的设备类型\n - devServId number 内部设备类型\n\n【外勤打卡设置】\n enableOutsideCheck bool 是否可以外勤打卡\n enableOutsideCameraCheck bool 是否开启外勤打卡必须拍照\n enableOutsideRemark bool 是否开启外勤打卡必须填写备注\n enableOutsideApply bool 是否开启外勤打卡必须审批\n forbidHideOutSideAddress bool 禁止隐藏外勤打卡地址的功能,false表示允许用户隐藏外勤打卡地址\n enableOutSideUpdateNormalCheck bool 下班时间:允许外勤卡更新内勤卡\n enableOnDutyNormalUpdateOutsideCheck bool 上班时间:允许内勤卡更新外勤卡\n outsideCheckApproveMode string 外勤打卡需审批执行模式:\n NO_NEED_APPROVE(无需审批)\n APPROVE_FIRST(先审批后打卡)\n CHECK_FIRST(先打卡后审批)\n APPROVE_EVERYTIME(每次打卡都需要审批)\n outSideCheckApplyType number 外勤审批范围:1(全天外勤打卡)/ 2(上班外勤打卡)/ 3(下班外勤打卡)\n\n【打卡方式】\n enableCameraCheck bool 是否开启拍照打卡\n openCameraCheck bool 是否开启拍照打卡(与 enableCameraCheck 含义相同)\n openFaceCheck bool 是否开启人脸打卡\n enableFaceStrictMode bool 是否开启人脸严格模式(强制活体检测)\n enableFaceBeauty bool 是否开启美颜\n onlyMachineCheck bool 只允许考勤机打卡\n permitMaxBeaconCount number 允许绑定的智点设备数量\n disableCheckWhenRest bool 休息日打卡需审批(只在固定班制和排班制生效,true表示打卡需要提交审批单)\n\n\n【固定班制设置(FIXED)】\n defaultClassId number 固定班制的默认班次 id\n workDayClassList []number 固定班制的工作日班次 id 列表,一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息,例如[0,1279240003,0,0,0,0,0]表示周一的班次id为1279240003,其余日子都是休息\n\n【排班制设置(TURN)】\n disableCheckWithoutSchedule bool 未排班时员工可打卡(true=未排班时禁止打卡)\n enableEmpSelectClass bool 未排班时,员工可选班次打卡\n enableScheduleAutoMatch bool 未排班时,系统自动匹配班次\n ----以下是排班制设置排班周期的,非必要,不是所有排班制考勤组都需要设置,不设置就是按照classIds中的班次由管理员自行排班-----\n cycleDays number 排班循环天数,支持大小周(14天)\n startCycleDate number 用户设置的大小周开始时间(时间戳,毫秒)\n cycleScheduleList []object 循环排班设置列表,每项字段:\n - cycleName string 周期名字(如\"第一周\")\n - groupId number 考勤组 id\n - isValid string 是否有效:Y(有效)/ N(无效)\n - itemList []object 排班设置列表,每项字段:\n - classId number 班次 id\n - className string 班次名称\n - isValid string 是否有效(Y/N)\n\n【自由工时设置(NONE)】\n workDays []number 自由工时的工作日,如 [1,2,3,4,5] 表示周一到周五(1=周一,7=周日)\n freeCheckDayStartMinOffset number 自由打卡每日开始时间,距离 0 点的分钟数(如 480 表示 08:00 开始)\n freeCheckCoreTime number 自由工时考勤组的打卡最短工作时长(分钟)\n freeCheckDemandWorkMinutes number 自由工时考勤组要求的打卡时长(分钟)\n\n freeCheckSettingVO object 自由工时打卡设置,包含字段:\n - freeCheckType string 自由工时打卡类型:\n CYCLE(上下班交替打卡)\n MAX_TIME_UPDATE(最大时间打卡,第一次为上班,后续均为下班卡)\n - freeWorkDayLackSwitch bool 自由工时打卡规则:工作日没打卡记为缺卡(true=记缺卡)\n - freeOnDutyLackMinOffset number 自由工时打卡规则:上班缺卡生成时间偏移分钟数\n - freeOffDutyLackMinOffset number 自由工时打卡规则:下班缺卡生成时间偏移分钟数\n - delimitOffsetMinutesBetweenDays number 自由工时前后两天的分割线(距 0 点分钟数,超过此时间则归属第二天)\n - freeCheckGapVO object 自由工时/休息日打卡间隔设置:\n - onOffCheckGapMinutes number 上班打卡后,多久才可以打下班卡(分钟)\n - offOnCheckGapMinutes number 下班打卡后,多久才可以打上班卡(分钟)\n\n freeGroupSpecialDayVO object 自由工时考勤组特殊日期设置,包含字段:\n - specialOnDutyDays []number 特殊需要打卡日期的时间戳列表(毫秒,原本休息日需额外打卡的日期)\n - specialOffDutyDays []number 特殊无需打卡日期的时间戳列表(毫秒,原本工作日可免打卡的日期)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 update_group_setting,更新考勤组配置信息。\n--group-id 必填;其余参数均可选,仅需对要修改的字段进行赋値,未传的字段会自动从已有配置补充。由于保存考勤组耗时较久,指令需要带上--timeout 10\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新考勤组配置的说明\n\n常用简单字段可直接用 flag 传入;复杂子对象(如打卡地址、wifi、蓝牙设备、循环排班等)请用 --group-vo JSON 字符串传入完整 groupVO 对象覆写。\n\n常用 flag:\n --name 考勤组名称\n --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n --owner 考勤组主负责人 userId\n --classIds []number 所选班次 id 列表\n --enable-outside-check 是否允许外勤打卡 (true/false)\n --group-vo 完整 groupVO JSON 字符串(用于修改复杂子对象,会与其他 flag 合并,重复字段以 flag 为准)\n\n--group-vo 可用字段说明(均可选,只需包含要修改的字段):\n\n【基础信息】\n id number 考勤组id,不随更新变化\n name string 考勤组名称\n type string 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时)\n owner string 考勤组主负责人 userId\n managerList []string 考勤组子负责人 userId 列表\n skipHolidays bool 节假日自动排休(只有固定班制和自由工时考勤组生效)\n defaultGroup bool 是否默认考勤组\n classIds []number 所选班次 id 列表(只有固定班制和排班制才有班次,自由工时没有)\n\n【打卡范围与定位】\n trimDistance number 定位允许微调距离(米)\n enablePositionOfGps bool 打卡是否允许开启 GPS 定位\n enablePositionOfWifi bool 是否开启 wifi 定位\n enablePositionOfBle bool 是否启用蓝牙定位\n\n positions []object 考勤打卡地址列表(地址定位打卡用),每项字段:\n - title string 地址标题\n - address string 地址详情(完整地址文本)\n - latitude number 纬度\n - longitude number 经度\n - offset number 该地址允许的打卡范围,单位米\n\n wifis []object 打卡方式中的 wifi 详情列表,每项字段:\n - ssid string wifi 的 ssid(wifi名称)\n - macAddr string wifi 的 macAddr(MAC 地址)\n - groupId number 考勤组id\n\n bleDeviceVOList []object 已选择的蓝牙设备列表,每项字段:\n - name string 设备名称\n - deviceUid number 设备 uid\n - sn string 设备 sn 序列号\n - productType string 对外的设备类型\n - devServId number 内部设备类型\n\n【外勤打卡设置】\n enableOutsideCheck bool 是否可以外勤打卡\n enableOutsideCameraCheck bool 是否开启外勤打卡必须拍照\n enableOutsideRemark bool 是否开启外勤打卡必须填写备注\n enableOutsideApply bool 是否开启外勤打卡必须审批\n forbidHideOutSideAddress bool 禁止隐藏外勤打卡地址的功能,false表示允许用户隐藏外勤打卡地址\n enableOutSideUpdateNormalCheck bool 下班时间:允许外勤卡更新内勤卡\n enableOnDutyNormalUpdateOutsideCheck bool 上班时间:允许内勤卡更新外勤卡\n outsideCheckApproveMode string 外勤打卡需审批执行模式:\n NO_NEED_APPROVE(无需审批)\n APPROVE_FIRST(先审批后打卡)\n CHECK_FIRST(先打卡后审批)\n APPROVE_EVERYTIME(每次打卡都需要审批)\n outSideCheckApplyType number 外勤审批范围:1(全天外勤打卡)/ 2(上班外勤打卡)/ 3(下班外勤打卡)\n\n【打卡方式】\n enableCameraCheck bool 是否开启拍照打卡\n openCameraCheck bool 是否开启拍照打卡(与 enableCameraCheck 含义相同)\n openFaceCheck bool 是否开启人脸打卡\n enableFaceStrictMode bool 是否开启人脸严格模式(强制活体检测)\n enableFaceBeauty bool 是否开启美颜\n onlyMachineCheck bool 只允许考勤机打卡\n permitMaxBeaconCount number 允许绑定的智点设备数量\n disableCheckWhenRest bool 休息日打卡需审批(只在固定班制和排班制生效,true表示打卡需要提交审批单)\n\n\n【固定班制设置(FIXED)】\n defaultClassId number 固定班制的默认班次 id\n workDayClassList []number 固定班制的工作日班次 id 列表,一共7个值,分别代表周日到周六每天的班次id,为0表示当天休息,例如[0,1279240003,0,0,0,0,0]表示周一的班次id为1279240003,其余日子都是休息\n\n【排班制设置(TURN)】\n disableCheckWithoutSchedule bool 未排班时员工可打卡(true=未排班时禁止打卡)\n enableEmpSelectClass bool 未排班时,员工可选班次打卡\n enableScheduleAutoMatch bool 未排班时,系统自动匹配班次\n ----以下是排班制设置排班周期的,非必要,不是所有排班制考勤组都需要设置,不设置就是按照classIds中的班次由管理员自行排班-----\n cycleDays number 排班循环天数,支持大小周(14天)\n startCycleDate number 用户设置的大小周开始时间(时间戳,毫秒)\n cycleScheduleList []object 循环排班设置列表,每项字段:\n - cycleName string 周期名字(如\"第一周\")\n - groupId number 考勤组 id\n - isValid string 是否有效:Y(有效)/ N(无效)\n - itemList []object 排班设置列表,每项字段:\n - classId number 班次 id\n - className string 班次名称\n - isValid string 是否有效(Y/N)\n\n【自由工时设置(NONE)】\n workDays []number 自由工时的工作日,如 [1,2,3,4,5] 表示周一到周五(1=周一,7=周日)\n freeCheckDayStartMinOffset number 自由打卡每日开始时间,距离 0 点的分钟数(如 480 表示 08:00 开始)\n freeCheckCoreTime number 自由工时考勤组的打卡最短工作时长(分钟)\n freeCheckDemandWorkMinutes number 自由工时考勤组要求的打卡时长(分钟)\n\n freeCheckSettingVO object 自由工时打卡设置,包含字段:\n - freeCheckType string 自由工时打卡类型:\n CYCLE(上下班交替打卡)\n MAX_TIME_UPDATE(最大时间打卡,第一次为上班,后续均为下班卡)\n - freeWorkDayLackSwitch bool 自由工时打卡规则:工作日没打卡记为缺卡(true=记缺卡)\n - freeOnDutyLackMinOffset number 自由工时打卡规则:上班缺卡生成时间偏移分钟数\n - freeOffDutyLackMinOffset number 自由工时打卡规则:下班缺卡生成时间偏移分钟数\n - delimitOffsetMinutesBetweenDays number 自由工时前后两天的分割线(距 0 点分钟数,超过此时间则归属第二天)\n - freeCheckGapVO object 自由工时/休息日打卡间隔设置:\n - onOffCheckGapMinutes number 上班打卡后,多久才可以打下班卡(分钟)\n - offOnCheckGapMinutes number 下班打卡后,多久才可以打上班卡(分钟)\n\n freeGroupSpecialDayVO object 自由工时考勤组特殊日期设置,包含字段:\n - specialOnDutyDays []number 特殊需要打卡日期的时间戳列表(毫秒,原本休息日需额外打卡的日期)\n - specialOffDutyDays []number 特殊无需打卡日期的时间戳列表(毫秒,原本工作日可免打卡的日期)" @@ -121180,45 +119456,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -121281,13 +119561,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新考勤组配置(仅修改需要变更的字段)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新考勤组配置(仅修改需要变更的字段)" @@ -121316,8 +119596,8 @@ "group": "group", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_update", "parameter_count": 8, @@ -121348,16 +119628,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --classIds is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "classIds" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "classIds" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --classIds is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121402,7 +119690,6 @@ "value": "string" } }, - "property": "classIds", "required": false, "type": "string" }, @@ -121432,16 +119719,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --enable-outside-check is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enableOutsideCheck" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enableOutsideCheck" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --enable-outside-check is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121486,7 +119781,6 @@ "value": "string" } }, - "property": "enableOutsideCheck", "required": false, "type": "string" }, @@ -121516,16 +119810,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupId" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121576,7 +119878,6 @@ "value": "integer" } }, - "property": "groupId", "required": true, "type": "integer" }, @@ -121606,16 +119907,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupVo" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupVo" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121660,7 +119969,6 @@ "value": "string" } }, - "property": "groupVo", "required": false, "type": "string" }, @@ -121690,16 +119998,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121744,7 +120060,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -121774,16 +120089,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "owner" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "owner" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121828,7 +120151,6 @@ "value": "string" } }, - "property": "owner", "required": false, "type": "string" }, @@ -121858,16 +120180,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121912,7 +120242,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" }, @@ -121942,16 +120271,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -121996,7 +120333,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -122019,6 +120355,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -122059,15 +120396,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -122137,13 +120476,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 update_group_member,对指定考勤组的成员进行增删操作。\n--group-id 必填;所有成员/部门参数均可选,但至少需要传一个变更项。由于保存考勤组耗时较久,指令需要带上--timeout 10\n每次调用各参数最多传 20 个 ID。\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新考勤组成员的说明\n --add-users 添加考勤人员 userId 列表,逗号分隔\n --remove-users 删除考勤人员 userId 列表,逗号分隔\n --add-extra-users 添加无需考勤的人员 userId 列表,逗号分隔\n --remove-extra-users 删除无需考勤的成员 userId 列表,逗号分隔\n --add-depts 添加考勤部门 ID 列表,逗号分隔,若要添加全公司,根部门id为-1\n --remove-depts 删除考勤部门 ID 列表,逗号分隔,全公司根部门id为-1" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 update_group_member,对指定考勤组的成员进行增删操作。\n--group-id 必填;所有成员/部门参数均可选,但至少需要传一个变更项。由于保存考勤组耗时较久,指令需要带上--timeout 10\n每次调用各参数最多传 20 个 ID。\n--yes 需要用户二次确认之后才允许带入,参考attendance.md中对于更新考勤组成员的说明\n --add-users 添加考勤人员 userId 列表,逗号分隔\n --remove-users 删除考勤人员 userId 列表,逗号分隔\n --add-extra-users 添加无需考勤的人员 userId 列表,逗号分隔\n --remove-extra-users 删除无需考勤的成员 userId 列表,逗号分隔\n --add-depts 添加考勤部门 ID 列表,逗号分隔,若要添加全公司,根部门id为-1\n --remove-depts 删除考勤部门 ID 列表,逗号分隔,全公司根部门id为-1" @@ -122227,45 +120566,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -122328,13 +120671,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新考勤组成员(添加/删除考勤人员、部门、无需考勤人员)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新考勤组成员(添加/删除考勤人员、部门、无需考勤人员)" @@ -122363,8 +120706,8 @@ "group": "group", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_update_members", "parameter_count": 8, @@ -122395,16 +120738,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-depts is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "addDepts" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "addDepts" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-depts is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122449,7 +120800,6 @@ "value": "string" } }, - "property": "addDepts", "required": false, "type": "string" }, @@ -122479,16 +120829,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-extra-users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "addExtraUsers" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "addExtraUsers" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-extra-users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122533,7 +120891,6 @@ "value": "string" } }, - "property": "addExtraUsers", "required": false, "type": "string" }, @@ -122563,16 +120920,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "addUsers" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "addUsers" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122617,7 +120982,6 @@ "value": "string" } }, - "property": "addUsers", "required": false, "type": "string" }, @@ -122647,16 +121011,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupId" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122707,7 +121079,6 @@ "value": "integer" } }, - "property": "groupId", "required": true, "type": "integer" }, @@ -122737,16 +121108,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-depts is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "removeDepts" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "removeDepts" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-depts is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122791,7 +121170,6 @@ "value": "string" } }, - "property": "removeDepts", "required": false, "type": "string" }, @@ -122821,16 +121199,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-extra-users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "removeExtraUsers" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "removeExtraUsers" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-extra-users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122875,7 +121261,6 @@ "value": "string" } }, - "property": "removeExtraUsers", "required": false, "type": "string" }, @@ -122905,16 +121290,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "removeUsers" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "removeUsers" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -122959,7 +121352,6 @@ "value": "string" } }, - "property": "removeUsers", "required": false, "type": "string" }, @@ -122989,16 +121381,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -123043,7 +121443,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -123066,6 +121465,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -123081,9 +121481,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情。\n--overtime-id 必填。已被删除或更新覆盖的加班规则也可以查到。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -123109,15 +121506,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -123187,39 +121586,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情。\n--overtime-id 必填。已被删除或更新覆盖的加班规则也可以查到。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_overtime_rule_detail,根据加班规则主键 ID 查询对应的加班规则详情。\n--overtime-id 必填。已被删除或更新覆盖的加班规则也可以查到。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -123299,45 +121676,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -123400,13 +121781,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据加班规则主键 ID 查询加班规则详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据加班规则主键 ID 查询加班规则详情" @@ -123435,8 +121816,8 @@ "group": "overtime", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "overtime_get", "parameter_count": 1, @@ -123467,16 +121848,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.overtime_get has no singular pinned interface_ref; --overtime-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "overtimeId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "overtimeId" + "review_reason": "Reviewed unpinned adapter: attendance.overtime_get has no singular pinned interface_ref; --overtime-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -123527,7 +121916,6 @@ "value": "integer" } }, - "property": "overtimeId", "required": true, "type": "integer" } @@ -123550,6 +121938,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -123563,11 +121952,8 @@ "cli_name": "search", "cli_path": "attendance overtime search", "confirmation": "not_required", - "description": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)", + "description": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -123593,15 +121979,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -123632,6 +122020,14 @@ "source": "reviewed_command_registry", "source_ref": "attendance overtime search", "value": "attendance.overtime_search" + }, + { + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "selected": false, + "source": "reviewed_manual_hint", + "source_ref": "attendance overtime search", + "value": "attendance.overtime_search" } ], "precedence": "command_registry", @@ -123671,38 +122067,16 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", - "value": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)" + "value": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", - "value": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(必填)\n --limit 每页条数(200 以内,默认 20)(必填)" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "value": "根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。\n --query 加班规则名称关键字,模糊搜索(可选)\n --page 页码(从 1 开始,默认 1)(可选)\n --limit 每页条数(200 以内,默认 20)(可选)" }, "effect": { "candidates": [ @@ -123783,45 +122157,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -123884,13 +122262,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户可管理的加班规则列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户可管理的加班规则列表" @@ -123919,15 +122297,15 @@ "group": "overtime", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "overtime_search", "parameter_count": 3, "parameters": { "limit": { "default": "20", - "description": "每页条数,200 以内(必填)", + "description": "每页条数,200 以内(默认 20,可选)", "field_provenance": { "description": { "candidates": [ @@ -123935,7 +122313,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, { "precedence": "default", @@ -123947,29 +122325,44 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "每页条数,200 以内(必填)" + "value": "每页条数,200 以内(默认 20,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", "selected": true, - "source": "usage_required_inference", - "value": true + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -123978,10 +122371,11 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", - "value": true + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -124012,13 +122406,12 @@ "value": "integer" } }, - "property": "limit", - "required": true, + "required": false, "type": "integer" }, "page": { "default": "1", - "description": "页码,从 1 开始(必填)", + "description": "页码,从 1 开始(默认 1,可选)", "field_provenance": { "description": { "candidates": [ @@ -124026,7 +122419,7 @@ "precedence": "cobra_contract", "selected": true, "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, { "precedence": "default", @@ -124038,29 +122431,44 @@ "precedence": "cobra_contract", "resolution": "highest_precedence", "source": "cobra_usage", - "value": "页码,从 1 开始(必填)" + "value": "页码,从 1 开始(默认 1,可选)" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_manual", + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", "selected": true, - "source": "usage_required_inference", - "value": true + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "cobra_contract", + "selected": false, + "source": "cobra_nonzero_default", + "value": false }, { "precedence": "default", @@ -124069,10 +122477,11 @@ "value": false } ], - "precedence": "inference", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "usage_required_inference", - "value": true + "review_reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -124103,8 +122512,7 @@ "value": "integer" } }, - "property": "page", - "required": true, + "required": false, "type": "integer" }, "query": { @@ -124133,16 +122541,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -124187,7 +122603,6 @@ "value": "string" } }, - "property": "query", "required": false, "type": "string" } @@ -124227,11 +122642,8 @@ "cli_name": "rules", "cli_path": "attendance rules", "confirmation": "not_required", - "description": "查询考勤组/考勤规则:\"我属于哪个考勤组\"\"我们的打卡范围是什么\"\"弹性工时是怎么算的\"", + "description": "调用 MCP 工具 query_attendance_group_or_rules 查询考勤组/考勤规则。\n例如:我属于哪个考勤组、打卡范围是什么、弹性工时怎么算。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -124337,44 +122749,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询考勤组/考勤规则:\"我属于哪个考勤组\"\"我们的打卡范围是什么\"\"弹性工时是怎么算的\"" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "调用 MCP 工具 query_attendance_group_or_rules 查询考勤组/考勤规则。\n例如:我属于哪个考勤组、打卡范围是什么、弹性工时怎么算。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询考勤组/考勤规则:\"我属于哪个考勤组\"\"我们的打卡范围是什么\"\"弹性工时是怎么算的\"" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询考勤组/考勤规则:\"我属于哪个考勤组\"\"我们的打卡范围是什么\"\"弹性工时是怎么算的\"" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "调用 MCP 工具 query_attendance_group_or_rules 查询考勤组/考勤规则。\n例如:我属于哪个考勤组、打卡范围是什么、弹性工时怎么算。" }, "effect": { "candidates": [ @@ -124550,22 +122940,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_attendance_group_or_rules" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询考勤组与考勤规则" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_attendance_group_or_rules" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_attendance_group_or_rules" + "source": "cobra_help", + "value": "查询考勤组与考勤规则" }, "use_when": { "candidates": [ @@ -124716,7 +123106,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_attendance_group_or_rules", + "title": "查询考勤组与考勤规则", "use_when": [ "当用户需要查询当前用户在指定日期适用的考勤组或考勤规则,并能提供命令所需的查询条件时使用。" ] @@ -124728,6 +123118,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -124744,9 +123135,6 @@ "confirmation": "not_required", "description": "根据操作者的列权限,过滤并返回其有权查看的考勤字段列表。\n操作者必须是管理员,否则返回权限错误。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -124772,15 +123160,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -124844,39 +123234,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据操作者的列权限,过滤并返回其有权查看的考勤字段列表。\n操作者必须是管理员,否则返回权限错误。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据操作者的列权限,过滤并返回其有权查看的考勤字段列表。\n操作者必须是管理员,否则返回权限错误。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -124944,45 +123312,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -125039,13 +123411,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取企业考勤字段列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取企业考勤字段列表" @@ -125074,8 +123446,8 @@ "group": "report", "has_parameters": false, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "report_columns", "parameter_count": 0, @@ -125098,6 +123470,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -125114,9 +123487,6 @@ "confirmation": "not_required", "description": "根据字段查询考勤数据,含列权限过滤和用户查看权限校验。\n--columns 为字段 ID 列表(逗号分隔),可通过 dws attendance report columns 获取。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -125142,15 +123512,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -125220,39 +123592,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据字段查询考勤数据,含列权限过滤和用户查看权限校验。\n--columns 为字段 ID 列表(逗号分隔),可通过 dws attendance report columns 获取。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据字段查询考勤数据,含列权限过滤和用户查看权限校验。\n--columns 为字段 ID 列表(逗号分隔),可通过 dws attendance report columns 获取。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -125332,45 +123682,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -125433,13 +123787,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据字段查询考勤数据" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据字段查询考勤数据" @@ -125468,8 +123822,8 @@ "group": "report", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "report_query_data", "parameter_count": 4, @@ -125500,16 +123854,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --columns is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "columns" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "columns" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --columns is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -125560,7 +123922,6 @@ "value": "string" } }, - "property": "columns", "required": true, "type": "string" }, @@ -125590,16 +123951,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -125650,7 +124019,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -125680,16 +124048,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -125740,7 +124116,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -125770,16 +124145,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -125830,7 +124213,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -125853,6 +124235,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-report.md", "skills/mono/references/products/attendance.md" @@ -125869,9 +124252,6 @@ "confirmation": "not_required", "description": "查询用户假期数据,含用户查看权限校验。\n--leave-names 为假期类型名称列表(逗号分隔),不传则查询所有假期类型。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -125897,15 +124277,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -125975,39 +124357,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询用户假期数据,含用户查看权限校验。\n--leave-names 为假期类型名称列表(逗号分隔),不传则查询所有假期类型。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询用户假期数据,含用户查看权限校验。\n--leave-names 为假期类型名称列表(逗号分隔),不传则查询所有假期类型。\n--users 最多 20 人,传入userId,--start 到 --end 不超过 32 天。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -126087,45 +124447,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -126188,13 +124552,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询用户假期数据" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询用户假期数据" @@ -126223,8 +124587,8 @@ "group": "report", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "report_query_leave", "parameter_count": 4, @@ -126255,16 +124619,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -126315,7 +124687,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -126345,16 +124716,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --leave-names is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "leaveNames" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "leaveNames" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --leave-names is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -126399,7 +124778,6 @@ "value": "string" } }, - "property": "leaveNames", "required": false, "type": "string" }, @@ -126429,16 +124807,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -126489,7 +124875,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -126519,16 +124904,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -126579,7 +124972,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -126602,6 +124994,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -126618,9 +125011,6 @@ "confirmation": "not_required", "description": "获取指定用户在一段时间内的排班记录。\n返回每条记录包含 userId、classId、workDate、className、checkBeginTime、checkEndTime 等字段。\n\n日期格式支持:\n - YYYY-MM-DD(如 2026-04-01)\n - YYYY-MM-DD HH:mm:ss(如 2026-04-01 09:00:00)\n\n示例:\n dws attendance schedule get --users user001,user002 --start 2026-04-01 --end 2026-04-30", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -126646,15 +125036,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -126724,39 +125116,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取指定用户在一段时间内的排班记录。\n返回每条记录包含 userId、classId、workDate、className、checkBeginTime、checkEndTime 等字段。\n\n日期格式支持:\n - YYYY-MM-DD(如 2026-04-01)\n - YYYY-MM-DD HH:mm:ss(如 2026-04-01 09:00:00)\n\n示例:\n dws attendance schedule get --users user001,user002 --start 2026-04-01 --end 2026-04-30" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取指定用户在一段时间内的排班记录。\n返回每条记录包含 userId、classId、workDate、className、checkBeginTime、checkEndTime 等字段。\n\n日期格式支持:\n - YYYY-MM-DD(如 2026-04-01)\n - YYYY-MM-DD HH:mm:ss(如 2026-04-01 09:00:00)\n\n示例:\n dws attendance schedule get --users user001,user002 --start 2026-04-01 --end 2026-04-30" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -126836,45 +125206,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -126937,13 +125311,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取指定用户的排班记录" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取指定用户的排班记录" @@ -126972,8 +125346,8 @@ "group": "schedule", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "schedule_get", "parameter_count": 3, @@ -127004,16 +125378,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127064,7 +125446,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -127094,16 +125475,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127154,7 +125543,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -127184,16 +125572,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127244,7 +125640,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -127268,6 +125663,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-schedule.md", "skills/mono/references/products/attendance.md" @@ -127309,15 +125705,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -127387,13 +125785,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "为排班制考勤组导入排班记录。传入 JSON 数组格式排班数据,\n每条记录必填字段:\n - userId: 用户ID(必填)\n - workDate: 排班日期,格式 yyyy-MM-dd HH:mm:ss(必填)\n - classId: 班次ID(必填)\n - isRest: 是否为排休,取值 Y/N(必填)\n\n示例:\n dws attendance schedule import --groupId 123456 \\\n --scheduleVOS '[{\"userId\":\"user001\",\"workDate\":\"2026-04-22 09:00:00\",\"classId\":123,\"isRest\":\"N\"}]' \\\n --user-say-yes" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "为排班制考勤组导入排班记录。传入 JSON 数组格式排班数据,\n每条记录必填字段:\n - userId: 用户ID(必填)\n - workDate: 排班日期,格式 yyyy-MM-dd HH:mm:ss(必填)\n - classId: 班次ID(必填)\n - isRest: 是否为排休,取值 Y/N(必填)\n\n示例:\n dws attendance schedule import --groupId 123456 \\\n --scheduleVOS '[{\"userId\":\"user001\",\"workDate\":\"2026-04-22 09:00:00\",\"classId\":123,\"isRest\":\"N\"}]' \\\n --user-say-yes" @@ -127477,45 +125875,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -127578,13 +125980,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "导入排班记录到排班制考勤组" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "导入排班记录到排班制考勤组" @@ -127613,8 +126015,8 @@ "group": "schedule", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "schedule_import", "parameter_count": 3, @@ -127645,16 +126047,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --groupId is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupId" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --groupId is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127705,7 +126115,6 @@ "value": "string" } }, - "property": "groupId", "required": true, "type": "string" }, @@ -127735,16 +126144,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --scheduleVOS is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scheduleVOS" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scheduleVOS" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --scheduleVOS is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127795,7 +126212,6 @@ "value": "string" } }, - "property": "scheduleVOS", "required": true, "type": "string" }, @@ -127825,16 +126241,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userSayYes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userSayYes" + "review_reason": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -127879,7 +126303,6 @@ "value": "boolean" } }, - "property": "userSayYes", "required": false, "type": "boolean" } @@ -127902,6 +126325,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -127917,9 +126341,6 @@ "confirmation": "not_required", "description": "查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括:\n checkRemind(打卡提醒)\n fastCheck(极速打卡)\n checkResultNotify(打卡结果通知)\n lackRemind(缺卡提醒)\n personalAttendStatNotify(个人考勤统计通知)\n bossAttendStatNotify(团队考勤统计通知)\n --user 必填,查询用户 ID,对应 MCP 参数 userId\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n\n出参字段说明:\n 顶层返回 ServiceResult:\n success 请求是否成功\n code 请求结果码\n message 请求结果说明\n result 个人规则设置结果;服务端可能根据 --setting-scene 仅返回对应设置项相关字段\n\n result 通用字段:\n corpId 企业 ID\n userId 用户 ID\n\n settingScene=checkRemind(打卡提醒)相关字段:\n checkRemindSetting DING 提醒渠道设置\n checkRemindSetting.onDutyRemind 上班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindSetting.offDutyRemind 下班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindUserOnDuty 工作通知渠道:用户个人上班打卡提醒开关\n checkRemindUserOffDuty 工作通知渠道:用户个人下班打卡提醒开关\n enableOndutyCheckRemindOfPc PC 端弹窗渠道:上班打卡提醒开关\n enableOffdutyCheckRemindOfPc PC 端弹窗渠道:下班打卡提醒开关\n\n settingScene=fastCheck(极速打卡)相关字段:\n ondutyCheckType 上班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n ondutyRemindStartMin 上班打卡提醒开始时间,单位:分钟\n ondutyRemindEndMin 上班打卡提醒结束时间,单位:分钟\n fastCheckLateNeedConfirm 迟到时是否需要二次确认\n offdutyCheckType 下班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n offdutyRemindStartMin 下班打卡提醒开始时间,单位:分钟\n offdutyRemindEndMin 下班打卡提醒结束时间,单位:分钟\n canUpdateOffDuty 是否允许用户更新下班打卡设置\n voiceRemindSwitch 极速打卡提示音开关\n vibrationRemindSwitch 极速打卡震动提醒开关\n\n settingScene=checkResultNotify(打卡结果通知)相关字段:\n checkResultMsg 打卡结果通知开关:0 关闭,1 开启\n\n settingScene=lackRemind(缺卡提醒)相关字段:\n lackSendTodoMsg 待办提醒开关:0 关闭,null 或 1 开启\n lackRemindUser 工作通知渠道:用户个人缺卡提醒开关:0 关闭,null 或 1 开启\n\n settingScene=personalAttendStatNotify(个人考勤统计通知)相关字段:\n personDailyReportSwitch 日报推送开关:0 关闭,1 开启\n personWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n personMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n\n settingScene=bossAttendStatNotify(团队考勤统计通知)相关字段:\n bossPushStartMin 日报推送开始时间,单位:分钟;-1 表示关闭日报推送\n bossWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n bossMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -127945,15 +126366,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -128023,39 +126446,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括:\n checkRemind(打卡提醒)\n fastCheck(极速打卡)\n checkResultNotify(打卡结果通知)\n lackRemind(缺卡提醒)\n personalAttendStatNotify(个人考勤统计通知)\n bossAttendStatNotify(团队考勤统计通知)\n --user 必填,查询用户 ID,对应 MCP 参数 userId\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n\n出参字段说明:\n 顶层返回 ServiceResult:\n success 请求是否成功\n code 请求结果码\n message 请求结果说明\n result 个人规则设置结果;服务端可能根据 --setting-scene 仅返回对应设置项相关字段\n\n result 通用字段:\n corpId 企业 ID\n userId 用户 ID\n\n settingScene=checkRemind(打卡提醒)相关字段:\n checkRemindSetting DING 提醒渠道设置\n checkRemindSetting.onDutyRemind 上班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindSetting.offDutyRemind 下班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindUserOnDuty 工作通知渠道:用户个人上班打卡提醒开关\n checkRemindUserOffDuty 工作通知渠道:用户个人下班打卡提醒开关\n enableOndutyCheckRemindOfPc PC 端弹窗渠道:上班打卡提醒开关\n enableOffdutyCheckRemindOfPc PC 端弹窗渠道:下班打卡提醒开关\n\n settingScene=fastCheck(极速打卡)相关字段:\n ondutyCheckType 上班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n ondutyRemindStartMin 上班打卡提醒开始时间,单位:分钟\n ondutyRemindEndMin 上班打卡提醒结束时间,单位:分钟\n fastCheckLateNeedConfirm 迟到时是否需要二次确认\n offdutyCheckType 下班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n offdutyRemindStartMin 下班打卡提醒开始时间,单位:分钟\n offdutyRemindEndMin 下班打卡提醒结束时间,单位:分钟\n canUpdateOffDuty 是否允许用户更新下班打卡设置\n voiceRemindSwitch 极速打卡提示音开关\n vibrationRemindSwitch 极速打卡震动提醒开关\n\n settingScene=checkResultNotify(打卡结果通知)相关字段:\n checkResultMsg 打卡结果通知开关:0 关闭,1 开启\n\n settingScene=lackRemind(缺卡提醒)相关字段:\n lackSendTodoMsg 待办提醒开关:0 关闭,null 或 1 开启\n lackRemindUser 工作通知渠道:用户个人缺卡提醒开关:0 关闭,null 或 1 开启\n\n settingScene=personalAttendStatNotify(个人考勤统计通知)相关字段:\n personDailyReportSwitch 日报推送开关:0 关闭,1 开启\n personWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n personMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n\n settingScene=bossAttendStatNotify(团队考勤统计通知)相关字段:\n bossPushStartMin 日报推送开始时间,单位:分钟;-1 表示关闭日报推送\n bossWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n bossMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 查询设置项,枚举值包括:\n checkRemind(打卡提醒)\n fastCheck(极速打卡)\n checkResultNotify(打卡结果通知)\n lackRemind(缺卡提醒)\n personalAttendStatNotify(个人考勤统计通知)\n bossAttendStatNotify(团队考勤统计通知)\n --user 必填,查询用户 ID,对应 MCP 参数 userId\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n\n出参字段说明:\n 顶层返回 ServiceResult:\n success 请求是否成功\n code 请求结果码\n message 请求结果说明\n result 个人规则设置结果;服务端可能根据 --setting-scene 仅返回对应设置项相关字段\n\n result 通用字段:\n corpId 企业 ID\n userId 用户 ID\n\n settingScene=checkRemind(打卡提醒)相关字段:\n checkRemindSetting DING 提醒渠道设置\n checkRemindSetting.onDutyRemind 上班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindSetting.offDutyRemind 下班打卡提醒设置,包含 openRemind、remindMinutes(负数标识几分钟前提醒,正数几分钟后提醒)\n checkRemindUserOnDuty 工作通知渠道:用户个人上班打卡提醒开关\n checkRemindUserOffDuty 工作通知渠道:用户个人下班打卡提醒开关\n enableOndutyCheckRemindOfPc PC 端弹窗渠道:上班打卡提醒开关\n enableOffdutyCheckRemindOfPc PC 端弹窗渠道:下班打卡提醒开关\n\n settingScene=fastCheck(极速打卡)相关字段:\n ondutyCheckType 上班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n ondutyRemindStartMin 上班打卡提醒开始时间,单位:分钟\n ondutyRemindEndMin 上班打卡提醒结束时间,单位:分钟\n fastCheckLateNeedConfirm 迟到时是否需要二次确认\n offdutyCheckType 下班打卡方式:1 提醒打卡,2 不提醒且不自动打卡,3 自动打卡\n offdutyRemindStartMin 下班打卡提醒开始时间,单位:分钟\n offdutyRemindEndMin 下班打卡提醒结束时间,单位:分钟\n canUpdateOffDuty 是否允许用户更新下班打卡设置\n voiceRemindSwitch 极速打卡提示音开关\n vibrationRemindSwitch 极速打卡震动提醒开关\n\n settingScene=checkResultNotify(打卡结果通知)相关字段:\n checkResultMsg 打卡结果通知开关:0 关闭,1 开启\n\n settingScene=lackRemind(缺卡提醒)相关字段:\n lackSendTodoMsg 待办提醒开关:0 关闭,null 或 1 开启\n lackRemindUser 工作通知渠道:用户个人缺卡提醒开关:0 关闭,null 或 1 开启\n\n settingScene=personalAttendStatNotify(个人考勤统计通知)相关字段:\n personDailyReportSwitch 日报推送开关:0 关闭,1 开启\n personWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n personMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n\n settingScene=bossAttendStatNotify(团队考勤统计通知)相关字段:\n bossPushStartMin 日报推送开始时间,单位:分钟;-1 表示关闭日报推送\n bossWeekReportType 周报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮\n bossMonthReportType 月报通知渠道:0 全关闭,1 工作通知,2 钉邮,3 工作通知和钉邮" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -128135,45 +126536,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -128236,13 +126641,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询个人规则设置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询个人规则设置" @@ -128271,14 +126676,22 @@ "group": "selfsetting", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "selfsetting_get", "parameter_count": 2, "parameters": { "setting-scene": { "description": "查询设置项:checkRemind/fastCheck/checkResultNotify/lackRemind/personalAttendStatNotify/bossAttendStatNotify(必填)", + "enum": [ + "checkRemind", + "fastCheck", + "checkResultNotify", + "lackRemind", + "personalAttendStatNotify", + "bossAttendStatNotify" + ], "field_provenance": { "description": { "candidates": [ @@ -128300,19 +126713,61 @@ "source": "cobra_usage", "value": "查询设置项:checkRemind/fastCheck/checkResultNotify/lackRemind/personalAttendStatNotify/bossAttendStatNotify(必填)" }, + "enum": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": [ + "checkRemind", + "fastCheck", + "checkResultNotify", + "lackRemind", + "personalAttendStatNotify", + "bossAttendStatNotify" + ] + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": [] + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": [ + "checkRemind", + "fastCheck", + "checkResultNotify", + "lackRemind", + "personalAttendStatNotify", + "bossAttendStatNotify" + ] + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "settingScene" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "settingScene" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -128363,7 +126818,6 @@ "value": "string" } }, - "property": "settingScene", "required": true, "type": "string" }, @@ -128393,16 +126847,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -128453,7 +126915,6 @@ "value": "string" } }, - "property": "user", "required": true, "type": "string" } @@ -128477,6 +126938,7 @@ "internal/cli/schema_hints/attendance-example-normalization.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance.md" ], @@ -128517,15 +126979,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -128596,13 +127060,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新保存个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 必填,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --user 必填,更新用户 ID,对应 MCP 参数 userId\n\n按 settingScene 传入对应设置字段,且至少传一个字段:\n checkRemind:\n --check-remind-setting\n --check-remind-user-on-duty\n --check-remind-user-off-duty\n --enable-onduty-check-remind-of-pc\n --enable-offduty-check-remind-of-pc\n fastCheck:\n --onduty-check-type\n --offduty-check-type\n --onduty-remind-start-min\n --onduty-remind-end-min\n --offduty-remind-start-min\n --offduty-remind-end-min\n --fast-check-late-need-confirm\n --can-update-off-duty\n --voice-remind-switch\n --vibration-remind-switch\n checkResultNotify:\n --check-result-msg\n lackRemind:\n --lack-send-todo-msg\n --lack-remind-user\n personalAttendStatNotify:\n --person-daily-report-switch\n --person-week-report-type\n --person-month-report-type\n bossAttendStatNotify:\n --boss-push-start-min\n --boss-week-report-type\n --boss-month-report-type\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n返回 ServiceResult,包含 success、code、message、result;result 为 boolean,表示保存是否成功。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新保存个人规则设置,包括打卡提醒、极速打卡、打卡结果通知、缺卡提醒、个人考勤统计通知、团队考勤统计通知等设置项。\n\n入参字段:\n --setting-scene 必填,枚举值包括 checkRemind、fastCheck、checkResultNotify、lackRemind、personalAttendStatNotify、bossAttendStatNotify\n --user 必填,更新用户 ID,对应 MCP 参数 userId\n\n按 settingScene 传入对应设置字段,且至少传一个字段:\n checkRemind:\n --check-remind-setting\n --check-remind-user-on-duty\n --check-remind-user-off-duty\n --enable-onduty-check-remind-of-pc\n --enable-offduty-check-remind-of-pc\n fastCheck:\n --onduty-check-type\n --offduty-check-type\n --onduty-remind-start-min\n --onduty-remind-end-min\n --offduty-remind-start-min\n --offduty-remind-end-min\n --fast-check-late-need-confirm\n --can-update-off-duty\n --voice-remind-switch\n --vibration-remind-switch\n checkResultNotify:\n --check-result-msg\n lackRemind:\n --lack-send-todo-msg\n --lack-remind-user\n personalAttendStatNotify:\n --person-daily-report-switch\n --person-week-report-type\n --person-month-report-type\n bossAttendStatNotify:\n --boss-push-start-min\n --boss-week-report-type\n --boss-month-report-type\n\n说明:corpId 和 opUserId 由当前登录上下文自动补齐,不需要通过 CLI 入参传入。\n返回 ServiceResult,包含 success、code、message、result;result 为 boolean,表示保存是否成功。" @@ -128693,45 +127157,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -128795,13 +127263,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新保存个人规则设置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新保存个人规则设置" @@ -128830,8 +127298,8 @@ "group": "selfsetting", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "selfsetting_save", "parameter_count": 27, @@ -128862,16 +127330,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-month-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossMonthReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossMonthReportType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-month-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -128916,7 +127392,6 @@ "value": "integer" } }, - "property": "bossMonthReportType", "required": false, "type": "integer" }, @@ -128946,16 +127421,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-push-start-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossPushStartMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossPushStartMin" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-push-start-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129000,7 +127483,6 @@ "value": "integer" } }, - "property": "bossPushStartMin", "required": false, "type": "integer" }, @@ -129030,16 +127512,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-week-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bossWeekReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bossWeekReportType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-week-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129084,7 +127574,6 @@ "value": "integer" } }, - "property": "bossWeekReportType", "required": false, "type": "integer" }, @@ -129114,16 +127603,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --can-update-off-duty is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "canUpdateOffDuty" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "canUpdateOffDuty" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --can-update-off-duty is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129168,7 +127665,6 @@ "value": "boolean" } }, - "property": "canUpdateOffDuty", "required": false, "type": "boolean" }, @@ -129198,16 +127694,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-setting is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkRemindSetting" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkRemindSetting" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-setting is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129252,7 +127756,6 @@ "value": "string" } }, - "property": "checkRemindSetting", "required": false, "type": "string" }, @@ -129282,16 +127785,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-off-duty is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkRemindUserOffDuty" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkRemindUserOffDuty" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-off-duty is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129336,7 +127847,6 @@ "value": "boolean" } }, - "property": "checkRemindUserOffDuty", "required": false, "type": "boolean" }, @@ -129366,16 +127876,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-on-duty is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkRemindUserOnDuty" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkRemindUserOnDuty" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-on-duty is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129420,7 +127938,6 @@ "value": "boolean" } }, - "property": "checkRemindUserOnDuty", "required": false, "type": "boolean" }, @@ -129450,16 +127967,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-result-msg is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "checkResultMsg" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "checkResultMsg" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-result-msg is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129504,7 +128029,6 @@ "value": "integer" } }, - "property": "checkResultMsg", "required": false, "type": "integer" }, @@ -129534,16 +128058,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-offduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enableOffdutyCheckRemindOfPc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enableOffdutyCheckRemindOfPc" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-offduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129588,7 +128120,6 @@ "value": "boolean" } }, - "property": "enableOffdutyCheckRemindOfPc", "required": false, "type": "boolean" }, @@ -129618,16 +128149,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-onduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "enableOndutyCheckRemindOfPc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "enableOndutyCheckRemindOfPc" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-onduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129672,7 +128211,6 @@ "value": "boolean" } }, - "property": "enableOndutyCheckRemindOfPc", "required": false, "type": "boolean" }, @@ -129702,16 +128240,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --fast-check-late-need-confirm is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fastCheckLateNeedConfirm" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fastCheckLateNeedConfirm" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --fast-check-late-need-confirm is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129756,7 +128302,6 @@ "value": "boolean" } }, - "property": "fastCheckLateNeedConfirm", "required": false, "type": "boolean" }, @@ -129786,16 +128331,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-remind-user is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "lackRemindUser" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "lackRemindUser" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-remind-user is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129840,7 +128393,6 @@ "value": "integer" } }, - "property": "lackRemindUser", "required": false, "type": "integer" }, @@ -129870,16 +128422,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-send-todo-msg is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "lackSendTodoMsg" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "lackSendTodoMsg" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-send-todo-msg is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -129924,7 +128484,6 @@ "value": "integer" } }, - "property": "lackSendTodoMsg", "required": false, "type": "integer" }, @@ -129954,16 +128513,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-check-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "offdutyCheckType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "offdutyCheckType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-check-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130008,7 +128575,6 @@ "value": "integer" } }, - "property": "offdutyCheckType", "required": false, "type": "integer" }, @@ -130038,16 +128604,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "offdutyRemindEndMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "offdutyRemindEndMin" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130092,7 +128666,6 @@ "value": "integer" } }, - "property": "offdutyRemindEndMin", "required": false, "type": "integer" }, @@ -130122,16 +128695,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "offdutyRemindStartMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "offdutyRemindStartMin" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130176,7 +128757,6 @@ "value": "integer" } }, - "property": "offdutyRemindStartMin", "required": false, "type": "integer" }, @@ -130206,16 +128786,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-check-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ondutyCheckType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ondutyCheckType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-check-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130260,7 +128848,6 @@ "value": "integer" } }, - "property": "ondutyCheckType", "required": false, "type": "integer" }, @@ -130290,16 +128877,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ondutyRemindEndMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ondutyRemindEndMin" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130344,7 +128939,6 @@ "value": "integer" } }, - "property": "ondutyRemindEndMin", "required": false, "type": "integer" }, @@ -130374,16 +128968,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ondutyRemindStartMin" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ondutyRemindStartMin" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130428,7 +129030,6 @@ "value": "integer" } }, - "property": "ondutyRemindStartMin", "required": false, "type": "integer" }, @@ -130458,16 +129059,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-daily-report-switch is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "personDailyReportSwitch" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "personDailyReportSwitch" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-daily-report-switch is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130512,7 +129121,6 @@ "value": "integer" } }, - "property": "personDailyReportSwitch", "required": false, "type": "integer" }, @@ -130542,16 +129150,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-month-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "personMonthReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "personMonthReportType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-month-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130596,7 +129212,6 @@ "value": "integer" } }, - "property": "personMonthReportType", "required": false, "type": "integer" }, @@ -130626,16 +129241,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-week-report-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "personWeekReportType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "personWeekReportType" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-week-report-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130680,7 +129303,6 @@ "value": "integer" } }, - "property": "personWeekReportType", "required": false, "type": "integer" }, @@ -130710,16 +129332,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "settingScene" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "settingScene" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130770,7 +129400,6 @@ "value": "string" } }, - "property": "settingScene", "required": true, "type": "string" }, @@ -130800,16 +129429,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130860,7 +129497,6 @@ "value": "string" } }, - "property": "user", "required": true, "type": "string" }, @@ -130890,16 +129526,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --vibration-remind-switch is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "vibrationRemindSwitch" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "vibrationRemindSwitch" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --vibration-remind-switch is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -130944,7 +129588,6 @@ "value": "boolean" } }, - "property": "vibrationRemindSwitch", "required": false, "type": "boolean" }, @@ -130974,16 +129617,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --voice-remind-switch is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "voiceRemindSwitch" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "voiceRemindSwitch" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --voice-remind-switch is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -131028,7 +129679,6 @@ "value": "boolean" } }, - "property": "voiceRemindSwitch", "required": false, "type": "boolean" }, @@ -131058,16 +129708,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -131112,7 +129770,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -131135,6 +129792,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -131151,9 +129809,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额。\n例如:查询某员工年假还剩多少、病假额度等。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -131179,15 +129834,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -131251,39 +129908,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额。\n例如:查询某员工年假还剩多少、病假额度等。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_leave_balance_quota 查询指定员工的假期余额。\n例如:查询某员工年假还剩多少、病假额度等。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -131351,45 +129986,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -131446,13 +130085,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定员工假期余额" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定员工假期余额" @@ -131481,8 +130120,8 @@ "group": "vacation", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "vacation_balance", "parameter_count": 2, @@ -131513,16 +130152,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "leaveCode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "leaveCode" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -131573,7 +130220,6 @@ "value": "string" } }, - "property": "leaveCode", "required": true, "type": "string" }, @@ -131603,16 +130249,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -131663,7 +130317,6 @@ "value": "string" } }, - "property": "users", "required": true, "type": "string" } @@ -131686,6 +130339,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -131702,9 +130356,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录。\n例如:查询某员工年假变更历史、请假扣减记录等。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -131730,15 +130381,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -131808,39 +130461,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录。\n例如:查询某员工年假变更历史、请假扣减记录等。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_leave_balance_records 查询指定员工的假期余额变更记录。\n例如:查询某员工年假变更历史、请假扣减记录等。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -131920,45 +130551,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -132021,13 +130656,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定员工假期余额变更记录" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定员工假期余额变更记录" @@ -132056,8 +130691,8 @@ "group": "vacation", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "vacation_records", "parameter_count": 4, @@ -132088,16 +130723,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132148,7 +130791,6 @@ "value": "string" } }, - "property": "end", "required": true, "type": "string" }, @@ -132178,16 +130820,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "leaveCode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "leaveCode" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132238,7 +130888,6 @@ "value": "string" } }, - "property": "leaveCode", "required": true, "type": "string" }, @@ -132268,16 +130917,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132328,7 +130985,6 @@ "value": "string" } }, - "property": "start", "required": true, "type": "string" }, @@ -132358,16 +131014,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132418,7 +131082,6 @@ "value": "string" } }, - "property": "user", "required": true, "type": "string" } @@ -132441,6 +131104,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -132482,15 +131146,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -132554,13 +131220,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 update_leave_balance 设置指定员工的假期余额数量。\n\n重要说明:这是设置(SET)接口,传入的值会替换当前余额,而不是增加(ADD)。\n\n参数说明:\n --target 目标员工工号(必填)\n --leave-code 假期编码(必填)\n --num 余额数量(必填,如8天传8,7.5天传7.5)\n --reason 变更原因(必填,最长100字符)\n --start 有效期开始日期 YYYY-MM-DD\n --end 有效期结束日期 YYYY-MM-DD\n --user-say-yes 用户已确认,跳过交互式确认提示(Agent 调用时传 true 前必须完成用户二次确认)\n\n注意:\n - 余额数量在传递给 MCP 时会自动乘以100(如8天传800,7.5天传750)\n - 此接口为 SET 操作:传入值会直接设置为新的余额,而非累加到现有余额" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 update_leave_balance 设置指定员工的假期余额数量。\n\n重要说明:这是设置(SET)接口,传入的值会替换当前余额,而不是增加(ADD)。\n\n参数说明:\n --target 目标员工工号(必填)\n --leave-code 假期编码(必填)\n --num 余额数量(必填,如8天传8,7.5天传7.5)\n --reason 变更原因(必填,最长100字符)\n --start 有效期开始日期 YYYY-MM-DD\n --end 有效期结束日期 YYYY-MM-DD\n --user-say-yes 用户已确认,跳过交互式确认提示(Agent 调用时传 true 前必须完成用户二次确认)\n\n注意:\n - 余额数量在传递给 MCP 时会自动乘以100(如8天传800,7.5天传750)\n - 此接口为 SET 操作:传入值会直接设置为新的余额,而非累加到现有余额" @@ -132632,45 +131298,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -132727,13 +131397,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "设置员工假期余额" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "设置员工假期余额" @@ -132762,8 +131432,8 @@ "group": "vacation", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "vacation_save_balance", "parameter_count": 7, @@ -132794,16 +131464,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132848,7 +131526,6 @@ "value": "string" } }, - "property": "end", "required": false, "type": "string" }, @@ -132878,16 +131555,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "leaveCode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "leaveCode" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -132938,7 +131623,6 @@ "value": "string" } }, - "property": "leaveCode", "required": true, "type": "string" }, @@ -132968,16 +131652,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --num is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "num" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "num" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --num is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -133028,7 +131720,6 @@ "value": "string" } }, - "property": "num", "required": true, "type": "string" }, @@ -133058,16 +131749,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --reason is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "reason" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "reason" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --reason is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -133118,7 +131817,6 @@ "value": "string" } }, - "property": "reason", "required": true, "type": "string" }, @@ -133148,16 +131846,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -133202,7 +131908,6 @@ "value": "string" } }, - "property": "start", "required": false, "type": "string" }, @@ -133232,16 +131937,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --target is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "target" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "target" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --target is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -133292,7 +132005,6 @@ "value": "string" } }, - "property": "target", "required": true, "type": "string" }, @@ -133322,16 +132034,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userSayYes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userSayYes" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -133376,7 +132096,6 @@ "value": "boolean" } }, - "property": "userSayYes", "required": false, "type": "boolean" } @@ -133399,6 +132118,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -133415,9 +132135,6 @@ "confirmation": "not_required", "description": "调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表。\n例如:年假、事假、病假等假期类型及对应规则。", "display": "考勤打卡 / 排班 / 统计", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -133443,15 +132160,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -133521,39 +132240,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表。\n例如:年假、事假、病假等假期类型及对应规则。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 get_leave_types 查询当前用户可用的假期规则列表。\n例如:年假、事假、病假等假期类型及对应规则。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -133633,45 +132330,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -133734,13 +132435,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户假期规则列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户假期规则列表" @@ -133769,8 +132470,8 @@ "group": "vacation", "has_parameters": false, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "vacation_types", "parameter_count": 0, @@ -133793,6 +132494,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", "internal/cli/schema_hints/zz-attendance-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/attendance-vacation.md", "skills/mono/references/products/attendance.md" @@ -133807,6 +132509,18 @@ "cli_name": "update-type", "cli_path": "attendance vacation update-type", "confirmation": "user_required", + "constraints": { + "require_one_of": [ + [ + "name", + "unit", + "paid", + "per-hours", + "when-can-leave", + "visibility-rules" + ] + ] + }, "description": "调用 MCP 工具 save_leave_type 更新已有假期规则。\n--leave-code 必填,指定要更新的假期规则编码。\n其他字段均为可选,仅需传入要修改的字段。\n\n参数说明:\n --leave-code 假期编码(必填)\n --name 假期名称(可选)\n --unit 假期单位:day/halfDay/hour(可选)\n --paid 是否带薪假期(可选)\n --per-hours 一天折算小时数(可选)\n --when-can-leave 新员工请假规则:entry/formal(可选)\n --visibility-rules 适用范围规则 JSON 数组(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示(Agent 调用时传 true 前必须完成用户二次确认)\n\n--visibility-rules 适用范围语义(HSF 反序列化约定,必读):\n - 不传:不修改原有可见范围。\n - 改为指定范围:传 [{\"type\":\"staff|dept|label|employee_type\",\"visible\":[\"id1\",\"id2\"]}, ...],\n 每条规则 type 和 visible 都必须非空。\n - 改为全公司可见(哨兵约定):必须显式传 [{\"type\":\"dept\",\"visible\":[\"-1\"]}],\n 服务端识别后会落库为空可见范围(即全公司)。\n - 反例(CLI 会拦截报错,避免被服务端静默忽略):\n * 空数组 []、[{}]、[{\"type\":\"dept\",\"visible\":[]}] 等被视为未传,不会生效为全公司可见;\n * 若要清空可见范围,必须显式传哨兵值 [\"-1\"]。", "display": "考勤打卡 / 排班 / 统计", "effect": "write", @@ -133834,15 +132548,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -133912,13 +132628,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "调用 MCP 工具 save_leave_type 更新已有假期规则。\n--leave-code 必填,指定要更新的假期规则编码。\n其他字段均为可选,仅需传入要修改的字段。\n\n参数说明:\n --leave-code 假期编码(必填)\n --name 假期名称(可选)\n --unit 假期单位:day/halfDay/hour(可选)\n --paid 是否带薪假期(可选)\n --per-hours 一天折算小时数(可选)\n --when-can-leave 新员工请假规则:entry/formal(可选)\n --visibility-rules 适用范围规则 JSON 数组(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示(Agent 调用时传 true 前必须完成用户二次确认)\n\n--visibility-rules 适用范围语义(HSF 反序列化约定,必读):\n - 不传:不修改原有可见范围。\n - 改为指定范围:传 [{\"type\":\"staff|dept|label|employee_type\",\"visible\":[\"id1\",\"id2\"]}, ...],\n 每条规则 type 和 visible 都必须非空。\n - 改为全公司可见(哨兵约定):必须显式传 [{\"type\":\"dept\",\"visible\":[\"-1\"]}],\n 服务端识别后会落库为空可见范围(即全公司)。\n - 反例(CLI 会拦截报错,避免被服务端静默忽略):\n * 空数组 []、[{}]、[{\"type\":\"dept\",\"visible\":[]}] 等被视为未传,不会生效为全公司可见;\n * 若要清空可见范围,必须显式传哨兵值 [\"-1\"]。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "调用 MCP 工具 save_leave_type 更新已有假期规则。\n--leave-code 必填,指定要更新的假期规则编码。\n其他字段均为可选,仅需传入要修改的字段。\n\n参数说明:\n --leave-code 假期编码(必填)\n --name 假期名称(可选)\n --unit 假期单位:day/halfDay/hour(可选)\n --paid 是否带薪假期(可选)\n --per-hours 一天折算小时数(可选)\n --when-can-leave 新员工请假规则:entry/formal(可选)\n --visibility-rules 适用范围规则 JSON 数组(可选)\n --user-say-yes 用户已确认,跳过交互式确认提示(Agent 调用时传 true 前必须完成用户二次确认)\n\n--visibility-rules 适用范围语义(HSF 反序列化约定,必读):\n - 不传:不修改原有可见范围。\n - 改为指定范围:传 [{\"type\":\"staff|dept|label|employee_type\",\"visible\":[\"id1\",\"id2\"]}, ...],\n 每条规则 type 和 visible 都必须非空。\n - 改为全公司可见(哨兵约定):必须显式传 [{\"type\":\"dept\",\"visible\":[\"-1\"]}],\n 服务端识别后会落库为空可见范围(即全公司)。\n - 反例(CLI 会拦截报错,避免被服务端静默忽略):\n * 空数组 []、[{}]、[{\"type\":\"dept\",\"visible\":[]}] 等被视为未传,不会生效为全公司可见;\n * 若要清空可见范围,必须显式传哨兵值 [\"-1\"]。" @@ -134002,45 +132718,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -134103,13 +132823,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新假期规则" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新假期规则" @@ -134138,8 +132858,8 @@ "group": "vacation", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "vacation_update_type", "parameter_count": 8, @@ -134170,16 +132890,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "leaveCode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "leaveCode" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -134230,7 +132958,6 @@ "value": "string" } }, - "property": "leaveCode", "required": true, "type": "string" }, @@ -134260,29 +132987,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134314,7 +133055,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -134344,29 +133084,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --paid is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "paid" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "paid" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --paid is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134398,7 +133152,6 @@ "value": "boolean" } }, - "property": "paid", "required": false, "type": "boolean" }, @@ -134428,29 +133181,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --per-hours is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "perHours" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "perHours" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --per-hours is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134482,7 +133249,6 @@ "value": "integer" } }, - "property": "perHours", "required": false, "type": "integer" }, @@ -134512,29 +133278,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --unit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unit" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --unit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134566,7 +133346,6 @@ "value": "string" } }, - "property": "unit", "required": false, "type": "string" }, @@ -134596,16 +133375,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userSayYes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userSayYes" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -134650,7 +133437,6 @@ "value": "boolean" } }, - "property": "userSayYes", "required": false, "type": "boolean" }, @@ -134680,29 +133466,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --visibility-rules is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "visibilityRules" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "visibilityRules" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --visibility-rules is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134734,7 +133534,6 @@ "value": "string" } }, - "property": "visibilityRules", "required": false, "type": "string" }, @@ -134764,29 +133563,43 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --when-can-leave is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "whenCanLeave" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "whenCanLeave" + "review_reason": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --when-can-leave is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "command_constraint", "selected": true, + "source": "require_one_of_constraint", + "value": false + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", + "precedence": "command_constraint", + "resolution": "highest_precedence", + "source": "require_one_of_constraint", "value": false }, "required_when": { @@ -134818,7 +133631,6 @@ "value": "string" } }, - "property": "whenCanLeave", "required": false, "type": "string" } @@ -134854,11 +133666,8 @@ "cli_name": "add", "cli_path": "calendar attachment add", "confirmation": "not_required", - "description": "为日程添加附件。请先使用钉盘功能上传附件,得到文件id", + "description": "为指定日程添加附件。需先用钉盘上传文件得到 fileId,再以 \u003cfileId\u003e:\u003cname\u003e 形式逗号分隔传入。注意:订阅日历下的日程不支持添加附件", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -134956,44 +133765,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为日程添加附件。请先使用钉盘功能上传附件,得到文件id" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为指定日程添加附件。需先用钉盘上传文件得到 fileId,再以 \u003cfileId\u003e:\u003cname\u003e 形式逗号分隔传入。注意:订阅日历下的日程不支持添加附件" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为日程添加附件。请先使用钉盘功能上传附件,得到文件id" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为日程添加附件。请先使用钉盘功能上传附件,得到文件id" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为指定日程添加附件。需先用钉盘上传文件得到 fileId,再以 \u003cfileId\u003e:\u003cname\u003e 形式逗号分隔传入。注意:订阅日历下的日程不支持添加附件" }, "effect": { "candidates": [ @@ -135132,21 +133919,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加日程附件" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加日程附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加日程附件" }, "use_when": { @@ -135596,11 +134383,8 @@ "cli_name": "add", "cli_path": "calendar attendee add", "confirmation": "not_required", - "description": "向已存在的指定日程添加参与者,支持批量添加多人,可设置参与者类型和通知方式", + "description": "添加日程的参会人。注意:订阅日历下的日程无参会人,因此不可添加", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -135698,44 +134482,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "向已存在的指定日程添加参与者,支持批量添加多人,可设置参与者类型和通知方式" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加日程的参会人。注意:订阅日历下的日程无参会人,因此不可添加" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "向已存在的指定日程添加参与者,支持批量添加多人,可设置参与者类型和通知方式" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "向已存在的指定日程添加参与者,支持批量添加多人,可设置参与者类型和通知方式" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "添加日程的参会人。注意:订阅日历下的日程无参会人,因此不可添加" }, "effect": { "candidates": [ @@ -135880,22 +134642,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加日程参与人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加参会人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加日程参与人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加日程参与人" + "source": "cobra_help", + "value": "添加参会人" }, "use_when": { "candidates": [ @@ -136377,7 +135139,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加日程参与人", + "title": "添加参会人", "use_when": [ "需要添加日程的参会人时。" ] @@ -136405,11 +135167,8 @@ "cli_name": "add", "cli_path": "calendar room add", "confirmation": "not_required", - "description": "为日程(event)添加 会议室,完成会议室的预定", + "description": "room是会议室,用于线下开会场景。将room加入到日程完成预订", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -136507,44 +135266,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为日程(event)添加 会议室,完成会议室的预定" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "room是会议室,用于线下开会场景。将room加入到日程完成预订" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为日程(event)添加 会议室,完成会议室的预定" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为日程(event)添加 会议室,完成会议室的预定" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "room是会议室,用于线下开会场景。将room加入到日程完成预订" }, "effect": { "candidates": [ @@ -136689,22 +135426,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加会议室" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "预定会议室" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加会议室" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加会议室" + "source": "cobra_help", + "value": "预定会议室" }, "use_when": { "candidates": [ @@ -137083,7 +135820,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加会议室", + "title": "预定会议室", "use_when": [ "需要为已有日程预订并添加一个或多个线下会议室时。" ] @@ -137119,11 +135856,8 @@ ] ] }, - "description": "创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。", + "description": "创建日程。\n\n周期日程说明:--recurrence-* 不是彼此独立的参数。一旦指定任一 --recurrence-* 标志,就必须一次性提供**完整**的循环规则,\n至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -137221,44 +135955,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建日程。\n\n周期日程说明:--recurrence-* 不是彼此独立的参数。一旦指定任一 --recurrence-* 标志,就必须一次性提供**完整**的循环规则,\n至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建新的日程,支持设置时间、参与者、提醒,以及预定会议室等功能。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建日程。\n\n周期日程说明:--recurrence-* 不是彼此独立的参数。一旦指定任一 --recurrence-* 标志,就必须一次性提供**完整**的循环规则,\n至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。" }, "effect": { "candidates": [ @@ -137397,21 +136109,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建日程" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建日程" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建日程" }, "use_when": { @@ -139166,6 +137878,12 @@ "source": "cobra_usage", "value": "日程开始前提醒,逗号分隔分钟数 (可选,例如 5,10,15 表示开始前5/10/15分钟提醒;不传则默认15分钟提醒)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置日程开始前提醒。默认日程开始前15分钟提醒。" + }, { "precedence": "default", "selected": false, @@ -139178,19 +137896,45 @@ "source": "cobra_usage", "value": "日程开始前提醒,逗号分隔分钟数 (可选,例如 5,10,15 表示开始前5/10/15分钟提醒;不传则默认15分钟提醒)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "reminders" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "remindMinutes" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "remindMinutes" + "source": "versioned_parameter_binding", + "value": "reminders" }, "required": { "candidates": [ @@ -139241,7 +137985,9 @@ "value": "string" } }, - "property": "remindMinutes", + "interface_description": "设置日程开始前提醒。默认日程开始前15分钟提醒。", + "interface_type": "array", + "property": "reminders", "required": false, "type": "string" }, @@ -139850,11 +138596,8 @@ "cli_name": "delete", "cli_path": "calendar event delete", "confirmation": "user_required", - "description": "删除指定日程,组织者删除将通知所有参与者,参与者删除仅从自己日历移除", + "description": "删除日程", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "skill-explicit", "examples": [ @@ -139959,44 +138702,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定日程,组织者删除将通知所有参与者,参与者删除仅从自己日历移除" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除日程" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定日程,组织者删除将通知所有参与者,参与者删除仅从自己日历移除" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定日程,组织者删除将通知所有参与者,参与者删除仅从自己日历移除" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除日程" }, "effect": { "candidates": [ @@ -140150,22 +138871,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定日程" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除日程" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定日程" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定日程" + "source": "cobra_help", + "value": "删除日程" }, "use_when": { "candidates": [ @@ -140414,7 +139135,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除指定日程", + "title": "删除日程", "use_when": [ "需要删除日程时。" ] @@ -140443,11 +139164,8 @@ "cli_name": "delete", "cli_path": "calendar room delete", "confirmation": "user_required", - "description": "移除日程中预约的会议室。\r\n1. 从日程中移除该会议室\r\n2. 释放该会议室预定记录", + "description": "移除会议室", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "skill-explicit", "examples": [ @@ -140552,44 +139270,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除日程中预约的会议室。\r\n1. 从日程中移除该会议室\r\n2. 释放该会议室预定记录" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除会议室" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除日程中预约的会议室。\r\n1. 从日程中移除该会议室\r\n2. 释放该会议室预定记录" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除日程中预约的会议室。\r\n1. 从日程中移除该会议室\r\n2. 释放该会议室预定记录" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "移除会议室" }, "effect": { "candidates": [ @@ -140743,22 +139439,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除日程中的会议室" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除会议室" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除日程中的会议室" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除日程中的会议室" + "source": "cobra_help", + "value": "移除会议室" }, "use_when": { "candidates": [ @@ -141137,7 +139833,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "移除日程中的会议室", + "title": "移除会议室", "use_when": [ "需要移除会议室时。" ] @@ -141163,11 +139859,8 @@ "cli_name": "get", "cli_path": "calendar book get", "confirmation": "not_required", - "description": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"", + "description": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -141265,44 +139958,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据日历id查询指定日历的信息。用户主日历本id固定为 \"primary\"。" }, "effect": { "candidates": [ @@ -141441,22 +140112,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定日历信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定日历本" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定日历信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定日历信息" + "source": "cobra_help", + "value": "查询指定日历本" }, "use_when": { "candidates": [ @@ -141608,7 +140279,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询指定日历信息", + "title": "查询指定日历本", "use_when": [ "需要根据日历id查询指定日历的信息时。" ] @@ -141636,11 +140307,8 @@ "cli_name": "get", "cli_path": "calendar event get", "confirmation": "not_required", - "description": "根据eventId查询指定日程的明细。", + "description": "获取日程详情", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -141738,44 +140406,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据eventId查询指定日程的明细。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取日程详情" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据eventId查询指定日程的明细。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据eventId查询指定日程的明细。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取日程详情" }, "effect": { "candidates": [ @@ -141920,22 +140566,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询日程详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取日程详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询日程详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询日程详情" + "source": "cobra_help", + "value": "获取日程详情" }, "use_when": { "candidates": [ @@ -142184,7 +140830,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询日程详情", + "title": "获取日程详情", "use_when": [ "需要获取日程详情时。" ] @@ -142212,11 +140858,8 @@ "cli_name": "list", "cli_path": "calendar attendee list", "confirmation": "not_required", - "description": "获取指定日程的所有参与者列表及其状态信息", + "description": "查看日程的参会人列表。注意:订阅日历下的日程无参会人,因此不可查看", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -142314,44 +140957,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定日程的所有参与者列表及其状态信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看日程的参会人列表。注意:订阅日历下的日程无参会人,因此不可查看" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定日程的所有参与者列表及其状态信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定日程的所有参与者列表及其状态信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查看日程的参会人列表。注意:订阅日历下的日程无参会人,因此不可查看" }, "effect": { "candidates": [ @@ -142496,22 +141117,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取日程参与人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看参会人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取日程参与人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取日程参与人" + "source": "cobra_help", + "value": "查看参会人" }, "use_when": { "candidates": [ @@ -142766,7 +141387,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取日程参与人", + "title": "查看参会人", "use_when": [ "需要查看日程的参会人列表时。" ] @@ -142791,11 +141412,8 @@ "cli_name": "list", "cli_path": "calendar acl list", "confirmation": "not_required", - "description": "调用本接口,获取用户主日历的访问控制列表。可查询用户的日历共享情况", + "description": "查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"。注意:这不是查日历本列表(那是 book list)。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -142893,44 +141511,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "调用本接口,获取用户主日历的访问控制列表。可查询用户的日历共享情况" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"。注意:这不是查日历本列表(那是 book list)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "调用本接口,获取用户主日历的访问控制列表。可查询用户的日历共享情况" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "调用本接口,获取用户主日历的访问控制列表。可查询用户的日历共享情况" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"。注意:这不是查日历本列表(那是 book list)。" }, "effect": { "candidates": [ @@ -143069,22 +141665,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询日历访问权限列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询我的日历共享给了谁" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询日历访问权限列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询日历访问权限列表" + "source": "cobra_help", + "value": "查询我的日历共享给了谁" }, "use_when": { "candidates": [ @@ -143126,7 +141722,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询日历访问权限列表", + "title": "查询我的日历共享给了谁", "use_when": [ "需要查询当前用户主日历的访问控制列表——即\"我的日历共享给了哪些人、各自什么权限\"时。" ] @@ -143152,11 +141748,8 @@ "cli_name": "list", "cli_path": "calendar event list", "confirmation": "not_required", - "description": "查询当前用户指定日历本下的日程列表,按起止时间检索。", + "description": "查询当前用户可访问的日程列表。**注意** 不传 --start/--end 时将查询今天的日程(00:00:00 ~ 23:59:59)。\n\t\t**calendar_id**: 不指定calendar_id时,默认查询当前用户主日历下的日程。也可指定calendar_id查询他人共享或者已订阅的日历。calendar_id可通过 dws calendar book list 查询。\n\t\t**权限**:查询共享日历下的日程时,至少要有reader权限。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -143254,44 +141847,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前用户指定日历本下的日程列表,按起止时间检索。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户可访问的日程列表。**注意** 不传 --start/--end 时将查询今天的日程(00:00:00 ~ 23:59:59)。\n\t\t**calendar_id**: 不指定calendar_id时,默认查询当前用户主日历下的日程。也可指定calendar_id查询他人共享或者已订阅的日历。calendar_id可通过 dws calendar book list 查询。\n\t\t**权限**:查询共享日历下的日程时,至少要有reader权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前用户指定日历本下的日程列表,按起止时间检索。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前用户指定日历本下的日程列表,按起止时间检索。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户可访问的日程列表。**注意** 不传 --start/--end 时将查询今天的日程(00:00:00 ~ 23:59:59)。\n\t\t**calendar_id**: 不指定calendar_id时,默认查询当前用户主日历下的日程。也可指定calendar_id查询他人共享或者已订阅的日历。calendar_id可通过 dws calendar book list 查询。\n\t\t**权限**:查询共享日历下的日程时,至少要有reader权限。" }, "effect": { "candidates": [ @@ -143430,22 +142001,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前用户日程列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询日程列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前用户日程列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前用户日程列表" + "source": "cobra_help", + "value": "查询日程列表" }, "use_when": { "candidates": [ @@ -144072,7 +142643,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询当前用户日程列表", + "title": "查询日程列表", "use_when": [ "需要查询当前用户可访问的日程列表;未指定起止时间时默认查询当天日程时。" ] @@ -144098,11 +142669,8 @@ "cli_name": "list", "cli_path": "calendar book list", "confirmation": "not_required", - "description": "查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。", + "description": "查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历。主日历 id 固定为 \"primary\"。\n\t\t\t共享日历本中有来自 xxx 的,且权限大于reader,那么通过 event list --calendar-id \u003cxxx的日历本id\u003e 可查到xxx完整的日程安排", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -144200,44 +142768,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历。主日历 id 固定为 \"primary\"。\n\t\t\t共享日历本中有来自 xxx 的,且权限大于reader,那么通过 event list --calendar-id \u003cxxx的日历本id\u003e 可查到xxx完整的日程安排" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询用户的所有日历,其中id = \"primary\"为主日历(name = \"我的日历\"),为固定值。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历。主日历 id 固定为 \"primary\"。\n\t\t\t共享日历本中有来自 xxx 的,且权限大于reader,那么通过 event list --calendar-id \u003cxxx的日历本id\u003e 可查到xxx完整的日程安排" }, "effect": { "candidates": [ @@ -144376,22 +142922,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询用户日历列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询用户的日历列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询用户日历列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询用户日历列表" + "source": "cobra_help", + "value": "查询用户的日历列表" }, "use_when": { "candidates": [ @@ -144433,7 +142979,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询用户日历列表", + "title": "查询用户的日历列表", "use_when": [ "需要查询当前用户的所有日历,结果范围:用户自己的日历、已订阅的公共/团队日历、他人共享的日历时。" ] @@ -144461,11 +143007,8 @@ "cli_name": "list-groups", "cli_path": "calendar room list-groups", "confirmation": "not_required", - "description": "分页查询当前企业下的会议室分组列表,返回每个分组的名称(groupName)、唯一 ID(groupId)及其父分组 ID(parentId,0 表示根分组)。结果按组织架构权限过滤,仅包含调用者有权限查看的分组。", + "description": "会议室分组列表", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -144563,44 +143106,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "分页查询当前企业下的会议室分组列表,返回每个分组的名称(groupName)、唯一 ID(groupId)及其父分组 ID(parentId,0 表示根分组)。结果按组织架构权限过滤,仅包含调用者有权限查看的分组。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "会议室分组列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "分页查询当前企业下的会议室分组列表,返回每个分组的名称(groupName)、唯一 ID(groupId)及其父分组 ID(parentId,0 表示根分组)。结果按组织架构权限过滤,仅包含调用者有权限查看的分组。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询当前企业下的会议室分组列表,返回每个分组的名称(groupName)、唯一 ID(groupId)及其父分组 ID(parentId,0 表示根分组)。结果按组织架构权限过滤,仅包含调用者有权限查看的分组。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "会议室分组列表" }, "effect": { "candidates": [ @@ -144745,22 +143266,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询会议室分组列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "会议室分组列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询会议室分组列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询会议室分组列表" + "source": "cobra_help", + "value": "会议室分组列表" }, "use_when": { "candidates": [ @@ -144807,6 +143328,12 @@ "source": "cobra_usage", "value": "页大小 (可选,不填默认 100,超过 100 按 100 处理)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "页大小,不填默认 100。超过100的,按照100来处理" + }, { "precedence": "default", "selected": false, @@ -144822,16 +143349,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -144882,7 +143415,8 @@ "value": "string" } }, - "property": "limit", + "interface_description": "页大小,不填默认 100。超过100的,按照100来处理", + "property": "pageSize", "required": false, "type": "string" }, @@ -144897,6 +143431,12 @@ "source": "cobra_usage", "value": "分页起始位置 (可选,不填默认 0)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页开始位置 ,不填默认 0" + }, { "precedence": "default", "selected": false, @@ -144912,16 +143452,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageIndex" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "source": "versioned_parameter_binding", + "value": "pageIndex" }, "required": { "candidates": [ @@ -144972,7 +143518,8 @@ "value": "string" } }, - "property": "page", + "interface_description": "分页开始位置 ,不填默认 0", + "property": "pageIndex", "required": false, "type": "string" } @@ -144983,7 +143530,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询会议室分组列表", + "title": "会议室分组列表", "use_when": [ "需要会议室分组列表时。" ] @@ -145011,11 +143558,8 @@ "cli_name": "suggest", "cli_path": "calendar event suggest", "confirmation": "not_required", - "description": "可根据参会人员的信息,推荐日程时间。用于日程时间未确定,解决会议时间协调问题。", + "description": "对于非明确时间或一段时间范围的约会场景,可基于所有参会人的忙闲状态,推荐多个可用的时间块方案,用于解决会议时间协调问题。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -145113,44 +143657,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "可根据参会人员的信息,推荐日程时间。用于日程时间未确定,解决会议时间协调问题。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对于非明确时间或一段时间范围的约会场景,可基于所有参会人的忙闲状态,推荐多个可用的时间块方案,用于解决会议时间协调问题。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "可根据参会人员的信息,推荐日程时间。用于日程时间未确定,解决会议时间协调问题。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可根据参会人员的信息,推荐日程时间。用于日程时间未确定,解决会议时间协调问题。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对于非明确时间或一段时间范围的约会场景,可基于所有参会人的忙闲状态,推荐多个可用的时间块方案,用于解决会议时间协调问题。" }, "effect": { "candidates": [ @@ -145295,21 +143817,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "建议日程时间" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "建议日程时间" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "建议日程时间" }, "use_when": { @@ -145939,7 +144461,7 @@ "cli_name": "search", "cli_path": "calendar room search", "confirmation": "not_required", - "description": "查询 [startTime, endTime] 时间段内所有可用的会议室。要求整个时间段内都空闲且当前用户可预定。适用于有明确时间段要求的查询。", + "description": "**搜索会议室** 支持两种模式:\n\n\t\t\t1. **按名称搜索**(仅传 --room-name,不传 --start/--end):\n\t\t\t 根据会议室名称模糊搜索,返回所有匹配的会议室,不检查可用性。\n\t\t\t 适用于\"找到某个会议室\"的场景。\n\n\t\t\t2. **按时间段搜索可用会议室**(传 --start/--end,或不传任何参数):\n\t\t\t 查询指定时间段内所有可用的会议室。不传 --start/--end 时默认查询当前时间起 1 小时内的会议室。\n\t\t\t 注意,大部分会议室仅在工作时间可用,如果检索时间不在工作时间可能查不到任何结果。\n\t\t\t 时间约束:start 必须是未来的时间(API 限制:start can not less current time)。\n\t\t\t\t- 若传入的 --start 早于当前时间,CLI 自动修正为 now+1min。\n\t\t\t\t- 若传入的 --end 早于当前时间,视为无效请求返回错误(无法检索过去的时间段)。\n\n\t\t\t使用 --room-name 按会议室名称过滤时,CLI 原样透传给服务端做模糊匹配。调用方(模型/脚本)在传入前应主动精简名称,剔除用户口语里常带的通用后缀(如「会议室」「大会议室」「小会议室」),只保留核心专名,避免因后缀导致匹配不到。例如用户说「永澄亭会议室」时,应传 --room-name 永澄亭。\n\t\t\t如果知道roomId,想查该会议室的预订记录,直接用dws calendar busy search 指令。\n\t\t\t此指令搜索到的会议室结果中,有两个值需要注意:\n\t\t\t\t- customApprovalProcess: true - 表示该会议室设置了自定义审批流程,只能通过客户端完成预订。\n\t\t\t\t- supportRecurring: true - 表示该会议室支持循环预定;false - 表示不支持循环预定,直接加入到循环日程会失败。", "display": "日历日程 / 会议室 / 闲忙", "effect": "read", "effect_source": "command-verb", @@ -146038,22 +144560,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询 [startTime, endTime] 时间段内所有可用的会议室。要求整个时间段内都空闲且当前用户可预定。适用于有明确时间段要求的查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "**搜索会议室** 支持两种模式:\n\n\t\t\t1. **按名称搜索**(仅传 --room-name,不传 --start/--end):\n\t\t\t 根据会议室名称模糊搜索,返回所有匹配的会议室,不检查可用性。\n\t\t\t 适用于\"找到某个会议室\"的场景。\n\n\t\t\t2. **按时间段搜索可用会议室**(传 --start/--end,或不传任何参数):\n\t\t\t 查询指定时间段内所有可用的会议室。不传 --start/--end 时默认查询当前时间起 1 小时内的会议室。\n\t\t\t 注意,大部分会议室仅在工作时间可用,如果检索时间不在工作时间可能查不到任何结果。\n\t\t\t 时间约束:start 必须是未来的时间(API 限制:start can not less current time)。\n\t\t\t\t- 若传入的 --start 早于当前时间,CLI 自动修正为 now+1min。\n\t\t\t\t- 若传入的 --end 早于当前时间,视为无效请求返回错误(无法检索过去的时间段)。\n\n\t\t\t使用 --room-name 按会议室名称过滤时,CLI 原样透传给服务端做模糊匹配。调用方(模型/脚本)在传入前应主动精简名称,剔除用户口语里常带的通用后缀(如「会议室」「大会议室」「小会议室」),只保留核心专名,避免因后缀导致匹配不到。例如用户说「永澄亭会议室」时,应传 --room-name 永澄亭。\n\t\t\t如果知道roomId,想查该会议室的预订记录,直接用dws calendar busy search 指令。\n\t\t\t此指令搜索到的会议室结果中,有两个值需要注意:\n\t\t\t\t- customApprovalProcess: true - 表示该会议室设置了自定义审批流程,只能通过客户端完成预订。\n\t\t\t\t- supportRecurring: true - 表示该会议室支持循环预定;false - 表示不支持循环预定,直接加入到循环日程会失败。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询 [startTime, endTime] 时间段内所有可用的会议室。要求整个时间段内都空闲且当前用户可预定。适用于有明确时间段要求的查询。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询 [startTime, endTime] 时间段内所有可用的会议室。要求整个时间段内都空闲且当前用户可预定。适用于有明确时间段要求的查询。" + "source": "cobra_help", + "value": "**搜索会议室** 支持两种模式:\n\n\t\t\t1. **按名称搜索**(仅传 --room-name,不传 --start/--end):\n\t\t\t 根据会议室名称模糊搜索,返回所有匹配的会议室,不检查可用性。\n\t\t\t 适用于\"找到某个会议室\"的场景。\n\n\t\t\t2. **按时间段搜索可用会议室**(传 --start/--end,或不传任何参数):\n\t\t\t 查询指定时间段内所有可用的会议室。不传 --start/--end 时默认查询当前时间起 1 小时内的会议室。\n\t\t\t 注意,大部分会议室仅在工作时间可用,如果检索时间不在工作时间可能查不到任何结果。\n\t\t\t 时间约束:start 必须是未来的时间(API 限制:start can not less current time)。\n\t\t\t\t- 若传入的 --start 早于当前时间,CLI 自动修正为 now+1min。\n\t\t\t\t- 若传入的 --end 早于当前时间,视为无效请求返回错误(无法检索过去的时间段)。\n\n\t\t\t使用 --room-name 按会议室名称过滤时,CLI 原样透传给服务端做模糊匹配。调用方(模型/脚本)在传入前应主动精简名称,剔除用户口语里常带的通用后缀(如「会议室」「大会议室」「小会议室」),只保留核心专名,避免因后缀导致匹配不到。例如用户说「永澄亭会议室」时,应传 --room-name 永澄亭。\n\t\t\t如果知道roomId,想查该会议室的预订记录,直接用dws calendar busy search 指令。\n\t\t\t此指令搜索到的会议室结果中,有两个值需要注意:\n\t\t\t\t- customApprovalProcess: true - 表示该会议室设置了自定义审批流程,只能通过客户端完成预订。\n\t\t\t\t- supportRecurring: true - 表示该会议室支持循环预定;false - 表示不支持循环预定,直接加入到循环日程会失败。" }, "effect": { "candidates": [ @@ -146192,22 +144714,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询空闲会议室" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索会议室 (按名称搜索或按时间段查可用会议室)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询空闲会议室" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询空闲会议室" + "source": "cobra_help", + "value": "搜索会议室 (按名称搜索或按时间段查可用会议室)" }, "use_when": { "candidates": [ @@ -146475,6 +144997,12 @@ "source": "cobra_usage", "value": "页大小 (可选,不填默认 100,超过 100 按 100 处理)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "页大小,不填默认 100。超过100的,按照100来处理" + }, { "precedence": "default", "selected": false, @@ -146490,16 +145018,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -146550,7 +145084,8 @@ "value": "string" } }, - "property": "limit", + "interface_description": "页大小,不填默认 100。超过100的,按照100来处理", + "property": "pageSize", "required": false, "type": "string" }, @@ -146565,6 +145100,12 @@ "source": "cobra_usage", "value": "分页起始位置 (可选,不填默认 0)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页开始位置 ,不填默认 0" + }, { "precedence": "default", "selected": false, @@ -146580,16 +145121,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageIndex" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "source": "versioned_parameter_binding", + "value": "pageIndex" }, "required": { "candidates": [ @@ -146640,7 +145187,8 @@ "value": "string" } }, - "property": "page", + "interface_description": "分页开始位置 ,不填默认 0", + "property": "pageIndex", "required": false, "type": "string" }, @@ -146872,7 +145420,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询空闲会议室", + "title": "搜索会议室 (按名称搜索或按时间段查可用会议室)", "use_when": [ "需要按名称检索会议室,或按时间、会议室组和名称查询可用会议室时。" ] @@ -146907,7 +145455,7 @@ ] ] }, - "description": "可查询指定用户或者会议室在给定时间范围内的闲忙状态,返回已占用时间段的信息(注意只有时间信息)。结果受组织可见性策略控制:仅当调用者有权限查看该用户日历时方可获取有效数据。适用于安排会议前快速确认他人可用时间,或者查看指定会议室的预订状态。", + "description": "查询指定用户或会议室在给定时间范围内的闲忙状态。--users 与 --rooms 至少指定其一,也可以同时指定(查询用户+会议室)。", "display": "日历日程 / 会议室 / 闲忙", "effect": "read", "effect_source": "command-verb", @@ -147006,22 +145554,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "可查询指定用户或者会议室在给定时间范围内的闲忙状态,返回已占用时间段的信息(注意只有时间信息)。结果受组织可见性策略控制:仅当调用者有权限查看该用户日历时方可获取有效数据。适用于安排会议前快速确认他人可用时间,或者查看指定会议室的预订状态。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定用户或会议室在给定时间范围内的闲忙状态。--users 与 --rooms 至少指定其一,也可以同时指定(查询用户+会议室)。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "可查询指定用户或者会议室在给定时间范围内的闲忙状态,返回已占用时间段的信息(注意只有时间信息)。结果受组织可见性策略控制:仅当调用者有权限查看该用户日历时方可获取有效数据。适用于安排会议前快速确认他人可用时间,或者查看指定会议室的预订状态。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "可查询指定用户或者会议室在给定时间范围内的闲忙状态,返回已占用时间段的信息(注意只有时间信息)。结果受组织可见性策略控制:仅当调用者有权限查看该用户日历时方可获取有效数据。适用于安排会议前快速确认他人可用时间,或者查看指定会议室的预订状态。" + "source": "cobra_help", + "value": "查询指定用户或会议室在给定时间范围内的闲忙状态。--users 与 --rooms 至少指定其一,也可以同时指定(查询用户+会议室)。" }, "effect": { "candidates": [ @@ -147166,22 +145714,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取用户闲忙信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询用户 / 会议室闲忙状态" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取用户闲忙信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取用户闲忙信息" + "source": "cobra_help", + "value": "查询用户 / 会议室闲忙状态" }, "use_when": { "candidates": [ @@ -147780,7 +146328,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取用户闲忙信息", + "title": "查询用户 / 会议室闲忙状态", "use_when": [ "需要查询指定用户或会议室在给定时间范围内的闲忙状态时。" ] @@ -147808,11 +146356,8 @@ "cli_name": "delete", "cli_path": "calendar attendee delete", "confirmation": "user_required", - "description": "从已存在的指定日程中移除参与者,支持批量移除多人", + "description": "移除日程的参会人。注意:订阅日历下的日程无参会人,因此不可移除", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -147916,44 +146461,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "从已存在的指定日程中移除参与者,支持批量移除多人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除日程的参会人。注意:订阅日历下的日程无参会人,因此不可移除" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "从已存在的指定日程中移除参与者,支持批量移除多人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "从已存在的指定日程中移除参与者,支持批量移除多人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "移除日程的参会人。注意:订阅日历下的日程无参会人,因此不可移除" }, "effect": { "candidates": [ @@ -148104,22 +146627,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除日程参与人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除参会人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除日程参与人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除日程参与人" + "source": "cobra_help", + "value": "移除参会人" }, "use_when": { "candidates": [ @@ -148504,7 +147027,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除日程参与人", + "title": "移除参会人", "use_when": [ "需要移除日程的参会人时。" ] @@ -148530,11 +147053,8 @@ "cli_name": "respond", "cli_path": "calendar event respond", "confirmation": "not_required", - "description": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。", + "description": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。注意:订阅日历下的日程无参会人,因此不可响应", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -148632,44 +147152,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。注意:订阅日历下的日程无参会人,因此不可响应" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)。注意:订阅日历下的日程无参会人,因此不可响应" }, "effect": { "candidates": [ @@ -148808,22 +147306,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "响应日程" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "响应日程(接受/拒绝/暂定)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "响应日程" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "响应日程" + "source": "cobra_help", + "value": "响应日程(接受/拒绝/暂定)" }, "use_when": { "candidates": [ @@ -149217,7 +147715,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "响应日程", + "title": "响应日程(接受/拒绝/暂定)", "use_when": [ "需要作为日程参会人,设置自己的响应状态(接受、拒绝、暂定)时。" ] @@ -149243,11 +147741,8 @@ "cli_name": "search", "cli_path": "calendar book search", "confirmation": "not_required", - "description": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用list_calendars", + "description": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用 list。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -149345,44 +147840,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用list_calendars" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用 list。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用list_calendars" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用list_calendars" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索当前用户拥有的日历本,支持按日历本名模糊搜索。获取全部日历请使用 list。" }, "effect": { "candidates": [ @@ -149521,22 +147994,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索日历本列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索日历本" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索日历本列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索日历本列表" + "source": "cobra_help", + "value": "搜索日历本" }, "use_when": { "candidates": [ @@ -149607,7 +148080,7 @@ "precedence": "versioned_binding", "selected": true, "source": "versioned_parameter_binding", - "value": "calendarName" + "value": "query" }, { "precedence": "inference", @@ -149619,7 +148092,7 @@ "precedence": "versioned_binding", "resolution": "highest_precedence", "source": "versioned_parameter_binding", - "value": "calendarName" + "value": "query" }, "required": { "candidates": [ @@ -149677,7 +148150,7 @@ } }, "interface_description": "按日历本名称模糊检索", - "property": "calendarName", + "property": "query", "required": true, "type": "string" } @@ -149688,7 +148161,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索日历本列表", + "title": "搜索日历本", "use_when": [ "需要搜索当前用户拥有的日历本,支持按日历本名模糊搜索时。" ] @@ -149723,11 +148196,8 @@ ] ] }, - "description": "修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。(修改参与人需要使用给日程添加参与人或给日程删除参与人工具)", + "description": "支持修改标题、描述、时间、地点、忙碌状态等。如需修改会议室,请使用 dws calendar room [add|delete];如需修改参会人,请使用 dws calendar attendee [add|delete]。\n\n\t\t修改周期日程的循环规则时,--recurrence-* 系列必须整体传入:只传其中一个(比如只改 --recurrence-count)会把循环规则覆盖成不完整的状态。\n\t\t至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。\n\t\t如果只想微调已有周期日程的某一个循环字段,请先通过 dws calendar event get --id \u003cID\u003e 读取现有 recurrence,然后在命令中重新提供完整的 pattern + range 字段集合。", "display": "日历日程 / 会议室 / 闲忙", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -149825,44 +148295,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。(修改参与人需要使用给日程添加参与人或给日程删除参与人工具)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "支持修改标题、描述、时间、地点、忙碌状态等。如需修改会议室,请使用 dws calendar room [add|delete];如需修改参会人,请使用 dws calendar attendee [add|delete]。\n\n\t\t修改周期日程的循环规则时,--recurrence-* 系列必须整体传入:只传其中一个(比如只改 --recurrence-count)会把循环规则覆盖成不完整的状态。\n\t\t至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。\n\t\t如果只想微调已有周期日程的某一个循环字段,请先通过 dws calendar event get --id \u003cID\u003e 读取现有 recurrence,然后在命令中重新提供完整的 pattern + range 字段集合。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。(修改参与人需要使用给日程添加参与人或给日程删除参与人工具)" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改现有日程的信息,支持更新标题、时间、地点等任意字段,需要组织者权限。(修改参与人需要使用给日程添加参与人或给日程删除参与人工具)" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "支持修改标题、描述、时间、地点、忙碌状态等。如需修改会议室,请使用 dws calendar room [add|delete];如需修改参会人,请使用 dws calendar attendee [add|delete]。\n\n\t\t修改周期日程的循环规则时,--recurrence-* 系列必须整体传入:只传其中一个(比如只改 --recurrence-count)会把循环规则覆盖成不完整的状态。\n\t\t至少包含 --recurrence-type、--recurrence-interval(\u003e0) 与 --recurrence-range-type,否则命令会被拒绝执行。\n\t\t如果只想微调已有周期日程的某一个循环字段,请先通过 dws calendar event get --id \u003cID\u003e 读取现有 recurrence,然后在命令中重新提供完整的 pattern + range 字段集合。" }, "effect": { "candidates": [ @@ -150001,21 +148449,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改日程" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "修改日程" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改日程" }, "use_when": { @@ -152059,9 +150507,6 @@ "confirmation": "not_required", "description": "添加群身份", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -152159,45 +150604,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加群身份" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加群身份" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -152335,21 +150758,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加群身份" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加群身份" }, "use_when": { @@ -152684,11 +151107,8 @@ ] ] }, - "description": "消息添加 emoji 回应", + "description": "对消息添加 emoji 表情回应", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -152794,44 +151214,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "消息添加 emoji 回应" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对消息添加 emoji 表情回应" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "消息添加 emoji 回应" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "消息添加 emoji 回应" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对消息添加 emoji 表情回应" }, "effect": { "candidates": [ @@ -152970,22 +151368,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "消息添加 emoji 回应" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对消息添加 emoji 表情回应" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "消息添加 emoji 回应" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "消息添加 emoji 回应" + "source": "cobra_help", + "value": "对消息添加 emoji 表情回应" }, "use_when": { "candidates": [ @@ -153734,7 +152132,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "消息添加 emoji 回应", + "title": "对消息添加 emoji 表情回应", "use_when": [ "需要对已有消息添加一个 emoji reaction 时" ] @@ -153764,11 +152162,8 @@ "cli_name": "add", "cli_path": "chat group members add", "confirmation": "not_required", - "description": "添加群成员", + "description": "向指定群聊添加成员,需传入群 ID 与用户标识列表。支持 userId 和 openDingTalkId 混传。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -153866,44 +152261,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加群成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "向指定群聊添加成员,需传入群 ID 与用户标识列表。支持 userId 和 openDingTalkId 混传。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加群成员" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加群成员" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "向指定群聊添加成员,需传入群 ID 与用户标识列表。支持 userId 和 openDingTalkId 混传。" }, "effect": { "candidates": [ @@ -154048,22 +152421,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_group_member" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加群成员" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_group_member" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_group_member" + "source": "cobra_help", + "value": "添加群成员" }, "use_when": { "candidates": [ @@ -154381,7 +152754,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_group_member", + "title": "添加群成员", "use_when": [ "已知群 ID 和成员 ID,需要邀请成员入群时" ] @@ -154407,9 +152780,6 @@ "confirmation": "not_required", "description": "收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作会修改当前用户的消息收藏状态。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -154436,7 +152806,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -154444,7 +152814,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -154501,39 +152871,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作会修改当前用户的消息收藏状态。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作会修改当前用户的消息收藏状态。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -154586,39 +152934,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -154626,7 +152974,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -154638,13 +152986,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -154670,13 +153011,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "收藏指定消息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "收藏指定消息" @@ -154705,8 +153046,8 @@ "group": "message", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "add_message_favorite", "parameter_count": 2, @@ -154752,16 +153093,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openConversationId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openConversationId" + "review_reason": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -154818,7 +153167,6 @@ "value": "string" } }, - "property": "openConversationId", "required": true, "type": "string" }, @@ -154863,16 +153211,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openMessageId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openMessageId" + "review_reason": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -154929,7 +153285,6 @@ "value": "string" } }, - "property": "openMessageId", "required": true, "type": "string" } @@ -154971,11 +153326,8 @@ "cli_name": "add-bot", "cli_path": "chat group members add-bot", "confirmation": "not_required", - "description": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错", + "description": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -155073,44 +153425,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将自定义机器人添加到当前用户有管理权限的群聊中。如果没有权限则会报错。" }, "effect": { "candidates": [ @@ -155263,22 +153593,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将企业机器人添加我有权限的群中" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将机器人添加到群中" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将企业机器人添加我有权限的群中" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将企业机器人添加我有权限的群中" + "source": "cobra_help", + "value": "将机器人添加到群中" }, "use_when": { "candidates": [ @@ -155340,6 +153670,12 @@ "source": "cobra_usage", "value": "群聊 openConversationId (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群会话Id,可通过关键词搜索群列表服务获取" + }, { "precedence": "default", "selected": false, @@ -155355,16 +153691,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openConversationId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "id" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "id" + "source": "versioned_parameter_binding", + "value": "openConversationId" }, "required": { "candidates": [ @@ -155374,6 +153716,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -155421,7 +153769,8 @@ "value": "string" } }, - "property": "id", + "interface_description": "群会话Id,可通过关键词搜索群列表服务获取", + "property": "openConversationId", "required": true, "type": "string" }, @@ -155556,7 +153905,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "将企业机器人添加我有权限的群中", + "title": "将机器人添加到群中", "use_when": [ "已知 robotCode 且需要在有管理权限的群中安装机器人时" ] @@ -155593,11 +153942,8 @@ ] ] }, - "description": "添加文字表情", + "description": "对消息添加文字表情回应", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -155703,44 +154049,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对消息添加文字表情回应" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加文字表情" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加文字表情" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对消息添加文字表情回应" }, "effect": { "candidates": [ @@ -155879,22 +154203,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对消息添加文字表情回应" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加文字表情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加文字表情" + "source": "cobra_help", + "value": "对消息添加文字表情回应" }, "use_when": { "candidates": [ @@ -156946,7 +155270,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加文字表情", + "title": "对消息添加文字表情回应", "use_when": [ "已有文字表情定义并要附加到消息时" ] @@ -156974,11 +155298,8 @@ "cli_name": "combine-forward", "cli_path": "chat message combine-forward", "confirmation": "not_required", - "description": "合并转发消息", + "description": "将多条消息合并后转发到目标会话。需要指定源会话 ID、源消息 ID 列表(逗号分隔)、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -157076,44 +155397,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "合并转发消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将多条消息合并后转发到目标会话。需要指定源会话 ID、源消息 ID 列表(逗号分隔)、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "合并转发消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "合并转发消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将多条消息合并后转发到目标会话。需要指定源会话 ID、源消息 ID 列表(逗号分隔)、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" }, "effect": { "candidates": [ @@ -157252,22 +155551,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "合并转发消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "合并转发多条消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "合并转发消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "合并转发消息" + "source": "cobra_help", + "value": "合并转发多条消息" }, "use_when": { "candidates": [ @@ -157812,7 +156111,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "合并转发消息", + "title": "合并转发多条消息", "use_when": [ "需要保留多条源消息并作为合集转发时" ] @@ -157854,11 +156153,8 @@ ] ] }, - "description": "创建并推送流式卡片", + "description": "向群聊或单聊创建并推送流式卡片。群聊传 --group,单聊传 --receiver,二者互斥。\n创建时无需传入卡片内容,后续通过 update-card 更新内容。\n\n注意:send-card 必须和 update-card 搭配使用。发送卡片后,使用返回的 bizId 调用 update-card 更新内容,\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -157956,44 +156252,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建并推送流式卡片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "向群聊或单聊创建并推送流式卡片。群聊传 --group,单聊传 --receiver,二者互斥。\n创建时无需传入卡片内容,后续通过 update-card 更新内容。\n\n注意:send-card 必须和 update-card 搭配使用。发送卡片后,使用返回的 bizId 调用 update-card 更新内容,\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建并推送流式卡片" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建并推送流式卡片" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "向群聊或单聊创建并推送流式卡片。群聊传 --group,单聊传 --receiver,二者互斥。\n创建时无需传入卡片内容,后续通过 update-card 更新内容。\n\n注意:send-card 必须和 update-card 搭配使用。发送卡片后,使用返回的 bizId 调用 update-card 更新内容,\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。" }, "effect": { "candidates": [ @@ -158132,22 +156406,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_and_send_card" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建并推送流式卡片" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_and_send_card" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_and_send_card" + "source": "cobra_help", + "value": "创建并推送流式卡片" }, "use_when": { "candidates": [ @@ -158408,7 +156682,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_and_send_card", + "title": "创建并推送流式卡片", "use_when": [ "需要卡片式交互且已准备接收会话或用户时" ] @@ -158437,7 +156711,7 @@ "cli_name": "create", "cli_path": "chat group create", "confirmation": "not_required", - "description": "创建一个群聊,支持指定群名称、初始成员列表等参数。可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈。默认为内部群。当选择内部群时如果所选成员非组织内成员会创建失败,创建成功后会返回。", + "description": "创建一个群聊,支持指定群名称、初始成员列表等参数。\n可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈等多种类型群。\n默认创建内部群。当选择内部群时如果所选成员非组织内成员会创建失败。", "display": "群聊 / 消息 / 机器人", "effect": "write", "effect_source": "command-verb", @@ -158536,22 +156810,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建一个群聊,支持指定群名称、初始成员列表等参数。可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈。默认为内部群。当选择内部群时如果所选成员非组织内成员会创建失败,创建成功后会返回。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个群聊,支持指定群名称、初始成员列表等参数。\n可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈等多种类型群。\n默认创建内部群。当选择内部群时如果所选成员非组织内成员会创建失败。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建一个群聊,支持指定群名称、初始成员列表等参数。可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈。默认为内部群。当选择内部群时如果所选成员非组织内成员会创建失败,创建成功后会返回。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建一个群聊,支持指定群名称、初始成员列表等参数。可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈。默认为内部群。当选择内部群时如果所选成员非组织内成员会创建失败,创建成功后会返回。" + "source": "cobra_help", + "value": "创建一个群聊,支持指定群名称、初始成员列表等参数。\n可选择内部群/外部群/普通群/内部话题圈/外部话题圈/普通话题圈等多种类型群。\n默认创建内部群。当选择内部群时如果所选成员非组织内成员会创建失败。" }, "effect": { "candidates": [ @@ -158698,22 +156972,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_group_conversation" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建群(支持内部群/外部群/普通群/话题圈)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_group_conversation" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_group_conversation" + "source": "cobra_help", + "value": "创建群(支持内部群/外部群/普通群/话题圈)" }, "use_when": { "candidates": [ @@ -158775,6 +157049,12 @@ "source": "cobra_usage", "value": "群名称 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "groupName" + }, { "precedence": "default", "selected": false, @@ -158790,16 +157070,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "groupName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "groupName" }, "required": { "candidates": [ @@ -158809,6 +157095,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -158856,7 +157148,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "groupName", + "property": "groupName", "required": true, "type": "string" }, @@ -158871,6 +157164,12 @@ "source": "cobra_usage", "value": "开启话题模式,将创建话题圈" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "convThreadEnabled" + }, { "precedence": "default", "selected": false, @@ -158886,16 +157185,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "convThreadEnabled" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "thread" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "thread" + "source": "versioned_parameter_binding", + "value": "convThreadEnabled" }, "required": { "candidates": [ @@ -158940,7 +157245,8 @@ "value": "boolean" } }, - "property": "thread", + "interface_description": "convThreadEnabled", + "property": "convThreadEnabled", "required": false, "type": "boolean" }, @@ -158956,6 +157262,12 @@ "source": "cobra_usage", "value": "群类型: INTERNAL(内部群,默认)/EXTERNAL(外部群)/NORMAL(普通群)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "groupType" + }, { "precedence": "default", "selected": false, @@ -158971,16 +157283,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "groupType" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "source": "versioned_parameter_binding", + "value": "groupType" }, "required": { "candidates": [ @@ -158990,6 +157308,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -159031,7 +157355,8 @@ "value": "string" } }, - "property": "type", + "interface_description": "groupType", + "property": "groupType", "required": false, "type": "string" }, @@ -159061,6 +157386,12 @@ "source": "cobra_usage", "value": "成员 userId 或 openDingTalkId(可混传),逗号分隔 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "groupMembers" + }, { "precedence": "default", "selected": false, @@ -159073,19 +157404,45 @@ "source": "cobra_usage", "value": "成员 userId 或 openDingTalkId(可混传),逗号分隔 (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "groupMembers" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "groupMembers" }, "required": { "candidates": [ @@ -159095,6 +157452,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -159142,7 +157505,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "groupMembers", + "interface_type": "array", + "property": "groupMembers", "required": true, "type": "string" } @@ -159153,7 +157518,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_group_conversation", + "title": "创建群(支持内部群/外部群/普通群/话题圈)", "use_when": [ "用户明确要新建群聊或话题圈时" ] @@ -159182,9 +157547,6 @@ "confirmation": "not_required", "description": "创建智能会话分组,可指定群名称关键词和群内成员 openDingTalkId 作为匹配规则。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -159211,7 +157573,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -159219,7 +157581,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -159284,39 +157646,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建智能会话分组,可指定群名称关键词和群内成员 openDingTalkId 作为匹配规则。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建智能会话分组,可指定群名称关键词和群内成员 openDingTalkId 作为匹配规则。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -159369,39 +157709,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -159418,7 +157758,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -159437,13 +157777,6 @@ "selected": false, "source": "internal/cli/schema_hints/selection-review.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -159469,13 +157802,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建智能会话分组" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建智能会话分组" @@ -159504,8 +157837,8 @@ "group": "category", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "create_smart_conv_category", "parameter_count": 3, @@ -159941,11 +158274,8 @@ "cli_name": "create-text-emotion", "cli_path": "chat message create-text-emotion", "confirmation": "not_required", - "description": "创建文字表情", + "description": "创建一个新的文字表情模板。当内置表情(见 chat-emoji-list.md)中没有所需表情时,使用此命令创建并获取 emotionId,随后可用于 add-text-emotion。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -160043,44 +158373,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个新的文字表情模板。当内置表情(见 chat-emoji-list.md)中没有所需表情时,使用此命令创建并获取 emotionId,随后可用于 add-text-emotion。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建文字表情" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建文字表情" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一个新的文字表情模板。当内置表情(见 chat-emoji-list.md)中没有所需表情时,使用此命令创建并获取 emotionId,随后可用于 add-text-emotion。" }, "effect": { "candidates": [ @@ -160219,22 +158527,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文字表情(获取 emotionId)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建文字表情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建文字表情" + "source": "cobra_help", + "value": "创建文字表情(获取 emotionId)" }, "use_when": { "candidates": [ @@ -160296,16 +158604,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Runtime extension: the executable helper forwards backgroundId to im/create_text_emotion, but the pinned source-revision metadata does not declare that optional property; preserve the compatibility flag without advertising it as a pinned RPC field.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "backgroundId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "backgroundId" + "review_reason": "Runtime extension: the executable helper forwards backgroundId to im/create_text_emotion, but the pinned source-revision metadata does not declare that optional property; preserve the compatibility flag without advertising it as a pinned RPC field.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -160356,7 +158672,6 @@ "value": "string" } }, - "property": "backgroundId", "required": false, "type": "string" }, @@ -160615,7 +158930,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建文字表情", + "title": "创建文字表情(获取 emotionId)", "use_when": [ "需要定义新的文字表情资源时" ] @@ -160627,6 +158942,7 @@ "internal/cli/schema_command_registry.json#chat.dismiss_group", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.chat.dismiss_group", "skills/mono/SKILL.md", @@ -160642,14 +158958,11 @@ "canonical_path": "chat.dismiss_group", "cli_name": "dismiss", "cli_path": "chat group dismiss", - "confirmation": "not_required", - "description": "解散群聊", + "confirmation": "user_required", + "description": "解散指定群聊。该操作不可逆,需要群主权限;必须先获得用户确认,再追加 --yes 执行。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", - "effect_source": "command-verb", + "effect": "destructive", + "effect_source": "agent-hint", "examples": [ "dws chat group dismiss --group \u003copenConversationId\u003e" ], @@ -160731,72 +159044,66 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "解散群聊" + "source": "cobra_help", + "value": "解散指定群聊。该操作不可逆,需要群主权限;必须先获得用户确认,再追加 --yes 执行。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", - "value": "解散指定群聊。该操作不可逆,需要群主权限。" + "source": "mcp_metadata", + "value": "解散群聊" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "解散群聊" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "source": "cobra_help", + "value": "解散指定群聊。该操作不可逆,需要群主权限;必须先获得用户确认,再追加 --yes 执行。" }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "write" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", - "value": "write" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" }, "examples": { "candidates": [ @@ -160821,15 +159128,23 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { @@ -160896,6 +159211,13 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true } ], "precedence": "reviewed_manual", @@ -160907,35 +159229,43 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", - "value": "medium" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" }, "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "解散群聊" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "解散群聊" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "解散群聊" }, "use_when": { @@ -161107,7 +159437,7 @@ "primary_cli_path": "chat group dismiss", "product_id": "chat", "reviewed": true, - "risk": "medium", + "risk": "high", "source": "reviewed_command_registry", "title": "解散群聊", "use_when": [ @@ -161232,13 +159562,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "下载聊天消息中的图片、视频、语音等资源到本地文件。\n\n流程:\n 1. 根据 resourceType + resource-id + message-id + open-conversation-id 向服务端获取下载 URL\n 2. HTTP GET 下载文件到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。默认保存到当前目录。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "下载聊天消息中的图片、视频、语音等资源到本地文件。\n\n流程:\n 1. 根据 resourceType + resource-id + message-id + open-conversation-id 向服务端获取下载 URL\n 2. HTTP GET 下载文件到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。默认保存到当前目录。" @@ -161401,13 +159731,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "下载消息中的资源(图片/视频/语音等)到本地" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "下载消息中的资源(图片/视频/语音等)到本地" @@ -162059,11 +160389,8 @@ "cli_name": "forward", "cli_path": "chat message forward", "confirmation": "not_required", - "description": "单条消息转发", + "description": "将一条消息从源会话转发到目标会话。需要指定源会话 ID、源消息 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -162161,44 +160488,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "单条消息转发" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将一条消息从源会话转发到目标会话。需要指定源会话 ID、源消息 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "单条消息转发" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单条消息转发" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将一条消息从源会话转发到目标会话。需要指定源会话 ID、源消息 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" }, "effect": { "candidates": [ @@ -162337,22 +160642,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "单条消息转发" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转发单条消息(源/目标会话均支持单聊/群聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单条消息转发" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "单条消息转发" + "source": "cobra_help", + "value": "转发单条消息(源/目标会话均支持单聊/群聊)" }, "use_when": { "candidates": [ @@ -162876,7 +161181,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "单条消息转发", + "title": "转发单条消息(源/目标会话均支持单聊/群聊)", "use_when": [ "已知源消息与源、目标会话 ID 时" ] @@ -162904,11 +161209,8 @@ "cli_name": "forward-topic", "cli_path": "chat message forward-topic", "confirmation": "not_required", - "description": "转发某个话题到其他会话", + "description": "将一条话题消息从源会话转发到目标会话。需要指定源消息 ID、源会话 ID、话题 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)\n\n话题 ID(srcOpenConvThreadId)格式为 \"convThread\" + 加密后的 convThreadId,\n可通过 dws chat message list 返回的话题信息获取。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -163006,44 +161308,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "转发某个话题到其他会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将一条话题消息从源会话转发到目标会话。需要指定源消息 ID、源会话 ID、话题 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)\n\n话题 ID(srcOpenConvThreadId)格式为 \"convThread\" + 加密后的 convThreadId,\n可通过 dws chat message list 返回的话题信息获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "转发某个话题到其他会话" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "转发某个话题到其他会话" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将一条话题消息从源会话转发到目标会话。需要指定源消息 ID、源会话 ID、话题 ID、目标会话 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)\n\n话题 ID(srcOpenConvThreadId)格式为 \"convThread\" + 加密后的 convThreadId,\n可通过 dws chat message list 返回的话题信息获取。" }, "effect": { "candidates": [ @@ -163182,22 +161462,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "转发某个话题到其他会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转发话题消息到目标会话" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "转发某个话题到其他会话" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "转发某个话题到其他会话" + "source": "cobra_help", + "value": "转发话题消息到目标会话" }, "use_when": { "candidates": [ @@ -163760,7 +162040,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "转发某个话题到其他会话", + "title": "转发话题消息到目标会话", "use_when": [ "需要转发话题圈中的主题及上下文时" ] @@ -163790,9 +162070,6 @@ "confirmation": "not_required", "description": "根据群号获取群聊信息", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -163890,45 +162167,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "根据群号获取群聊信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "根据群号获取群聊信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "根据群号获取群聊信息" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -164066,21 +162321,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "根据群号获取群聊信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "根据群号获取群聊信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "根据群号获取群聊信息" }, "use_when": { @@ -164311,11 +162566,8 @@ ] ] }, - "description": "获取会话的基础信息", + "description": "获取指定会话的基础信息。\n发送本地文件消息请优先使用 dws chat message send --msg-type file --file-path \u003c本地文件\u003e,CLI 不再要求调用方获取或传递 spaceId。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -164413,44 +162665,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取会话的基础信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定会话的基础信息。\n发送本地文件消息请优先使用 dws chat message send --msg-type file --file-path \u003c本地文件\u003e,CLI 不再要求调用方获取或传递 spaceId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取会话的基础信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取会话的基础信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定会话的基础信息。\n发送本地文件消息请优先使用 dws chat message send --msg-type file --file-path \u003c本地文件\u003e,CLI 不再要求调用方获取或传递 spaceId。" }, "effect": { "candidates": [ @@ -164589,22 +162819,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_conversation_info" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取会话基础信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_conversation_info" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_conversation_info" + "source": "cobra_help", + "value": "获取会话基础信息" }, "use_when": { "candidates": [ @@ -164856,6 +163086,12 @@ "source": "cobra_usage", "value": "单聊对方 userId(单聊时使用)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "openDingTalkId" + }, { "precedence": "default", "selected": false, @@ -164871,16 +163107,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openDingTalkId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "source": "versioned_parameter_binding", + "value": "openDingTalkId" }, "required": { "candidates": [ @@ -164931,7 +163173,8 @@ "value": "string" } }, - "property": "user", + "interface_description": "openDingTalkId", + "property": "openDingTalkId", "required": false, "type": "string" } @@ -164942,7 +163185,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_conversation_info", + "title": "获取会话基础信息", "use_when": [ "已知群 ID 或用户标识并需要解析会话详情时" ] @@ -164969,11 +163212,8 @@ "cli_name": "invite-url", "cli_path": "chat group invite-url", "confirmation": "not_required", - "description": "获取群邀请链接", + "description": "获取群聊邀请链接。可选 --expires-seconds 指定链接有效期(秒),0 表示永久有效,不传则使用服务端默认值。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -165071,44 +163311,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取群邀请链接" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取群聊邀请链接。可选 --expires-seconds 指定链接有效期(秒),0 表示永久有效,不传则使用服务端默认值。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取群邀请链接" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取群邀请链接" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取群聊邀请链接。可选 --expires-seconds 指定链接有效期(秒),0 表示永久有效,不传则使用服务端默认值。" }, "effect": { "candidates": [ @@ -165247,21 +163465,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取群邀请链接" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取群邀请链接" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取群邀请链接" }, "use_when": { @@ -165597,11 +163815,8 @@ ] ] }, - "description": "拉取指定群聊的会话消息内容", + "description": "拉取指定群聊或单聊的会话消息内容。--group 指定群聊,--user 指定单聊用户(userId),--open-dingtalk-id 指定单聊用户(openDingTalkId),三者互斥。推荐使用 --direction newer/older 控制时间方向:newer 表示从给定时间往现在拉,older 表示从给定时间往以前拉。hasMore=true 时用结果中的边界 createTime 作为下次 --time 翻页。如果返回的会话消息中包含 openConvThreadId 字段,说明是话题消息,可以调用 dws chat message list-topic-replies 拉取话题回复消息列表,openConvThreadId 作为 topic-id 参数。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -165699,44 +163914,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取指定群聊的会话消息内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定群聊或单聊的会话消息内容。--group 指定群聊,--user 指定单聊用户(userId),--open-dingtalk-id 指定单聊用户(openDingTalkId),三者互斥。推荐使用 --direction newer/older 控制时间方向:newer 表示从给定时间往现在拉,older 表示从给定时间往以前拉。hasMore=true 时用结果中的边界 createTime 作为下次 --time 翻页。如果返回的会话消息中包含 openConvThreadId 字段,说明是话题消息,可以调用 dws chat message list-topic-replies 拉取话题回复消息列表,openConvThreadId 作为 topic-id 参数。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取指定群聊的会话消息内容" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取指定群聊的会话消息内容" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取指定群聊或单聊的会话消息内容。--group 指定群聊,--user 指定单聊用户(userId),--open-dingtalk-id 指定单聊用户(openDingTalkId),三者互斥。推荐使用 --direction newer/older 控制时间方向:newer 表示从给定时间往现在拉,older 表示从给定时间往以前拉。hasMore=true 时用结果中的边界 createTime 作为下次 --time 翻页。如果返回的会话消息中包含 openConvThreadId 字段,说明是话题消息,可以调用 dws chat message list-topic-replies 拉取话题回复消息列表,openConvThreadId 作为 topic-id 参数。" }, "effect": { "candidates": [ @@ -165875,22 +164068,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_conversation_message_v2" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取会话消息内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_conversation_message_v2" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_conversation_message_v2" + "source": "cobra_help", + "value": "拉取会话消息内容" }, "use_when": { "candidates": [ @@ -165937,6 +164130,12 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉(推荐)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "方向,true是从老往新,false是新往老拉" + }, { "precedence": "default", "selected": false, @@ -165949,33 +164148,65 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉(推荐)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "boolean" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "boolean" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "forward" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "direction" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "direction" + "source": "versioned_parameter_binding", + "value": "forward" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", - "value": false + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": true }, "required_when": { "candidates": [ @@ -166006,8 +164237,10 @@ "value": "string" } }, - "property": "direction", - "required": false, + "interface_description": "方向,true是从老往新,false是新往老拉", + "interface_type": "boolean", + "property": "forward", + "required": true, "type": "string" }, "group": { @@ -166257,16 +164490,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "selects the alternate list_individual_chat_message branch", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openDingtalkId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openDingtalkId" + "review_reason": "selects the alternate list_individual_chat_message branch", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -166317,7 +164558,6 @@ "value": "string" } }, - "property": "openDingtalkId", "required": false, "type": "string" }, @@ -166450,16 +164690,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "selects the alternate list_individual_chat_message branch", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "selects the alternate list_individual_chat_message branch", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -166510,7 +164758,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" } @@ -166521,7 +164768,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_conversation_message_v2", + "title": "拉取会话消息内容", "use_when": [ "用户明确指定某个会话并要查看其消息记录时" ] @@ -166549,11 +164796,8 @@ "cli_name": "list-conversations", "cli_path": "chat category list-conversations", "confirmation": "not_required", - "description": "拉取用户指定自定义会话分组下的会话", + "description": "拉取指定自定义会话分组下的会话", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -166651,44 +164895,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取用户指定自定义会话分组下的会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定自定义会话分组下的会话" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取用户指定自定义会话分组下的会话" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取用户指定自定义会话分组下的会话" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取指定自定义会话分组下的会话" }, "effect": { "candidates": [ @@ -166827,22 +165049,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_conversations_by_category" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定自定义会话分组下的会话" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_conversations_by_category" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_conversations_by_category" + "source": "cobra_help", + "value": "拉取指定自定义会话分组下的会话" }, "use_when": { "candidates": [ @@ -167127,7 +165349,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_conversations_by_category", + "title": "拉取指定自定义会话分组下的会话", "use_when": [ "已知分组 ID 并需要查看其中会话时" ] @@ -167154,11 +165376,8 @@ "cli_name": "list", "cli_path": "chat group-role list", "confirmation": "not_required", - "description": "拉取会话的群身份", + "description": "拉取会话的群身份列表", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -167256,44 +165475,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取会话的群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取会话的群身份列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取会话的群身份" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取会话的群身份" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取会话的群身份列表" }, "effect": { "candidates": [ @@ -167432,22 +165629,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取会话的群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取会话的群身份列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取会话的群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取会话的群身份" + "source": "cobra_help", + "value": "拉取会话的群身份列表" }, "use_when": { "candidates": [ @@ -167620,7 +165817,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "拉取会话的群身份", + "title": "拉取会话的群身份列表", "use_when": [ "需要取得角色 ID 或查看角色定义时" ] @@ -167649,11 +165846,8 @@ "cli_name": "bots", "cli_path": "chat group bots", "confirmation": "not_required", - "description": "获取群内所有机器人", + "description": "获取指定群聊中的所有机器人列表。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -167751,44 +165945,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取群内所有机器人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定群聊中的所有机器人列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取群内所有机器人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取群内所有机器人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定群聊中的所有机器人列表。" }, "effect": { "candidates": [ @@ -167935,22 +166107,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_group_bots" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看群内所有机器人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_group_bots" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_group_bots" + "source": "cobra_help", + "value": "查看群内所有机器人" }, "use_when": { "candidates": [ @@ -168012,6 +166184,12 @@ "source": "cobra_usage", "value": "群聊 openConversationId (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "openConversationId" + }, { "precedence": "default", "selected": false, @@ -168027,16 +166205,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openConversationId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "group" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "group" + "source": "versioned_parameter_binding", + "value": "openConversationId" }, "required": { "candidates": [ @@ -168046,6 +166230,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -168093,7 +166283,8 @@ "value": "string" } }, - "property": "group", + "interface_description": "openConversationId", + "property": "openConversationId", "required": true, "type": "string" } @@ -168104,7 +166295,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_group_bots", + "title": "查看群内所有机器人", "use_when": [ "需要核对群内机器人或取得 openBotId 时" ] @@ -168145,11 +166336,8 @@ ] ] }, - "description": "拉取指定用户的单聊会话消息内容", + "description": "按对方 userId 或 openDingTalkId 拉取单聊会话消息。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -168247,44 +166435,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取指定用户的单聊会话消息内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按对方 userId 或 openDingTalkId 拉取单聊会话消息。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取指定用户的单聊会话消息内容" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取指定用户的单聊会话消息内容" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按对方 userId 或 openDingTalkId 拉取单聊会话消息。" }, "effect": { "candidates": [ @@ -168423,22 +166589,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_individual_chat_message" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取单聊会话消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_individual_chat_message" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_individual_chat_message" + "source": "cobra_help", + "value": "拉取单聊会话消息" }, "use_when": { "candidates": [ @@ -168485,6 +166651,12 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "方向,true是从老往新,false是新往老拉" + }, { "precedence": "default", "selected": false, @@ -168497,33 +166669,65 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "boolean" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "boolean" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "forward" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "direction" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "direction" + "source": "versioned_parameter_binding", + "value": "forward" }, "required": { "candidates": [ { - "precedence": "default", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": false } ], - "precedence": "default", - "resolution": "fallback", - "source": "default", - "value": false + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": true }, "required_when": { "candidates": [ @@ -168554,8 +166758,10 @@ "value": "string" } }, - "property": "direction", - "required": false, + "interface_description": "方向,true是从老往新,false是新往老拉", + "interface_type": "boolean", + "property": "forward", + "required": true, "type": "string" }, "limit": { @@ -168993,7 +167199,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_individual_chat_message", + "title": "拉取单聊会话消息", "use_when": [ "用户明确要求查看和某人的一对一聊天时" ] @@ -169019,9 +167225,6 @@ "confirmation": "not_required", "description": "查询当前用户收藏的消息列表,支持数字游标分页。\n\n首次请求可省略分页参数,CLI 会按 Open 服务契约传 cursor=0、size=\"20\"。\n返回 hasMore=true 时,将 nextCursor 作为下一次的 --cursor。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -169048,7 +167251,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -169056,7 +167259,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -169121,39 +167324,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询当前用户收藏的消息列表,支持数字游标分页。\n\n首次请求可省略分页参数,CLI 会按 Open 服务契约传 cursor=0、size=\"20\"。\n返回 hasMore=true 时,将 nextCursor 作为下一次的 --cursor。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询当前用户收藏的消息列表,支持数字游标分页。\n\n首次请求可省略分页参数,CLI 会按 Open 服务契约传 cursor=0、size=\"20\"。\n返回 hasMore=true 时,将 nextCursor 作为下一次的 --cursor。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -169206,39 +167387,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -169246,7 +167427,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -169258,13 +167439,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -169290,13 +167464,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询收藏的消息列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询收藏的消息列表" @@ -169325,8 +167499,8 @@ "group": "message", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_message_favorites", "parameter_count": 2, @@ -169357,16 +167531,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -169417,7 +167599,6 @@ "value": "integer" } }, - "property": "cursor", "required": false, "type": "integer" }, @@ -169470,16 +167651,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --size is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "size" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "size" + "review_reason": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --size is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -169531,7 +167720,6 @@ } }, "interface_type": "string", - "property": "size", "required": false, "type": "integer" } @@ -169569,11 +167757,8 @@ "cli_name": "list-by-ids", "cli_path": "chat message list-by-ids", "confirmation": "not_required", - "description": "批量查消息", + "description": "根据消息 ID 批量查询消息", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -169671,44 +167856,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量查消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据消息 ID 批量查询消息" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量查消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量查消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据消息 ID 批量查询消息" }, "effect": { "candidates": [ @@ -169847,22 +168010,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量查消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据消息 ID 批量查询消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量查消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量查消息" + "source": "cobra_help", + "value": "根据消息 ID 批量查询消息" }, "use_when": { "candidates": [ @@ -170056,7 +168219,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "批量查消息", + "title": "根据消息 ID 批量查询消息", "use_when": [ "已经持有一组 msgId 并需要精确取回消息时" ] @@ -170084,15 +168247,12 @@ "cli_name": "list-my-groups", "cli_path": "chat group list-my-groups", "confirmation": "not_required", - "description": "拉取我创建/管理的群", + "description": "拉取当前用户作为群主或管理员的群列表。\n可通过 --role 过滤角色:OWNER 仅群主、ADMIN 仅管理员,不传则返回全部。\n可通过 --limit 限制返回数量,不传则返回所有符合条件的群。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ], "field_provenance": { "agent_summary": { @@ -170161,6 +168321,14 @@ "source": "reviewed_command_registry", "source_ref": "chat group list-my-groups", "value": "chat.list_owned_or_admin_groups" + }, + { + "precedence": "reviewed_manual", + "review_reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", + "selected": false, + "source": "reviewed_manual_hint", + "source_ref": "chat group list-my-groups", + "value": "chat.list_owned_or_admin_groups" } ], "precedence": "command_registry", @@ -170186,44 +168354,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取我创建/管理的群" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取当前用户作为群主或管理员的群列表。\n可通过 --role 过滤角色:OWNER 仅群主、ADMIN 仅管理员,不传则返回全部。\n可通过 --limit 限制返回数量,不传则返回所有符合条件的群。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取我创建/管理的群" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取我创建/管理的群" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取当前用户作为群主或管理员的群列表。\n可通过 --role 过滤角色:OWNER 仅群主、ADMIN 仅管理员,不传则返回全部。\n可通过 --limit 限制返回数量,不传则返回所有符合条件的群。" }, "effect": { "candidates": [ @@ -170247,7 +168393,7 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ] } ], @@ -170256,7 +168402,7 @@ "review_reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ] }, "idempotency": { @@ -170362,21 +168508,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "拉取我创建/管理的群" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "拉取我创建/管理的群" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "拉取我创建/管理的群" }, "use_when": { @@ -170576,8 +168722,15 @@ "required": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "reviewed_manual", + "review_reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "mcp_metadata", + "selected": false, "source": "mcp_metadata", "value": true }, @@ -170588,10 +168741,11 @@ "value": false } ], - "precedence": "mcp_metadata", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": true + "review_reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -170625,11 +168779,15 @@ "interface_description": "limit", "interface_type": "number", "property": "limit", - "required": true, + "required": false, "type": "integer" }, "role": { "description": "角色过滤: OWNER(仅群主) / ADMIN(仅管理员),不传返回全部", + "enum": [ + "OWNER", + "ADMIN" + ], "field_provenance": { "description": { "candidates": [ @@ -170657,6 +168815,32 @@ "source": "cobra_usage", "value": "角色过滤: OWNER(仅群主) / ADMIN(仅管理员),不传返回全部" }, + "enum": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": [ + "OWNER", + "ADMIN" + ] + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": [] + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": [ + "OWNER", + "ADMIN" + ] + }, "property": { "candidates": [ { @@ -170680,8 +168864,15 @@ "required": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "reviewed_manual", + "review_reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", "selected": true, + "source": "reviewed_manual_hint", + "value": false + }, + { + "precedence": "mcp_metadata", + "selected": false, "source": "mcp_metadata", "value": true }, @@ -170692,10 +168883,11 @@ "value": false } ], - "precedence": "mcp_metadata", + "precedence": "reviewed_manual", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": true + "review_reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", + "source": "reviewed_manual_hint", + "value": false }, "required_when": { "candidates": [ @@ -170728,7 +168920,7 @@ }, "interface_description": "roleFilter", "property": "roleFilter", - "required": true, + "required": false, "type": "string" } }, @@ -170766,11 +168958,8 @@ "cli_name": "list-pin-msg", "cli_path": "chat message list-pin-msg", "confirmation": "not_required", - "description": "拉取会话中钉住的(pin)消息列表", + "description": "拉取指定会话中被钉住的消息列表,支持游标分页。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -170868,44 +169057,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取会话中钉住的(pin)消息列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定会话中被钉住的消息列表,支持游标分页。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取会话中钉住的(pin)消息列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取会话中钉住的(pin)消息列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取指定会话中被钉住的消息列表,支持游标分页。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" }, "effect": { "candidates": [ @@ -171044,21 +169211,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "拉取会话中钉住的消息列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "拉取会话中钉住的消息列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "拉取会话中钉住的消息列表" }, "use_when": { @@ -171470,11 +169637,8 @@ "cli_name": "list-focused", "cli_path": "chat message list-focused", "confirmation": "not_required", - "description": "拉特别关注人的消息", + "description": "拉取当前用户特别关注人的消息。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -171572,44 +169736,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉特别关注人的消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取当前用户特别关注人的消息。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉特别关注人的消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉特别关注人的消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取当前用户特别关注人的消息。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -171754,22 +169896,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_special_focus_messages" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取特别关注人的消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_special_focus_messages" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_special_focus_messages" + "source": "cobra_help", + "value": "拉取特别关注人的消息" }, "use_when": { "candidates": [ @@ -172049,7 +170191,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_special_focus_messages", + "title": "拉取特别关注人的消息", "use_when": [ "需要查看特别关注或重点消息列表时" ] @@ -172076,11 +170218,8 @@ "cli_name": "list-top-conversations", "cli_path": "chat list-top-conversations", "confirmation": "not_required", - "description": "拉取用户的置顶会话", + "description": "拉取当前用户的置顶会话列表。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -172178,44 +170317,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "拉取用户的置顶会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取当前用户的置顶会话列表。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "拉取用户的置顶会话" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取用户的置顶会话" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拉取当前用户的置顶会话列表。分页参数 --limit 指定每页数量,--cursor 传分页游标(首次不传或传 0)。返回结果中 hasMore=true 时用 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -172354,22 +170471,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_top_conversations" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取置顶会话列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_top_conversations" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_top_conversations" + "source": "cobra_help", + "value": "拉取置顶会话列表" }, "use_when": { "candidates": [ @@ -172739,7 +170856,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_top_conversations", + "title": "拉取置顶会话列表", "use_when": [ "需要查看现有置顶会话清单时" ] @@ -172768,11 +170885,8 @@ "cli_name": "list-topic-replies", "cli_path": "chat message list-topic-replies", "confirmation": "not_required", - "description": "针对话题群中的单个话题,分页拉取话题的回复消息", + "description": "查询指定群聊中某条话题消息的全部回复。--group 指定群会话 ID,--topic-id 指定话题 ID(由 dws chat message list 返回)。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -172870,44 +170984,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "针对话题群中的单个话题,分页拉取话题的回复消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定群聊中某条话题消息的全部回复。--group 指定群会话 ID,--topic-id 指定话题 ID(由 dws chat message list 返回)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "针对话题群中的单个话题,分页拉取话题的回复消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "针对话题群中的单个话题,分页拉取话题的回复消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定群聊中某条话题消息的全部回复。--group 指定群会话 ID,--topic-id 指定话题 ID(由 dws chat message list 返回)。" }, "effect": { "candidates": [ @@ -173052,22 +171144,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_topic_replies" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取群话题回复消息列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_topic_replies" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_topic_replies" + "source": "cobra_help", + "value": "拉取群话题回复消息列表" }, "use_when": { "candidates": [ @@ -173114,6 +171206,12 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉(推荐,默认 older)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "true是从老往新,false是新往老拉" + }, { "precedence": "default", "selected": false, @@ -173126,19 +171224,45 @@ "source": "cobra_usage", "value": "时间方向: newer=从给定时间往现在拉,older=从给定时间往以前拉(推荐,默认 older)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "boolean" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "boolean" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "forward" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "direction" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "direction" + "source": "versioned_parameter_binding", + "value": "forward" }, "required": { "candidates": [ @@ -173189,7 +171313,9 @@ "value": "string" } }, - "property": "direction", + "interface_description": "true是从老往新,false是新往老拉", + "interface_type": "boolean", + "property": "forward", "required": false, "type": "string" }, @@ -173676,7 +171802,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_topic_replies", + "title": "拉取群话题回复消息列表", "use_when": [ "已知话题 ID 并需要查看回复串时" ] @@ -173706,9 +171832,6 @@ "confirmation": "not_required", "description": "获取用户自定义会话分组", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -173806,45 +171929,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取用户自定义会话分组" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取用户自定义会话分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取用户自定义会话分组" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -173982,21 +172083,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取用户自定义会话分组" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取用户自定义会话分组" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取用户自定义会话分组" }, "use_when": { @@ -174066,11 +172167,8 @@ "cli_name": "query-user", "cli_path": "chat group-role query-user", "confirmation": "not_required", - "description": "根据用户提供的群和成员为在群里查询成员的群身份", + "description": "查询群成员的群身份", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -174168,44 +172266,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据用户提供的群和成员为在群里查询成员的群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询群成员的群身份" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据用户提供的群和成员为在群里查询成员的群身份" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据用户提供的群和成员为在群里查询成员的群身份" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询群成员的群身份" }, "effect": { "candidates": [ @@ -174344,21 +172420,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询群成员的群身份" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "查询群成员的群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询群成员的群身份" }, "use_when": { @@ -174663,11 +172739,8 @@ "cli_name": "query-send-status", "cli_path": "chat message query-send-status", "confirmation": "not_required", - "description": "查询以当前用户的身份发送的消息的发送状态", + "description": "查询以当前用户身份发送的消息的发送状态。需要传入发送消息时返回的 openTaskId。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -174765,44 +172838,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询以当前用户的身份发送的消息的发送状态" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询以当前用户身份发送的消息的发送状态。需要传入发送消息时返回的 openTaskId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询以当前用户的身份发送的消息的发送状态" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询以当前用户的身份发送的消息的发送状态" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询以当前用户身份发送的消息的发送状态。需要传入发送消息时返回的 openTaskId。" }, "effect": { "candidates": [ @@ -174941,22 +172992,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询以当前用户的身份发送的消息的发送状态" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询消息发送状态" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询以当前用户的身份发送的消息的发送状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询以当前用户的身份发送的消息的发送状态" + "source": "cobra_help", + "value": "查询消息发送状态" }, "use_when": { "candidates": [ @@ -175123,7 +173174,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询以当前用户的身份发送的消息的发送状态", + "title": "查询消息发送状态", "use_when": [ "发送命令返回 openTaskId 后需要确认投递结果时" ] @@ -175151,11 +173202,8 @@ "cli_name": "read-status", "cli_path": "chat message read-status", "confirmation": "not_required", - "description": "查询消息的已读/未读状态", + "description": "查询指定会话中消息的已读/未读状态(仅消息发送者可查询自己发出的消息)。--conversation-id 指定会话 openConversationId(群聊或单聊均可),--message-id 指定消息 ID(由 dws chat message list 返回的 openMessageId,必须是当前用户发送的消息)。目标用户 userId 使用 --user/--users;目标用户 openDingTalkId 使用 --target-open-dingtalk-ids;不传目标用户则返回所有接收者的状态。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -175253,44 +173301,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询消息的已读/未读状态" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定会话中消息的已读/未读状态(仅消息发送者可查询自己发出的消息)。--conversation-id 指定会话 openConversationId(群聊或单聊均可),--message-id 指定消息 ID(由 dws chat message list 返回的 openMessageId,必须是当前用户发送的消息)。目标用户 userId 使用 --user/--users;目标用户 openDingTalkId 使用 --target-open-dingtalk-ids;不传目标用户则返回所有接收者的状态。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询消息的已读/未读状态" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询消息的已读/未读状态" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定会话中消息的已读/未读状态(仅消息发送者可查询自己发出的消息)。--conversation-id 指定会话 openConversationId(群聊或单聊均可),--message-id 指定消息 ID(由 dws chat message list 返回的 openMessageId,必须是当前用户发送的消息)。目标用户 userId 使用 --user/--users;目标用户 openDingTalkId 使用 --target-open-dingtalk-ids;不传目标用户则返回所有接收者的状态。" }, "effect": { "candidates": [ @@ -175429,21 +173455,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询消息的已读/未读状态" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "查询消息的已读/未读状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询消息的已读/未读状态" }, "use_when": { @@ -175884,16 +173910,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -175938,7 +173972,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" }, @@ -175968,16 +174001,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -176022,7 +174063,6 @@ "value": "string" } }, - "property": "users", "required": false, "type": "string" } @@ -176061,11 +174101,8 @@ "cli_name": "quit", "cli_path": "chat group quit", "confirmation": "not_required", - "description": "用户退群", + "description": "当前用户退出指定群聊。退出后将无法查看群消息。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -176163,44 +174200,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用户退群" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "当前用户退出指定群聊。退出后将无法查看群消息。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用户退群" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用户退群" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "当前用户退出指定群聊。退出后将无法查看群消息。" }, "effect": { "candidates": [ @@ -176339,22 +174354,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用户退群" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "退出群聊" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用户退群" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用户退群" + "source": "cobra_help", + "value": "退出群聊" }, "use_when": { "candidates": [ @@ -176527,7 +174542,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "用户退群", + "title": "退出群聊", "use_when": [ "用户明确要求自己离开群聊时" ] @@ -176556,11 +174571,8 @@ "cli_name": "recall", "cli_path": "chat message recall", "confirmation": "user_required", - "description": "撤回用户发送的消息", + "description": "撤回当前用户发送的消息。需要指定会话 ID 和消息 ID。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -176666,44 +174678,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "撤回用户发送的消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "撤回当前用户发送的消息。需要指定会话 ID 和消息 ID。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "撤回用户发送的消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "撤回用户发送的消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "撤回当前用户发送的消息。需要指定会话 ID 和消息 ID。" }, "effect": { "candidates": [ @@ -176858,21 +174848,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "撤回用户发送的消息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "撤回用户发送的消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "撤回用户发送的消息" }, "use_when": { @@ -177179,9 +175169,6 @@ "confirmation": "user_required", "description": "群聊:传 --group 与 --keys;单聊:仅传 --keys。--keys 为发送时返回的 processQueryKey 列表,逗号分隔。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -177275,39 +175262,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "群聊:传 --group 与 --keys;单聊:仅传 --keys。--keys 为发送时返回的 processQueryKey 列表,逗号分隔。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "群聊:传 --group 与 --keys;单聊:仅传 --keys。--keys 为发送时返回的 processQueryKey 列表,逗号分隔。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -177455,13 +175420,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "机器人撤回消息(--group 群聊 / 不传为单聊)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "机器人撤回消息(--group 群聊 / 不传为单聊)" @@ -177839,9 +175804,6 @@ "confirmation": "user_required", "description": "删除群身份", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -177947,45 +175909,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除群身份" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除群身份" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -178139,21 +176079,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除群身份" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除群身份" }, "use_when": { @@ -178485,11 +176425,8 @@ "cli_name": "remove-user", "cli_path": "chat group-role remove-user", "confirmation": "user_required", - "description": "移除用户的群身份", + "description": "移除用户的指定群身份", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -178595,44 +176532,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除用户的群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除用户的指定群身份" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除用户的群身份" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除用户的群身份" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "移除用户的指定群身份" }, "effect": { "candidates": [ @@ -178787,22 +176702,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除用户的群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除用户的指定群身份" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除用户的群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除用户的群身份" + "source": "cobra_help", + "value": "移除用户的指定群身份" }, "use_when": { "candidates": [ @@ -179235,7 +177150,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "移除用户的群身份", + "title": "移除用户的指定群身份", "use_when": [ "需要保留角色定义但解除成员角色时" ] @@ -179272,11 +177187,8 @@ ] ] }, - "description": "消息删除emoji回应", + "description": "移除消息的 emoji 表情回应", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -179382,44 +177294,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "消息删除emoji回应" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除消息的 emoji 表情回应" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "消息删除emoji回应" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "消息删除emoji回应" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "移除消息的 emoji 表情回应" }, "effect": { "candidates": [ @@ -179558,22 +177448,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "消息删除emoji回应" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除消息的 emoji 表情回应" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "消息删除emoji回应" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "消息删除emoji回应" + "source": "cobra_help", + "value": "移除消息的 emoji 表情回应" }, "use_when": { "candidates": [ @@ -180322,7 +178212,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "消息删除emoji回应", + "title": "移除消息的 emoji 表情回应", "use_when": [ "需要取消此前添加的 emoji reaction 时" ] @@ -180352,7 +178242,7 @@ "cli_name": "remove", "cli_path": "chat group members remove", "confirmation": "user_required", - "description": "移除群成员", + "description": "从指定群聊中移除成员,需传入群 ID 与待移除的用户 ID 列表。", "display": "群聊 / 消息 / 机器人", "effect": "destructive", "effect_source": "skill-explicit", @@ -180453,22 +178343,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除群成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "从指定群聊中移除成员,需传入群 ID 与待移除的用户 ID 列表。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除群成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除群成员" + "source": "cobra_help", + "value": "从指定群聊中移除成员,需传入群 ID 与待移除的用户 ID 列表。" }, "effect": { "candidates": [ @@ -180617,22 +178507,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "remove_group_member" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除群成员" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "remove_group_member" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "remove_group_member" + "source": "cobra_help", + "value": "移除群成员" }, "use_when": { "candidates": [ @@ -180956,7 +178846,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "remove_group_member", + "title": "移除群成员", "use_when": [ "群管理员明确要移除一个或多个普通成员时" ] @@ -180982,9 +178872,6 @@ "confirmation": "not_required", "description": "取消收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作只移除当前用户的收藏标记,不会删除原消息。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -181011,7 +178898,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -181019,7 +178906,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -181076,39 +178963,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作只移除当前用户的收藏标记,不会删除原消息。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消收藏指定消息。消息 ID 和会话 ID 可从 chat message list 等消息查询命令的返回结果中获取。\n\n该操作只移除当前用户的收藏标记,不会删除原消息。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -181161,39 +179026,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -181201,7 +179066,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -181213,13 +179078,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -181245,13 +179103,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消收藏指定消息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消收藏指定消息" @@ -181280,8 +179138,8 @@ "group": "message", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "remove_message_favorite", "parameter_count": 2, @@ -181327,16 +179185,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openConversationId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openConversationId" + "review_reason": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -181393,7 +179259,6 @@ "value": "string" } }, - "property": "openConversationId", "required": true, "type": "string" }, @@ -181438,16 +179303,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openMessageId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openMessageId" + "review_reason": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -181504,7 +179377,6 @@ "value": "string" } }, - "property": "openMessageId", "required": true, "type": "string" } @@ -181545,11 +179417,8 @@ "cli_name": "remove-bot", "cli_path": "chat group members remove-bot", "confirmation": "user_required", - "description": "从群内移除机器人", + "description": "将指定机器人从群聊中移除。需要群管理员或群主权限。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -181655,44 +179524,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "从群内移除机器人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定机器人从群聊中移除。需要群管理员或群主权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "从群内移除机器人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "从群内移除机器人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将指定机器人从群聊中移除。需要群管理员或群主权限。" }, "effect": { "candidates": [ @@ -181855,22 +179702,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "remove_robot_in_group" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "从群内移除机器人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "remove_robot_in_group" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "remove_robot_in_group" + "source": "cobra_help", + "value": "从群内移除机器人" }, "use_when": { "candidates": [ @@ -181932,6 +179779,12 @@ "source": "cobra_usage", "value": "机器人 openBotId (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "openBotId" + }, { "precedence": "default", "selected": false, @@ -181947,16 +179800,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openBotId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "botId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "botId" + "source": "versioned_parameter_binding", + "value": "openBotId" }, "required": { "candidates": [ @@ -181966,6 +179825,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -182013,7 +179878,8 @@ "value": "string" } }, - "property": "botId", + "interface_description": "openBotId", + "property": "openBotId", "required": true, "type": "string" }, @@ -182043,6 +179909,12 @@ "source": "cobra_usage", "value": "群聊 openConversationId (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "openConversationId" + }, { "precedence": "default", "selected": false, @@ -182058,16 +179930,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openConversationId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "id" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "id" + "source": "versioned_parameter_binding", + "value": "openConversationId" }, "required": { "candidates": [ @@ -182077,6 +179955,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -182124,7 +180008,8 @@ "value": "string" } }, - "property": "id", + "interface_description": "openConversationId", + "property": "openConversationId", "required": true, "type": "string" } @@ -182135,7 +180020,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "remove_robot_in_group", + "title": "从群内移除机器人", "use_when": [ "已知群 ID 和 openBotId,需要卸载群机器人时" ] @@ -182172,11 +180057,8 @@ ] ] }, - "description": "删除文字表情", + "description": "移除消息的文字表情回应", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -182282,44 +180164,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除消息的文字表情回应" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除文字表情" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除文字表情" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "移除消息的文字表情回应" }, "effect": { "candidates": [ @@ -182458,22 +180318,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除文字表情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除消息的文字表情回应" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除文字表情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除文字表情" + "source": "cobra_help", + "value": "移除消息的文字表情回应" }, "use_when": { "candidates": [ @@ -183525,7 +181385,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "删除文字表情", + "title": "移除消息的文字表情回应", "use_when": [ "需要取消已添加的文字表情时" ] @@ -183554,7 +181414,7 @@ "cli_name": "reply", "cli_path": "chat message reply", "confirmation": "not_required", - "description": "以用户身份发消息,支持多种消息类型", + "description": "以当前用户身份引用某条消息并回复。需要指定会话 ID、被引用消息 ID、原消息发送者 openDingTalkId,以及回复内容。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (人员信息可通过 dws contact user search --keyword \"姓名\" --format json 获取)", "display": "群聊 / 消息 / 机器人", "effect": "write", "effect_source": "agent-hint", @@ -183656,22 +181516,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "以用户身份发消息,支持多种消息类型" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "以当前用户身份引用某条消息并回复。需要指定会话 ID、被引用消息 ID、原消息发送者 openDingTalkId,以及回复内容。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (人员信息可通过 dws contact user search --keyword \"姓名\" --format json 获取)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "以用户身份发消息,支持多种消息类型" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "以用户身份发消息,支持多种消息类型" + "source": "cobra_help", + "value": "以当前用户身份引用某条消息并回复。需要指定会话 ID、被引用消息 ID、原消息发送者 openDingTalkId,以及回复内容。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (人员信息可通过 dws contact user search --keyword \"姓名\" --format json 获取)" }, "effect": { "candidates": [ @@ -183865,22 +181725,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "send_personal_message" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "引用回复消息(支持单聊/群聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "send_personal_message" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "send_personal_message" + "source": "cobra_help", + "value": "引用回复消息(支持单聊/群聊)" }, "use_when": { "candidates": [ @@ -183928,6 +181788,12 @@ "source": "cobra_usage", "value": "消息是否带 AI 发送角标(默认 true)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "ai类型" + }, { "precedence": "default", "selected": false, @@ -183940,19 +181806,45 @@ "source": "cobra_usage", "value": "消息是否带 AI 发送角标(默认 true)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "string" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "boolean" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "string" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "clawType" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "aiTag" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "aiTag" + "source": "versioned_parameter_binding", + "value": "clawType" }, "required": { "candidates": [ @@ -184003,7 +181895,9 @@ "value": "boolean" } }, - "property": "aiTag", + "interface_description": "ai类型", + "interface_type": "string", + "property": "clawType", "required": false, "type": "boolean" }, @@ -184033,6 +181927,12 @@ "source": "cobra_usage", "value": "会话 openConversationId (必填,支持单聊/群聊)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群聊openConversationId,发送群聊消息时使用" + }, { "precedence": "default", "selected": false, @@ -184048,16 +181948,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openConversationId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "conversationId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "conversationId" + "source": "versioned_parameter_binding", + "value": "openConversationId" }, "required": { "candidates": [ @@ -184114,7 +182020,8 @@ "value": "string" } }, - "property": "conversationId", + "interface_description": "群聊openConversationId,发送群聊消息时使用", + "property": "openConversationId", "required": true, "type": "string" }, @@ -184159,16 +182066,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "serialized into the aggregate content JSON string", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "refMsgId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "refMsgId" + "review_reason": "serialized into the aggregate content JSON string", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -184225,7 +182140,6 @@ "value": "string" } }, - "property": "refMsgId", "required": true, "type": "string" }, @@ -184270,16 +182184,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "resolved then serialized into the aggregate content JSON string", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "refSender" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "refSender" + "review_reason": "resolved then serialized into the aggregate content JSON string", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -184336,7 +182258,6 @@ "value": "string" } }, - "property": "refSender", "required": true, "type": "string" }, @@ -184381,16 +182302,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "serialized into the aggregate content JSON string", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "text" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "text" + "review_reason": "serialized into the aggregate content JSON string", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -184447,7 +182376,6 @@ "value": "string" } }, - "property": "text", "required": true, "type": "string" }, @@ -184555,7 +182483,7 @@ "tips": [ "发送前确认引用消息、接收会话和回复内容" ], - "title": "send_personal_message", + "title": "引用回复消息(支持单聊/群聊)", "use_when": [ "用户要针对某条已有消息进行引用回复时" ] @@ -184585,11 +182513,8 @@ "cli_name": "list-mentions", "cli_path": "chat message list-mentions", "confirmation": "not_required", - "description": "搜索at自己的消息", + "description": "搜索时间范围内 @我 的消息,可选指定群聊。返回结果包含单聊和群聊标识。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -184687,44 +182612,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索at自己的消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索时间范围内 @我 的消息,可选指定群聊。返回结果包含单聊和群聊标识。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索at自己的消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索at自己的消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索时间范围内 @我 的消息,可选指定群聊。返回结果包含单聊和群聊标识。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -184869,22 +182772,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_at_me_message" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取 @我 的消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_at_me_message" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_at_me_message" + "source": "cobra_help", + "value": "拉取 @我 的消息" }, "use_when": { "candidates": [ @@ -185555,7 +183458,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_at_me_message", + "title": "拉取 @我 的消息", "use_when": [ "需要找出 @我的消息和待关注事项时" ] @@ -185584,11 +183487,8 @@ "cli_name": "find", "cli_path": "chat bot find", "confirmation": "not_required", - "description": "搜索机器人", + "description": "按关键词搜索当前用户可用的【全部】机器人(含他人创建、官方机器人),支持游标分页。\n\n如何在 find 与 search 之间选择:\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search(dws chat bot search)\n\n返回字段差异(核心区分点):\n - find 额外返回 openDingTalkId(可用于给机器人发单聊消息)\n - search 没有 openDingTalkId\n\n如果后续需要给机器人发单聊消息,必须用 find 拿 openDingTalkId。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -185686,44 +183586,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索机器人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索当前用户可用的【全部】机器人(含他人创建、官方机器人),支持游标分页。\n\n如何在 find 与 search 之间选择:\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search(dws chat bot search)\n\n返回字段差异(核心区分点):\n - find 额外返回 openDingTalkId(可用于给机器人发单聊消息)\n - search 没有 openDingTalkId\n\n如果后续需要给机器人发单聊消息,必须用 find 拿 openDingTalkId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索机器人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索机器人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按关键词搜索当前用户可用的【全部】机器人(含他人创建、官方机器人),支持游标分页。\n\n如何在 find 与 search 之间选择:\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search(dws chat bot search)\n\n返回字段差异(核心区分点):\n - find 额外返回 openDingTalkId(可用于给机器人发单聊消息)\n - search 没有 openDingTalkId\n\n如果后续需要给机器人发单聊消息,必须用 find 拿 openDingTalkId。" }, "effect": { "candidates": [ @@ -185870,22 +183748,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_bots" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索【全部可用】机器人(含他人/官方,额外返回 openDingTalkId 可发单聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_bots" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_bots" + "source": "cobra_help", + "value": "搜索【全部可用】机器人(含他人/官方,额外返回 openDingTalkId 可发单聊)" }, "use_when": { "candidates": [ @@ -186148,6 +184026,12 @@ "source": "cobra_usage", "value": "搜索关键词 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "keyword" + }, { "precedence": "default", "selected": false, @@ -186163,22 +184047,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -186189,9 +184085,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -186223,7 +184119,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "keyword", + "property": "keyword", "required": true, "type": "string" } @@ -186234,7 +184131,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_bots", + "title": "搜索【全部可用】机器人(含他人/官方,额外返回 openDingTalkId 可发单聊)", "use_when": [ "需要发现可添加或可使用的机器人时" ] @@ -186263,11 +184160,8 @@ "cli_name": "search-common", "cli_path": "chat search-common", "confirmation": "not_required", - "description": "通过人员名称搜索共同群聊", + "description": "根据昵称列表搜索共同群聊。--nicks 指定要搜索的人员昵称(逗号分隔,必填)。--match-mode 控制匹配模式:AND 表示所有人都在群里,OR 表示任一人在群里(默认 AND)。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -186365,44 +184259,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "通过人员名称搜索共同群聊" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据昵称列表搜索共同群聊。--nicks 指定要搜索的人员昵称(逗号分隔,必填)。--match-mode 控制匹配模式:AND 表示所有人都在群里,OR 表示任一人在群里(默认 AND)。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "通过人员名称搜索共同群聊" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "通过人员名称搜索共同群聊" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据昵称列表搜索共同群聊。--nicks 指定要搜索的人员昵称(逗号分隔,必填)。--match-mode 控制匹配模式:AND 表示所有人都在群里,OR 表示任一人在群里(默认 AND)。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -186547,22 +184419,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_common_groups" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索共同群(查询指定人共同所在的群聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_common_groups" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_common_groups" + "source": "cobra_help", + "value": "搜索共同群(查询指定人共同所在的群聊)" }, "use_when": { "candidates": [ @@ -187167,7 +185039,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_common_groups", + "title": "搜索共同群(查询指定人共同所在的群聊)", "use_when": [ "需要找两人或多人共同群聊时" ] @@ -187180,6 +185052,7 @@ "internal/cli/schema_command_registry.json#chat.search_groups", "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.chat.search_groups", "skills/mono/SKILL.md", @@ -187196,11 +185069,8 @@ "cli_name": "search", "cli_path": "chat search", "confirmation": "not_required", - "description": "根据群名称关键词,搜索符合条件的群,返回群的openconversion_id、群名称等信息", + "description": "根据关键词搜索群聊列表。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。\n\n注意:\n1. query 不要拆分得太细,应使用群名称中连续的核心词作为关键词(如群名\"项目冲刺群\"应搜\"项目冲刺\"而非拆成\"项目\"+\"冲刺\"分别搜索)。\n2. 当搜索结果返回多个群聊时,应列出候选群让用户确认目标群聊,不要自行假定并直接进行后续操作。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -187227,9 +185097,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -187241,8 +185111,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -187298,44 +185168,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据群名称关键词,搜索符合条件的群,返回群的openconversion_id、群名称等信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据关键词搜索群聊列表。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。\n\n注意:\n1. query 不要拆分得太细,应使用群名称中连续的核心词作为关键词(如群名\"项目冲刺群\"应搜\"项目冲刺\"而非拆成\"项目\"+\"冲刺\"分别搜索)。\n2. 当搜索结果返回多个群聊时,应列出候选群让用户确认目标群聊,不要自行假定并直接进行后续操作。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据群名称关键词,搜索符合条件的群,返回群的openconversion_id、群名称等信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据群名称关键词,搜索符合条件的群,返回群的openconversion_id、群名称等信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据关键词搜索群聊列表。分页参数 --limit(默认 20)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。\n\n注意:\n1. query 不要拆分得太细,应使用群名称中连续的核心词作为关键词(如群名\"项目冲刺群\"应搜\"项目冲刺\"而非拆成\"项目\"+\"冲刺\"分别搜索)。\n2. 当搜索结果返回多个群聊时,应列出候选群让用户确认目标群聊,不要自行假定并直接进行后续操作。" }, "effect": { "candidates": [ @@ -187389,10 +185237,10 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, { "precedence": "mcp_fallback", @@ -187403,20 +185251,42 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract." }, "interface_ref": { "candidates": [ { - "precedence": "imported", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null + } + ], + "overridden_candidates": [ + { + "precedence": "imported", + "selected": false, "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - } + "value": "chat.search_groups_by_keyword" }, { "precedence": "mcp_fallback", @@ -187425,13 +185295,11 @@ "value": "chat.search_groups_by_keyword" } ], - "precedence": "imported", - "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -187480,22 +185348,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_groups_by_keyword" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据关键词搜索群聊" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_groups_by_keyword" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_groups_by_keyword" + "source": "cobra_help", + "value": "根据关键词搜索群聊" }, "use_when": { "candidates": [ @@ -187520,11 +185388,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "chat", - "rpc_name": "search_groups_by_keyword" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "search_groups", @@ -187557,16 +185422,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -187617,7 +185490,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -187647,16 +185519,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --exclude-muted is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "excludeMuted" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "excludeMuted" + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --exclude-muted is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -187707,7 +185587,6 @@ "value": "boolean" } }, - "property": "excludeMuted", "required": false, "type": "boolean" }, @@ -187738,16 +185617,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -187798,7 +185685,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -187905,7 +185791,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_groups_by_keyword", + "title": "根据关键词搜索群聊", "use_when": [ "只知道群名或关键词,需要取得群 ID 时" ] @@ -187933,11 +185819,8 @@ "cli_name": "search-advanced", "cli_path": "chat message search-advanced", "confirmation": "not_required", - "description": "搜索消息,支持多种维度:时间范围、关键词、发送者、at我的、at指定用户、会话", + "description": "支持按关键词、发送者、@我、@指定人、指定会话、时间范围等多维度搜索消息。发送者 userId 使用 --user/--users;发送者或 @ 人的 openDingTalkId 使用 --sender-ids/--at-ids。所有参数均为可选,至少指定一个搜索条件。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -188035,44 +185918,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索消息,支持多种维度:时间范围、关键词、发送者、at我的、at指定用户、会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "支持按关键词、发送者、@我、@指定人、指定会话、时间范围等多维度搜索消息。发送者 userId 使用 --user/--users;发送者或 @ 人的 openDingTalkId 使用 --sender-ids/--at-ids。所有参数均为可选,至少指定一个搜索条件。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索消息,支持多种维度:时间范围、关键词、发送者、at我的、at指定用户、会话" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索消息,支持多种维度:时间范围、关键词、发送者、at我的、at指定用户、会话" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "支持按关键词、发送者、@我、@指定人、指定会话、时间范围等多维度搜索消息。发送者 userId 使用 --user/--users;发送者或 @ 人的 openDingTalkId 使用 --sender-ids/--at-ids。所有参数均为可选,至少指定一个搜索条件。" }, "effect": { "candidates": [ @@ -188211,22 +186072,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "多维度搜索消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索消息" + "source": "cobra_help", + "value": "多维度搜索消息" }, "use_when": { "candidates": [ @@ -189331,16 +187192,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -189385,7 +187254,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" }, @@ -189415,16 +187283,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "review_reason": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -189469,7 +187345,6 @@ "value": "string" } }, - "property": "users", "required": false, "type": "string" } @@ -189480,7 +187355,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索消息", + "title": "多维度搜索消息", "use_when": [ "需要多维过滤或关键词可选的高级消息搜索时" ] @@ -189510,11 +187385,8 @@ "cli_name": "search", "cli_path": "chat message search", "confirmation": "not_required", - "description": "按关键词搜索消息", + "description": "在当前用户的会话中按关键词搜索消息。--query 指定搜索关键词(必填)。可选 --group 限定搜索某个会话,不传则搜索所有会话。时间参数 --start/--end(ISO-8601)限定搜索时间范围。分页参数 --limit(默认 100)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -189612,44 +187484,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "按关键词搜索消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在当前用户的会话中按关键词搜索消息。--query 指定搜索关键词(必填)。可选 --group 限定搜索某个会话,不传则搜索所有会话。时间参数 --start/--end(ISO-8601)限定搜索时间范围。分页参数 --limit(默认 100)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "按关键词搜索消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按关键词搜索消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在当前用户的会话中按关键词搜索消息。--query 指定搜索关键词(必填)。可选 --group 限定搜索某个会话,不传则搜索所有会话。时间参数 --start/--end(ISO-8601)限定搜索时间范围。分页参数 --limit(默认 100)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -189794,22 +187644,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_messages_by_keyword" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_messages_by_keyword" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_messages_by_keyword" + "source": "cobra_help", + "value": "按关键词搜索消息" }, "use_when": { "candidates": [ @@ -190631,7 +188481,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_messages_by_keyword", + "title": "按关键词搜索消息", "use_when": [ "需要用关键词查找消息且过滤条件较简单时" ] @@ -190675,11 +188525,8 @@ ] ] }, - "description": "根据发送者拉消息", + "description": "搜索特定人发送给我的消息,返回结果包含单聊和群聊标识。--sender-user-id 指定发送者 userId,--sender-open-dingtalk-id 指定发送者 openDingTalkId,二者互斥。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -190777,44 +188624,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据发送者拉消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索特定人发送给我的消息,返回结果包含单聊和群聊标识。--sender-user-id 指定发送者 userId,--sender-open-dingtalk-id 指定发送者 openDingTalkId,二者互斥。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据发送者拉消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据发送者拉消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索特定人发送给我的消息,返回结果包含单聊和群聊标识。--sender-user-id 指定发送者 userId,--sender-open-dingtalk-id 指定发送者 openDingTalkId,二者互斥。分页参数 --limit(默认 50)和 --cursor(默认 \"0\")始终传递;hasMore=true 时用返回的 nextCursor 作为下次 --cursor 继续翻页。" }, "effect": { "candidates": [ @@ -190959,22 +188784,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_messages_by_sender" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定发送者的消息(包含单聊和群聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_messages_by_sender" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_messages_by_sender" + "source": "cobra_help", + "value": "拉取指定发送者的消息(包含单聊和群聊)" }, "use_when": { "candidates": [ @@ -191775,7 +189600,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_messages_by_sender", + "title": "拉取指定发送者的消息(包含单聊和群聊)", "use_when": [ "需要查某人发送过的消息且不限定单聊时" ] @@ -191805,11 +189630,8 @@ "cli_name": "list-all", "cli_path": "chat message list-all", "confirmation": "not_required", - "description": "根据指定时间范围,分页搜索历史消息", + "description": "分页拉取当前登录用户在指定时间范围内的所有会话消息。--start 和 --end 限定时间范围,--limit 指定每页数量,--cursor 传分页游标(首页传 0)。服务端按 cursor 分页返回,hasMore=true 时用返回的 nextCursor 值继续翻页。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -191907,44 +189729,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据指定时间范围,分页搜索历史消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "分页拉取当前登录用户在指定时间范围内的所有会话消息。--start 和 --end 限定时间范围,--limit 指定每页数量,--cursor 传分页游标(首页传 0)。服务端按 cursor 分页返回,hasMore=true 时用返回的 nextCursor 值继续翻页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据指定时间范围,分页搜索历史消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据指定时间范围,分页搜索历史消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "分页拉取当前登录用户在指定时间范围内的所有会话消息。--start 和 --end 限定时间范围,--limit 指定每页数量,--cursor 传分页游标(首页传 0)。服务端按 cursor 分页返回,hasMore=true 时用返回的 nextCursor 值继续翻页。" }, "effect": { "candidates": [ @@ -192089,22 +189889,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_messages_by_time_range" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拉取指定时间范围内当前用户的所有会话消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_messages_by_time_range" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_messages_by_time_range" + "source": "cobra_help", + "value": "拉取指定时间范围内当前用户的所有会话消息" }, "use_when": { "candidates": [ @@ -192636,7 +190436,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_messages_by_time_range", + "title": "拉取指定时间范围内当前用户的所有会话消息", "use_when": [ "需要汇总一段时间内所有可见会话消息时" ] @@ -192667,11 +190467,8 @@ "cli_name": "search", "cli_path": "chat bot search", "confirmation": "not_required", - "description": "搜索我创建的机器人,可获取机器人robotCode等信息。", + "description": "搜索【当前登录用户自己创建】的机器人,按 robotName 模糊匹配 + 页码分页。\n\n如何在 search 与 find 之间选择:\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find(dws chat bot find)\n\n注意:search 没有 openDingTalkId,如果需要给机器人发单聊消息请用 find。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -192769,44 +190566,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索我创建的机器人,可获取机器人robotCode等信息。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索【当前登录用户自己创建】的机器人,按 robotName 模糊匹配 + 页码分页。\n\n如何在 search 与 find 之间选择:\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find(dws chat bot find)\n\n注意:search 没有 openDingTalkId,如果需要给机器人发单聊消息请用 find。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索我创建的机器人,可获取机器人robotCode等信息。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索我创建的机器人,可获取机器人robotCode等信息。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索【当前登录用户自己创建】的机器人,按 robotName 模糊匹配 + 页码分页。\n\n如何在 search 与 find 之间选择:\n - search:用户说\"我创建的\"\"我的\"\"我自己的\"\"我做的\"机器人 → 用 search\n - find :用户说\"搜索机器人\"\"找一个机器人\"\"所有可用机器人\"\"帮我找 XXX 机器人\"\n (不限范围,包含他人/官方)→ 用 find(dws chat bot find)\n\n注意:search 没有 openDingTalkId,如果需要给机器人发单聊消息请用 find。" }, "effect": { "candidates": [ @@ -192959,22 +190734,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索我创建的企业机器人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索【我自己创建】的机器人(仅本人创建的,不含他人/官方机器人)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索我创建的企业机器人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索我创建的企业机器人" + "source": "cobra_help", + "value": "搜索【我自己创建】的机器人(仅本人创建的,不含他人/官方机器人)" }, "use_when": { "candidates": [ @@ -193021,6 +190796,12 @@ "source": "cobra_usage", "value": "按名称搜索" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要搜索的名称" + }, { "precedence": "default", "selected": false, @@ -193036,16 +190817,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "robotName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "robotName" }, "required": { "candidates": [ @@ -193090,7 +190877,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "要搜索的名称", + "property": "robotName", "required": false, "type": "string" }, @@ -193106,6 +190894,12 @@ "source": "cobra_usage", "value": "页码,从1开始" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "页码,从1开始" + }, { "precedence": "default", "selected": false, @@ -193118,19 +190912,45 @@ "source": "cobra_usage", "value": "页码,从1开始" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "currentPage" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "source": "versioned_parameter_binding", + "value": "currentPage" }, "required": { "candidates": [ @@ -193140,6 +190960,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -193181,7 +191007,8 @@ "value": "integer" } }, - "property": "page", + "interface_type": "number", + "property": "currentPage", "required": false, "type": "integer" }, @@ -193196,6 +191023,12 @@ "source": "cobra_usage", "value": "每页条数 (默认50)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页条数,默认50" + }, { "precedence": "default", "selected": false, @@ -193208,19 +191041,45 @@ "source": "cobra_usage", "value": "每页条数 (默认50)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "size" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "size" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -193271,7 +191130,9 @@ "value": "integer" } }, - "property": "size", + "interface_description": "每页条数,默认50", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" } @@ -193282,7 +191143,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索我创建的企业机器人", + "title": "搜索【我自己创建】的机器人(仅本人创建的,不含他人/官方机器人)", "use_when": [ "需要确认自己可管理或已创建的机器人时" ] @@ -193313,11 +191174,8 @@ "cli_name": "send-by-webhook", "cli_path": "chat message send-by-webhook", "confirmation": "not_required", - "description": "使用自定义机器人发送群消息,请注意自定义机器人与企业机器人的区别。", + "description": "通过自定义机器人 Webhook 发送群消息。@ 人时需在 --text 中包含 @userId 或 @手机号,否则 @ 不生效。\n\n⚠️ 重要:该接口会真实发送消息到目标群聊,不可用于测试或试探性调用。调用前必须确认消息内容无误。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -193415,44 +191273,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "使用自定义机器人发送群消息,请注意自定义机器人与企业机器人的区别。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "通过自定义机器人 Webhook 发送群消息。@ 人时需在 --text 中包含 @userId 或 @手机号,否则 @ 不生效。\n\n⚠️ 重要:该接口会真实发送消息到目标群聊,不可用于测试或试探性调用。调用前必须确认消息内容无误。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "使用自定义机器人发送群消息,请注意自定义机器人与企业机器人的区别。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "使用自定义机器人发送群消息,请注意自定义机器人与企业机器人的区别。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "通过自定义机器人 Webhook 发送群消息。@ 人时需在 --text 中包含 @userId 或 @手机号,否则 @ 不生效。\n\n⚠️ 重要:该接口会真实发送消息到目标群聊,不可用于测试或试探性调用。调用前必须确认消息内容无误。" }, "effect": { "candidates": [ @@ -193605,22 +191441,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "自定义机器人发送群消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "自定义机器人 Webhook 发送群消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "自定义机器人发送群消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "自定义机器人发送群消息" + "source": "cobra_help", + "value": "自定义机器人 Webhook 发送群消息" }, "use_when": { "candidates": [ @@ -193667,6 +191503,12 @@ "source": "cobra_usage", "value": "@ 所有人" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否@所有人" + }, { "precedence": "default", "selected": false, @@ -193682,16 +191524,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "isAtAll" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "atAll" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "atAll" + "source": "versioned_parameter_binding", + "value": "isAtAll" }, "required": { "candidates": [ @@ -193736,7 +191584,8 @@ "value": "boolean" } }, - "property": "atAll", + "interface_description": "是否@所有人", + "property": "isAtAll", "required": false, "type": "boolean" }, @@ -193863,6 +191712,12 @@ "source": "cobra_usage", "value": "@ 指定用户,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被@的群成员userId" + }, { "precedence": "default", "selected": false, @@ -193875,19 +191730,45 @@ "source": "cobra_usage", "value": "@ 指定用户,逗号分隔" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "atUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "atUsers" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "atUsers" + "source": "versioned_parameter_binding", + "value": "atUserIds" }, "required": { "candidates": [ @@ -193932,7 +191813,9 @@ "value": "string" } }, - "property": "atUsers", + "interface_description": "被@的群成员userId", + "interface_type": "array", + "property": "atUserIds", "required": false, "type": "string" }, @@ -194210,6 +192093,12 @@ "source": "cobra_usage", "value": "Webhook Token (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "自定义机器人Token,在创建自定义机器人时得到的webhook地址中的accessToken值" + }, { "precedence": "default", "selected": false, @@ -194225,16 +192114,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "robotToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "token" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "token" + "source": "versioned_parameter_binding", + "value": "robotToken" }, "required": { "candidates": [ @@ -194244,6 +192139,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -194291,7 +192192,8 @@ "value": "string" } }, - "property": "token", + "interface_description": "自定义机器人Token,在创建自定义机器人时得到的webhook地址中的accessToken值", + "property": "robotToken", "required": true, "type": "string" } @@ -194302,7 +192204,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "自定义机器人发送群消息", + "title": "自定义机器人 Webhook 发送群消息", "use_when": [ "已有 Webhook token 并要推送告警或自动通知时" ] @@ -194353,11 +192255,8 @@ ] ] }, - "description": "以用户身份发消息,支持多种消息类型", + "description": "以当前用户身份发送消息。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。\n\n目标选择(三选一,必填):\n --group 群聊 openconversation_id\n --user 单聊接收人 userId\n --open-dingtalk-id 单聊接收人 openDingTalkId\n\n纯文本 / Markdown 消息(默认):\n 无需指定 --msg-type,直接传消息内容即可。推荐使用 --text flag 传递内容(尤其当内容含换行、引号等特殊字符时),也支持位置参数。可选 --title 作为消息标题。\n\n富媒体消息(通过 --msg-type 指定类型):\n image — 发送图片:--msg-type image --media-id(通过 dt_media_upload 上传获得)\n file/audio/video — 发送文件、音频、视频:传本地 --file-path,CLI 会上传后按 file 消息发送", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -194464,44 +192363,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "以用户身份发消息,支持多种消息类型" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "以当前用户身份发送消息。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。\n\n目标选择(三选一,必填):\n --group 群聊 openconversation_id\n --user 单聊接收人 userId\n --open-dingtalk-id 单聊接收人 openDingTalkId\n\n纯文本 / Markdown 消息(默认):\n 无需指定 --msg-type,直接传消息内容即可。推荐使用 --text flag 传递内容(尤其当内容含换行、引号等特殊字符时),也支持位置参数。可选 --title 作为消息标题。\n\n富媒体消息(通过 --msg-type 指定类型):\n image — 发送图片:--msg-type image --media-id(通过 dt_media_upload 上传获得)\n file/audio/video — 发送文件、音频、视频:传本地 --file-path,CLI 会上传后按 file 消息发送" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "以用户身份发消息,支持多种消息类型" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "以用户身份发消息,支持多种消息类型" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "以当前用户身份发送消息。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。\n\n目标选择(三选一,必填):\n --group 群聊 openconversation_id\n --user 单聊接收人 userId\n --open-dingtalk-id 单聊接收人 openDingTalkId\n\n纯文本 / Markdown 消息(默认):\n 无需指定 --msg-type,直接传消息内容即可。推荐使用 --text flag 传递内容(尤其当内容含换行、引号等特殊字符时),也支持位置参数。可选 --title 作为消息标题。\n\n富媒体消息(通过 --msg-type 指定类型):\n image — 发送图片:--msg-type image --media-id(通过 dt_media_upload 上传获得)\n file/audio/video — 发送文件、音频、视频:传本地 --file-path,CLI 会上传后按 file 消息发送" }, "effect": { "candidates": [ @@ -194689,22 +192566,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "send_personal_message" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "以当前用户身份发送消息(--group 群聊 / --user 或 --open-dingtalk-id 单聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "send_personal_message" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "send_personal_message" + "source": "cobra_help", + "value": "以当前用户身份发送消息(--group 群聊 / --user 或 --open-dingtalk-id 单聊)" }, "use_when": { "candidates": [ @@ -194752,6 +192629,12 @@ "source": "cobra_usage", "value": "消息是否带 AI 发送角标(默认 true)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "ai类型" + }, { "precedence": "default", "selected": false, @@ -194764,19 +192647,45 @@ "source": "cobra_usage", "value": "消息是否带 AI 发送角标(默认 true)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "string" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "boolean" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "string" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "clawType" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "aiTag" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "aiTag" + "source": "versioned_parameter_binding", + "value": "clawType" }, "required": { "candidates": [ @@ -194827,7 +192736,9 @@ "value": "boolean" } }, - "property": "aiTag", + "interface_description": "ai类型", + "interface_type": "string", + "property": "clawType", "required": false, "type": "boolean" }, @@ -194933,6 +192844,12 @@ "source": "cobra_usage", "value": "@指定成员的 openDingTalkId 列表,逗号分隔(仅群聊时生效,可选),设置--at-open-dingtalk-ids openDingTalkId1,openDingTalkId2时,消息内容中一定要包含对应格式的占位符\u003c@openDingTalkId1\u003e \u003c@openDingTalkId2\u003e" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "@的用户atOpenDingTalkIds列表" + }, { "precedence": "default", "selected": false, @@ -194945,19 +192862,45 @@ "source": "cobra_usage", "value": "@指定成员的 openDingTalkId 列表,逗号分隔(仅群聊时生效,可选),设置--at-open-dingtalk-ids openDingTalkId1,openDingTalkId2时,消息内容中一定要包含对应格式的占位符\u003c@openDingTalkId1\u003e \u003c@openDingTalkId2\u003e" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "atOpenDingTalkIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "atOpenDingtalkIds" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "atOpenDingtalkIds" + "source": "versioned_parameter_binding", + "value": "atOpenDingTalkIds" }, "required": { "candidates": [ @@ -195002,7 +192945,9 @@ "value": "string" } }, - "property": "atOpenDingtalkIds", + "interface_description": "@的用户atOpenDingTalkIds列表", + "interface_type": "array", + "property": "atOpenDingTalkIds", "required": false, "type": "string" }, @@ -195052,16 +192997,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local upload/preprocessing input", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filePath" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filePath" + "review_reason": "local upload/preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -195113,7 +193066,6 @@ } }, "format": "file-path", - "property": "filePath", "required": false, "required_when": "msg-type is file or audio or video", "type": "string" @@ -195129,6 +193081,12 @@ "source": "cobra_usage", "value": "群聊 openconversation_id(群聊时必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群聊openConversationId,发送群聊消息时使用" + }, { "precedence": "default", "selected": false, @@ -195144,16 +193102,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "openConversationId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "group" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "group" + "source": "versioned_parameter_binding", + "value": "openConversationId" }, "required": { "candidates": [ @@ -195204,7 +193168,8 @@ "value": "string" } }, - "property": "group", + "interface_description": "群聊openConversationId,发送群聊消息时使用", + "property": "openConversationId", "required": false, "type": "string" }, @@ -195255,16 +193220,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "serialized into the aggregate content payload", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mediaId" + "review_reason": "serialized into the aggregate content payload", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -195315,7 +193288,6 @@ "value": "string" } }, - "property": "mediaId", "required": false, "required_when": "msg-type is image", "type": "string" @@ -195470,6 +193442,12 @@ "source": "cobra_usage", "value": "单聊接收人 openDingTalkId(单聊时与 --user 二选一)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "消息接收者的openDingTalkId,发送单聊消息时使用" + }, { "precedence": "default", "selected": false, @@ -195485,16 +193463,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "receiverOpenDingTalkId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "openDingtalkId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "openDingtalkId" + "source": "versioned_parameter_binding", + "value": "receiverOpenDingTalkId" }, "required": { "candidates": [ @@ -195545,7 +193529,8 @@ "value": "string" } }, - "property": "openDingtalkId", + "interface_description": "消息接收者的openDingTalkId,发送单聊消息时使用", + "property": "receiverOpenDingTalkId", "required": false, "type": "string" }, @@ -195575,16 +193560,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "serialized into the aggregate content payload", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "text" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "text" + "review_reason": "serialized into the aggregate content payload", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -195635,7 +193628,6 @@ "value": "string" } }, - "property": "text", "required": false, "type": "string" }, @@ -195665,16 +193657,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "serialized into the aggregate content payload", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "title" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "title" + "review_reason": "serialized into the aggregate content payload", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -195719,7 +193719,6 @@ "value": "string" } }, - "property": "title", "required": false, "type": "string" }, @@ -195749,16 +193748,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "resolves a userId to receiverOpenDingTalkId when possible and otherwise uses the unpinned receiverUserId compatibility property", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "resolves a userId to receiverOpenDingTalkId when possible and otherwise uses the unpinned receiverUserId compatibility property", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -195809,7 +193816,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" }, @@ -195924,7 +193930,7 @@ "发送前确认目标和内容;文件消息使用 --msg-type file --file-path", "需要 24 小时内防重复投递时提供稳定的 --uuid" ], - "title": "send_personal_message", + "title": "以当前用户身份发送消息(--group 群聊 / --user 或 --open-dingtalk-id 单聊)", "use_when": [ "用户明确要以个人身份发送文本或媒体消息时" ] @@ -195968,9 +193974,6 @@ }, "description": "群聊:传 --group 指定群;单聊:传 --users 或 --open-dingtalk-ids 指定用户列表,与 --group 只能选其一,不能同时指定。--text 支持 Markdown。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -196062,39 +194065,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "群聊:传 --group 指定群;单聊:传 --users 或 --open-dingtalk-ids 指定用户列表,与 --group 只能选其一,不能同时指定。--text 支持 Markdown。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "群聊:传 --group 指定群;单聊:传 --users 或 --open-dingtalk-ids 指定用户列表,与 --group 只能选其一,不能同时指定。--text 支持 Markdown。\n\n⚠️ 重要:该接口会真实发送消息到目标会话,不可用于测试或试探性调用。调用前必须确认消息内容和接收对象无误。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -196239,13 +194220,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "机器人发送消息(--group 群聊 / --users 单聊)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "机器人发送消息(--group 群聊 / --users 单聊)" @@ -197163,11 +195144,8 @@ "cli_name": "set-user", "cli_path": "chat group-role set-user", "confirmation": "not_required", - "description": "根据用户提供的群和身份为用户设置群身份", + "description": "设置用户的群身份(覆盖该用户的全部群身份)", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -197265,44 +195243,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据用户提供的群和身份为用户设置群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置用户的群身份(覆盖该用户的全部群身份)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据用户提供的群和身份为用户设置群身份" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据用户提供的群和身份为用户设置群身份" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置用户的群身份(覆盖该用户的全部群身份)" }, "effect": { "candidates": [ @@ -197441,22 +195397,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "set_custom_user_roles" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置用户的群身份(覆盖该用户的全部群身份)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "set_custom_user_roles" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "set_custom_user_roles" + "source": "cobra_help", + "value": "设置用户的群身份(覆盖该用户的全部群身份)" }, "use_when": { "candidates": [ @@ -197883,7 +195839,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "set_custom_user_roles", + "title": "设置用户的群身份(覆盖该用户的全部群身份)", "use_when": [ "需要把一个或多个已有角色分配给成员时" ] @@ -197918,11 +195874,8 @@ ] ] }, - "description": "管理群禁言成员", + "description": "将指定群成员加入或移出禁言名单。\n--mute-time 禁言时长(毫秒),仅支持 5min(300000) / 1h(3600000) / 1d(86400000) / 7d(604800000) / 30d(2592000000)。\n默认加入禁言名单,传 --off 则移除。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -198028,44 +195981,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "管理群禁言成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定群成员加入或移出禁言名单。\n--mute-time 禁言时长(毫秒),仅支持 5min(300000) / 1h(3600000) / 1d(86400000) / 7d(604800000) / 30d(2592000000)。\n默认加入禁言名单,传 --off 则移除。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "管理群禁言成员" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "管理群禁言成员" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将指定群成员加入或移出禁言名单。\n--mute-time 禁言时长(毫秒),仅支持 5min(300000) / 1h(3600000) / 1d(86400000) / 7d(604800000) / 30d(2592000000)。\n默认加入禁言名单,传 --off 则移除。" }, "effect": { "candidates": [ @@ -198204,22 +196135,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "管理群禁言成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "指定群成员禁言 / 取消禁言" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "管理群禁言成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "管理群禁言成员" + "source": "cobra_help", + "value": "指定群成员禁言 / 取消禁言" }, "use_when": { "candidates": [ @@ -198658,16 +196589,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper/alias of --users: userIds are remotely resolved to openDingTalkIds outside dry-run and otherwise may be sent as uids; openDingTalkId inputs are sent as openDingTalkIds, so one exact property would misdescribe execution", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "conditional wrapper/alias of --users: userIds are remotely resolved to openDingTalkIds outside dry-run and otherwise may be sent as uids; openDingTalkId inputs are sent as openDingTalkIds, so one exact property would misdescribe execution", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -198718,7 +196657,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" }, @@ -198859,7 +196797,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "管理群禁言成员", + "title": "指定群成员禁言 / 取消禁言", "use_when": [ "需要按成员设置禁言时长或解除禁言时" ] @@ -198886,11 +196824,8 @@ "cli_name": "group-mute", "cli_path": "chat group-mute", "confirmation": "not_required", - "description": "设置/取消群全员禁言", + "description": "设置或取消群全员禁言。默认开启全员禁言,传 --off 则取消。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -198996,44 +196931,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置/取消群全员禁言" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置或取消群全员禁言。默认开启全员禁言,传 --off 则取消。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置/取消群全员禁言" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置/取消群全员禁言" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置或取消群全员禁言。默认开启全员禁言,传 --off 则取消。" }, "effect": { "candidates": [ @@ -199172,22 +197085,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置/取消群全员禁言" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "全员禁言 / 取消全员禁言" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置/取消群全员禁言" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置/取消群全员禁言" + "source": "cobra_help", + "value": "全员禁言 / 取消全员禁言" }, "use_when": { "candidates": [ @@ -199449,7 +197362,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置/取消群全员禁言", + "title": "全员禁言 / 取消全员禁言", "use_when": [ "需要控制整个群的发言权限时" ] @@ -199477,11 +197390,8 @@ "cli_name": "set-pin-msg", "cli_path": "chat message set-pin-msg", "confirmation": "not_required", - "description": "设置钉住(pin)某条消息", + "description": "将指定消息设置为钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -199579,44 +197489,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置钉住(pin)某条消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定消息设置为钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置钉住(pin)某条消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置钉住(pin)某条消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将指定消息设置为钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" }, "effect": { "candidates": [ @@ -199755,22 +197643,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置钉住(pin)消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "钉住消息(Pin)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置钉住(pin)消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置钉住(pin)消息" + "source": "cobra_help", + "value": "钉住消息(Pin)" }, "use_when": { "candidates": [ @@ -200067,7 +197955,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置钉住(pin)消息", + "title": "钉住消息(Pin)", "use_when": [ "需要在会话中置顶一条已知消息时" ] @@ -200094,11 +197982,8 @@ "cli_name": "set-top", "cli_path": "chat set-top", "confirmation": "not_required", - "description": "会话置顶/取消置顶", + "description": "设置或取消会话置顶。默认设置置顶,传 --off 则取消置顶。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -200204,44 +198089,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "会话置顶/取消置顶" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置或取消会话置顶。默认设置置顶,传 --off 则取消置顶。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "会话置顶/取消置顶" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "会话置顶/取消置顶" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置或取消会话置顶。默认设置置顶,传 --off 则取消置顶。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e\n (openDingTalkId 可通过 dws contact user search --query \"姓名\" 获取)" }, "effect": { "candidates": [ @@ -200380,22 +198243,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "会话置顶/取消置顶" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "会话置顶 / 取消置顶(支持单聊/群聊)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "会话置顶/取消置顶" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "会话置顶/取消置顶" + "source": "cobra_help", + "value": "会话置顶 / 取消置顶(支持单聊/群聊)" }, "use_when": { "candidates": [ @@ -200678,7 +198541,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "会话置顶/取消置顶", + "title": "会话置顶 / 取消置顶(支持单聊/群聊)", "use_when": [ "需要改变某个会话在列表中的置顶状态时" ] @@ -200719,11 +198582,8 @@ ] ] }, - "description": "群主转让", + "description": "转让群主", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -200821,44 +198681,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "群主转让" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转让群主" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "群主转让" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群主转让" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "转让群主" }, "effect": { "candidates": [ @@ -200997,22 +198835,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "群主转让" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转让群主" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群主转让" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "群主转让" + "source": "cobra_help", + "value": "转让群主" }, "use_when": { "candidates": [ @@ -201313,16 +199151,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional compatibility input: a userId is sent as newOwnerUid, while an openDingTalkId is sent as newOwnerOpenDingTalkId; the runtime ID-shape branch has no single RPC property", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "conditional compatibility input: a userId is sent as newOwnerUid, while an openDingTalkId is sent as newOwnerOpenDingTalkId; the runtime ID-shape branch has no single RPC property", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -201373,7 +199219,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" } @@ -201384,7 +199229,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "群主转让", + "title": "转让群主", "use_when": [ "现群主明确指定新群主时" ] @@ -201414,11 +199259,8 @@ "cli_name": "list-unread-conversations", "cli_path": "chat message list-unread-conversations", "confirmation": "not_required", - "description": "unread_message_conversation_list", + "description": "获取当前用户有未读消息的会话列表,可选通过 --count 控制返回的会话条数。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -201516,44 +199358,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "unread_message_conversation_list" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户有未读消息的会话列表,可选通过 --count 控制返回的会话条数。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "unread_message_conversation_list" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "unread_message_conversation_list" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户有未读消息的会话列表,可选通过 --count 控制返回的会话条数。" }, "effect": { "candidates": [ @@ -201698,22 +199518,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "unread_message_conversation_list" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取未读会话列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "unread_message_conversation_list" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "unread_message_conversation_list" + "source": "cobra_help", + "value": "获取未读会话列表" }, "use_when": { "candidates": [ @@ -201971,7 +199791,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "unread_message_conversation_list", + "title": "获取未读会话列表", "use_when": [ "需要定位哪些会话还有未读内容时" ] @@ -201999,11 +199819,8 @@ "cli_name": "unset-pin-msg", "cli_path": "chat message unset-pin-msg", "confirmation": "not_required", - "description": "取消某条钉住的(pin)消息", + "description": "取消指定消息的钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -202101,44 +199918,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "取消某条钉住的(pin)消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "取消指定消息的钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "取消某条钉住的(pin)消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "取消某条钉住的(pin)消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "取消指定消息的钉住状态。需要指定会话 ID 和消息 ID。\n\n如何获取 openConversationId(如果上层已有则直接使用,不必再查):\n - 群聊:dws chat search --query \"群名\"\n - 单聊:dws chat conversation-info --open-dingtalk-id \u003copenDingTalkId\u003e" }, "effect": { "candidates": [ @@ -202277,22 +200072,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "取消钉住的消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "取消钉住消息(Unpin)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "取消钉住的消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "取消钉住的消息" + "source": "cobra_help", + "value": "取消钉住消息(Unpin)" }, "use_when": { "candidates": [ @@ -202589,7 +200384,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "取消钉住的消息", + "title": "取消钉住消息(Unpin)", "use_when": [ "需要移除一条已知置顶消息时" ] @@ -202625,11 +200420,8 @@ ] ] }, - "description": "设置/取消群成员为管理员", + "description": "将指定群成员设置为管理员或取消管理员身份。默认设为管理员,传 --off 则取消。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -202735,44 +200527,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置/取消群成员为管理员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定群成员设置为管理员或取消管理员身份。默认设为管理员,传 --off 则取消。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置/取消群成员为管理员" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置/取消群成员为管理员" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将指定群成员设置为管理员或取消管理员身份。默认设为管理员,传 --off 则取消。" }, "effect": { "candidates": [ @@ -202911,22 +200681,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置/取消群成员为管理员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置 / 取消群管理员" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置/取消群成员为管理员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置/取消群成员为管理员" + "source": "cobra_help", + "value": "设置 / 取消群管理员" }, "use_when": { "candidates": [ @@ -203229,16 +200999,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "conditional wrapper/alias of --users: splitChatIDValues sends userIds as uids and openDingTalkIds as openDingTalkIds; there is no single RPC property for this flag", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "user" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "user" + "review_reason": "conditional wrapper/alias of --users: splitChatIDValues sends userIds as uids and openDingTalkIds as openDingTalkIds; there is no single RPC property for this flag", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -203289,7 +201067,6 @@ "value": "string" } }, - "property": "user", "required": false, "type": "string" }, @@ -203424,7 +201201,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "设置/取消群成员为管理员", + "title": "设置 / 取消群管理员", "use_when": [ "需要变更指定成员的群管理员身份时" ] @@ -203451,11 +201228,8 @@ "cli_name": "update", "cli_path": "chat group-role update", "confirmation": "not_required", - "description": "更新群身份", + "description": "更新群身份名称", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -203553,44 +201327,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新群身份名称" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新群身份" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新群身份" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新群身份名称" }, "effect": { "candidates": [ @@ -203729,22 +201481,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新群身份" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新群身份名称" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新群身份" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新群身份" + "source": "cobra_help", + "value": "更新群身份名称" }, "use_when": { "candidates": [ @@ -204171,7 +201923,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新群身份", + "title": "更新群身份名称", "use_when": [ "已知角色 ID 并需要重命名该角色时" ] @@ -204199,11 +201951,8 @@ "cli_name": "update-icon", "cli_path": "chat group update-icon", "confirmation": "not_required", - "description": "更新群头像", + "description": "更新指定群聊的群头像。需传入群 ID 和头像 mediaId。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -204301,44 +202050,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新群头像" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定群聊的群头像。需传入群 ID 和头像 mediaId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新群头像" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新群头像" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定群聊的群头像。需传入群 ID 和头像 mediaId。" }, "effect": { "candidates": [ @@ -204477,21 +202204,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群头像" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新群头像" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群头像" }, "use_when": { @@ -204863,9 +202590,6 @@ "confirmation": "not_required", "description": "更新群名称", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -204963,45 +202687,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群名称" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新群名称" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群名称" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -205145,22 +202847,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_group_name" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新群名称" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_group_name" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_group_name" + "source": "cobra_help", + "value": "更新群名称" }, "use_when": { "candidates": [ @@ -205463,7 +203165,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_group_name", + "title": "更新群名称", "use_when": [ "需要给已有群聊重命名时" ] @@ -205491,11 +203193,8 @@ "cli_name": "update-settings", "cli_path": "chat group update-settings", "confirmation": "not_required", - "description": "更新群设置", + "description": "更新指定群聊的设置项。--setting-key 指定设置项,--status 指定值(0=关闭,1=开启)。\n\n支持的 settingKey:\n authority 仅群主和管理员可管理\n joinValidation 入群许可\n onlyAdminCanAtAll 仅群主和管理员可@所有人\n searchable 群可被搜索\n addFriendForbidden 禁止群内私聊\n toolbarStatus 群快捷栏状态\n pluginCustomizeVerify 仅群主和管理员可管理快捷栏\n onlyAdminCanDING 谁可以在群内发DING\n allMembersCanCreateMcsConf 谁可以在群里发起视频和语音会议\n onlyAdminCanSetMsgTop 谁可以把群消息置顶\n onlyAdminCanPinMsg 谁可以把群消息钉住\n onlyAdminCanSendFile 谁可以上传文件、文件夹和钉盘文件\n allMembersCanCreateCalendar 群成员日历可见性\n groupEmailDisabled 群邮件组\n groupRedEnvelopeSwitch 发红包\n groupLiveAuthority 谁可以发起直播\n groupBillAuthority 群收款开关", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -205593,44 +203292,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新群设置" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定群聊的设置项。--setting-key 指定设置项,--status 指定值(0=关闭,1=开启)。\n\n支持的 settingKey:\n authority 仅群主和管理员可管理\n joinValidation 入群许可\n onlyAdminCanAtAll 仅群主和管理员可@所有人\n searchable 群可被搜索\n addFriendForbidden 禁止群内私聊\n toolbarStatus 群快捷栏状态\n pluginCustomizeVerify 仅群主和管理员可管理快捷栏\n onlyAdminCanDING 谁可以在群内发DING\n allMembersCanCreateMcsConf 谁可以在群里发起视频和语音会议\n onlyAdminCanSetMsgTop 谁可以把群消息置顶\n onlyAdminCanPinMsg 谁可以把群消息钉住\n onlyAdminCanSendFile 谁可以上传文件、文件夹和钉盘文件\n allMembersCanCreateCalendar 群成员日历可见性\n groupEmailDisabled 群邮件组\n groupRedEnvelopeSwitch 发红包\n groupLiveAuthority 谁可以发起直播\n groupBillAuthority 群收款开关" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新群设置" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新群设置" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定群聊的设置项。--setting-key 指定设置项,--status 指定值(0=关闭,1=开启)。\n\n支持的 settingKey:\n authority 仅群主和管理员可管理\n joinValidation 入群许可\n onlyAdminCanAtAll 仅群主和管理员可@所有人\n searchable 群可被搜索\n addFriendForbidden 禁止群内私聊\n toolbarStatus 群快捷栏状态\n pluginCustomizeVerify 仅群主和管理员可管理快捷栏\n onlyAdminCanDING 谁可以在群内发DING\n allMembersCanCreateMcsConf 谁可以在群里发起视频和语音会议\n onlyAdminCanSetMsgTop 谁可以把群消息置顶\n onlyAdminCanPinMsg 谁可以把群消息钉住\n onlyAdminCanSendFile 谁可以上传文件、文件夹和钉盘文件\n allMembersCanCreateCalendar 群成员日历可见性\n groupEmailDisabled 群邮件组\n groupRedEnvelopeSwitch 发红包\n groupLiveAuthority 谁可以发起直播\n groupBillAuthority 群收款开关" }, "effect": { "candidates": [ @@ -205769,21 +203446,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群设置" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新群设置" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新群设置" }, "use_when": { @@ -206241,11 +203918,8 @@ ] ] }, - "description": "群免打扰开关", + "description": "开启或关闭会话消息免打扰(支持单聊和群聊)。默认开启免打扰,传 --off 则关闭免打扰。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -206351,44 +204025,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "群免打扰开关" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "开启或关闭会话消息免打扰(支持单聊和群聊)。默认开启免打扰,传 --off 则关闭免打扰。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "群免打扰开关" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群免打扰开关" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "开启或关闭会话消息免打扰(支持单聊和群聊)。默认开启免打扰,传 --off 则关闭免打扰。" }, "effect": { "candidates": [ @@ -206527,22 +204179,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "群免打扰开关" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "会话消息免打扰" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "群免打扰开关" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "群免打扰开关" + "source": "cobra_help", + "value": "会话消息免打扰" }, "use_when": { "candidates": [ @@ -207064,7 +204716,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "群免打扰开关", + "title": "会话消息免打扰", "use_when": [ "用户明确要静音或恢复某个会话通知时" ] @@ -207092,11 +204744,8 @@ "cli_name": "set-history", "cli_path": "chat group set-history", "confirmation": "not_required", - "description": "设置新成员入群可查看历史消息选项", + "description": "设置新成员入群后可查看的历史消息范围。--option 取值:\n FORBIDDEN 禁止查看历史消息\n RECENT_100 可查看最近 100 条消息\n ALL 可查看全部历史消息", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -207194,44 +204843,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "设置新成员入群可查看历史消息选项" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置新成员入群后可查看的历史消息范围。--option 取值:\n FORBIDDEN 禁止查看历史消息\n RECENT_100 可查看最近 100 条消息\n ALL 可查看全部历史消息" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "设置新成员入群可查看历史消息选项" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "设置新成员入群可查看历史消息选项" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "设置新成员入群后可查看的历史消息范围。--option 取值:\n FORBIDDEN 禁止查看历史消息\n RECENT_100 可查看最近 100 条消息\n ALL 可查看全部历史消息" }, "effect": { "candidates": [ @@ -207370,21 +204997,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "设置新成员入群可查看历史消息选项" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "设置新成员入群可查看历史消息选项" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "设置新成员入群可查看历史消息选项" }, "use_when": { @@ -207743,11 +205370,8 @@ "cli_name": "update-card", "cli_path": "chat message update-card", "confirmation": "not_required", - "description": "流式更新卡片内容", + "description": "更新已发送的流式卡片内容。--biz-id 为 send-card 返回的业务 ID,--flow-status 控制流式状态。\n\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。", "display": "群聊 / 消息 / 机器人", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -207845,44 +205469,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "流式更新卡片内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新已发送的流式卡片内容。--biz-id 为 send-card 返回的业务 ID,--flow-status 控制流式状态。\n\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "流式更新卡片内容" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "流式更新卡片内容" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新已发送的流式卡片内容。--biz-id 为 send-card 返回的业务 ID,--flow-status 控制流式状态。\n\nflow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成(FINISH),4=执行中(EXECUTING),5=错误(ERROR)。\n最后一次更新必须将 --flow-status 设为 3(finish),否则卡片会一直处于\"生成中\"的加载状态。" }, "effect": { "candidates": [ @@ -208021,21 +205623,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "流式更新卡片内容" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "流式更新卡片内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "流式更新卡片内容" }, "use_when": { @@ -208485,11 +206087,8 @@ "cli_name": "get", "cli_path": "contact user profile get", "confirmation": "not_required", - "description": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息", + "description": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n返回字段枚举说明:\n - employeeType 员工类型:0 无类型,1 全职,2 兼职,3 实习,4 劳务派遣,5 退休返聘,6 劳务外包\n - employeeStatus 员工状态:-1 无状态,1 待入职,2 试用,3 正式,4 离职,5 待离职,6 试岗,7 已退休\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n--staff-id 为查询员工 ID,--fields 为指定字段集合(逗号分隔),可通过\ncontact user profile fields 获取可用字段列表。\n\n【适用场景】\n - 查询某员工的学历、家庭、银行卡、紧急联系人、合同等档案信息\n\n【不适用场景】\n - 查询用户的部门、主管、管理员权限 → 请用 contact user get", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -208596,44 +206195,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n返回字段枚举说明:\n - employeeType 员工类型:0 无类型,1 全职,2 兼职,3 实习,4 劳务派遣,5 退休返聘,6 劳务外包\n - employeeStatus 员工状态:-1 无状态,1 待入职,2 试用,3 正式,4 离职,5 待离职,6 试岗,7 已退休\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n--staff-id 为查询员工 ID,--fields 为指定字段集合(逗号分隔),可通过\ncontact user profile fields 获取可用字段列表。\n\n【适用场景】\n - 查询某员工的学历、家庭、银行卡、紧急联系人、合同等档案信息\n\n【不适用场景】\n - 查询用户的部门、主管、管理员权限 → 请用 contact user get" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询员工花名册字段信息,根据当前用户指定员工和字段列表,查询相应管理范围内员工的字段值信息。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n返回字段枚举说明:\n - employeeType 员工类型:0 无类型,1 全职,2 兼职,3 实习,4 劳务派遣,5 退休返聘,6 劳务外包\n - employeeStatus 员工状态:-1 无状态,1 待入职,2 试用,3 正式,4 离职,5 待离职,6 试岗,7 已退休\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n--staff-id 为查询员工 ID,--fields 为指定字段集合(逗号分隔),可通过\ncontact user profile fields 获取可用字段列表。\n\n【适用场景】\n - 查询某员工的学历、家庭、银行卡、紧急联系人、合同等档案信息\n\n【不适用场景】\n - 查询用户的部门、主管、管理员权限 → 请用 contact user get" }, "effect": { "candidates": [ @@ -208774,22 +206351,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询员工花名册字段信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询员工花名册字段信息(个人档案)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询员工花名册字段信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询员工花名册字段信息" + "source": "cobra_help", + "value": "查询员工花名册字段信息(个人档案)" }, "use_when": { "candidates": [ @@ -209069,7 +206646,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询员工花名册字段信息", + "title": "查询员工花名册字段信息(个人档案)", "use_when": [ "已知员工 ID,需要读取权限范围内的花名册字段值时" ] @@ -209100,11 +206677,8 @@ "cli_name": "get-self", "cli_path": "contact user get-self", "confirmation": "not_required", - "description": "获取当前登录用户的基本信息(如姓名、工号、手机号)、当前组织信息(corpId、组织名称)、直属主管信息、所属部门列表(含部门 ID 与名称)以及角色信息(如管理员类型、自定义角色标签等)。返回内容受组织隐私与权限策略控制:若某些字段(如主管、手机号)被设为不可见,则可能被过滤或省略。", + "description": "获取当前登录用户的 userId 与基本信息。\n\n触发词:我是谁 / 我的信息 / 我的 userId / 当前用户 / 本人 / self / me / whoami / current。\n别名:self / me / whoami / current 均等价于 get-self。\n无需参数;禁止用 `dws contact user get --ids me/self` 代替(会返回空数据的假成功)。", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -209202,44 +206776,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前登录用户的基本信息(如姓名、工号、手机号)、当前组织信息(corpId、组织名称)、直属主管信息、所属部门列表(含部门 ID 与名称)以及角色信息(如管理员类型、自定义角色标签等)。返回内容受组织隐私与权限策略控制:若某些字段(如主管、手机号)被设为不可见,则可能被过滤或省略。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前登录用户的 userId 与基本信息。\n\n触发词:我是谁 / 我的信息 / 我的 userId / 当前用户 / 本人 / self / me / whoami / current。\n别名:self / me / whoami / current 均等价于 get-self。\n无需参数;禁止用 `dws contact user get --ids me/self` 代替(会返回空数据的假成功)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前登录用户的基本信息(如姓名、工号、手机号)、当前组织信息(corpId、组织名称)、直属主管信息、所属部门列表(含部门 ID 与名称)以及角色信息(如管理员类型、自定义角色标签等)。返回内容受组织隐私与权限策略控制:若某些字段(如主管、手机号)被设为不可见,则可能被过滤或省略。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前登录用户的基本信息(如姓名、工号、手机号)、当前组织信息(corpId、组织名称)、直属主管信息、所属部门列表(含部门 ID 与名称)以及角色信息(如管理员类型、自定义角色标签等)。返回内容受组织隐私与权限策略控制:若某些字段(如主管、手机号)被设为不可见,则可能被过滤或省略。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前登录用户的 userId 与基本信息。\n\n触发词:我是谁 / 我的信息 / 我的 userId / 当前用户 / 本人 / self / me / whoami / current。\n别名:self / me / whoami / current 均等价于 get-self。\n无需参数;禁止用 `dws contact user get --ids me/self` 代替(会返回空数据的假成功)。" }, "effect": { "candidates": [ @@ -209384,22 +206936,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户信息(我是谁 / 本人)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户详情" + "source": "cobra_help", + "value": "获取当前用户信息(我是谁 / 本人)" }, "use_when": { "candidates": [ @@ -209441,7 +206993,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取当前用户详情", + "title": "获取当前用户信息(我是谁 / 本人)", "use_when": [ "需要取得当前登录用户的 userId 和基本信息时" ] @@ -209470,11 +207022,8 @@ "cli_name": "get-info", "cli_path": "contact dept get-info", "confirmation": "not_required", - "description": "根据指定的部门 ID,获取部门详情。结果受组织架构可见性控制:仅返回调用者有权限查看的部门信息", + "description": "获取部门详情(部门ID、名称、人数)", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -209572,44 +207121,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据指定的部门 ID,获取部门详情。结果受组织架构可见性控制:仅返回调用者有权限查看的部门信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取部门详情(部门ID、名称、人数)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据指定的部门 ID,获取部门详情。结果受组织架构可见性控制:仅返回调用者有权限查看的部门信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据指定的部门 ID,获取部门详情。结果受组织架构可见性控制:仅返回调用者有权限查看的部门信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取部门详情(部门ID、名称、人数)" }, "effect": { "candidates": [ @@ -209748,22 +207275,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询部门详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取部门详情(部门ID、名称、人数)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询部门详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询部门详情" + "source": "cobra_help", + "value": "获取部门详情(部门ID、名称、人数)" }, "use_when": { "candidates": [ @@ -209957,7 +207484,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询部门详情", + "title": "获取部门详情(部门ID、名称、人数)", "use_when": [ "已知 deptId,需要部门名称、人数等详情时" ] @@ -209989,11 +207516,8 @@ "cli_name": "list-members", "cli_path": "contact dept list-members", "confirmation": "not_required", - "description": "获取指定部门下的所有成员,返回每位成员的用户 ID(userId)和显示名称(如真实姓名或昵称)。结果受组织可见性控制:若调用者无权查看某成员(例如该成员所在子部门被隐藏,或其个人信息设为私密),则该成员不会出现在返回列表中。适用于需要展示部门人员列表、选择协作成员等场景,仅支持调用者有权限访问的部门。", + "description": "查看指定部门的成员列表。\n\n范围:仅返回传入 deptId 的**本部门**直接成员,**不递归下级部门**。\n跨层级需求:先 'dws contact dept list-children --dept \u003c父deptId\u003e' 枚举子部门,再对子 deptId 分别或合并调用本命令。", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -210091,44 +207615,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定部门下的所有成员,返回每位成员的用户 ID(userId)和显示名称(如真实姓名或昵称)。结果受组织可见性控制:若调用者无权查看某成员(例如该成员所在子部门被隐藏,或其个人信息设为私密),则该成员不会出现在返回列表中。适用于需要展示部门人员列表、选择协作成员等场景,仅支持调用者有权限访问的部门。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看指定部门的成员列表。\n\n范围:仅返回传入 deptId 的**本部门**直接成员,**不递归下级部门**。\n跨层级需求:先 'dws contact dept list-children --dept \u003c父deptId\u003e' 枚举子部门,再对子 deptId 分别或合并调用本命令。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定部门下的所有成员,返回每位成员的用户 ID(userId)和显示名称(如真实姓名或昵称)。结果受组织可见性控制:若调用者无权查看某成员(例如该成员所在子部门被隐藏,或其个人信息设为私密),则该成员不会出现在返回列表中。适用于需要展示部门人员列表、选择协作成员等场景,仅支持调用者有权限访问的部门。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定部门下的所有成员,返回每位成员的用户 ID(userId)和显示名称(如真实姓名或昵称)。结果受组织可见性控制:若调用者无权查看某成员(例如该成员所在子部门被隐藏,或其个人信息设为私密),则该成员不会出现在返回列表中。适用于需要展示部门人员列表、选择协作成员等场景,仅支持调用者有权限访问的部门。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查看指定部门的成员列表。\n\n范围:仅返回传入 deptId 的**本部门**直接成员,**不递归下级部门**。\n跨层级需求:先 'dws contact dept list-children --dept \u003c父deptId\u003e' 枚举子部门,再对子 deptId 分别或合并调用本命令。" }, "effect": { "candidates": [ @@ -210273,22 +207775,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取部门下所有成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看部门成员(仅本部门,不含下级)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取部门下所有成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取部门下所有成员" + "source": "cobra_help", + "value": "查看部门成员(仅本部门,不含下级)" }, "use_when": { "candidates": [ @@ -210461,7 +207963,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取部门下所有成员", + "title": "查看部门成员(仅本部门,不含下级)", "use_when": [ "需要按一个或多个 deptId 查看部门成员名单时" ] @@ -210489,11 +207991,8 @@ "cli_name": "list-children", "cli_path": "contact dept list-children", "confirmation": "not_required", - "description": "根据指定的部门 ID,获取其直接子部门列表,返回每个子部门的部门 ID、名称。结果受组织架构可见性控制:仅返回调用者有权限查看的子部门;若父部门不可见或无子部门,则返回空列表。", + "description": "查看子部门", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -210591,44 +208090,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据指定的部门 ID,获取其直接子部门列表,返回每个子部门的部门 ID、名称。结果受组织架构可见性控制:仅返回调用者有权限查看的子部门;若父部门不可见或无子部门,则返回空列表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看子部门" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据指定的部门 ID,获取其直接子部门列表,返回每个子部门的部门 ID、名称。结果受组织架构可见性控制:仅返回调用者有权限查看的子部门;若父部门不可见或无子部门,则返回空列表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据指定的部门 ID,获取其直接子部门列表,返回每个子部门的部门 ID、名称。结果受组织架构可见性控制:仅返回调用者有权限查看的子部门;若父部门不可见或无子部门,则返回空列表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查看子部门" }, "effect": { "candidates": [ @@ -210767,22 +208244,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取部门的子部门" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看子部门" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取部门的子部门" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取部门的子部门" + "source": "cobra_help", + "value": "查看子部门" }, "use_when": { "candidates": [ @@ -210976,7 +208453,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取部门的子部门", + "title": "查看子部门", "use_when": [ "已知父部门 deptId,需要列出直属子部门时" ] @@ -211007,11 +208484,8 @@ "cli_name": "get", "cli_path": "contact user get", "confirmation": "not_required", - "description": "获取指定用户 ID 列表对应的员工详细信息,包括人员基本信息(ID、名称、主管名称、主管userId等)、所属角色信息、所在部门信息。返回结果受组织可见性规则限制:若调用者无权查看某员工(如部门隐藏、手机号设为私密等),则相应字段可能被过滤或不返回该员工。适用于需要批量获取同事信息的场景,如组织架构展示、审批人选择等。仅返回调用者权限范围内的有效数据。", + "description": "批量获取用户详情,返回用户的组织管理信息(来自通讯录领域)。\n\n返回字段:\n - isAdmin: 是否为管理员\n - orgEmployeeModel.orgUserId / orgUserName: 用户 ID / 姓名\n - orgEmployeeModel.orgName / orgId: 所属组织名称 / ID\n - orgEmployeeModel.orgMasterUserId / orgMasterDisplayName: 直属主管\n - orgEmployeeModel.depts: 所属部门列表(含 deptId、deptName)\n - orgEmployeeModel.labels: 角色列表\n\n【适用场景】\n - 想知道某个用户在哪个部门、上级是谁、是不是管理员\n\n【不适用场景】\n - 查询学历、家庭、银行卡、合同、紧急联系人等档案信息 → 请用 contact user profile get", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -211109,44 +208583,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定用户 ID 列表对应的员工详细信息,包括人员基本信息(ID、名称、主管名称、主管userId等)、所属角色信息、所在部门信息。返回结果受组织可见性规则限制:若调用者无权查看某员工(如部门隐藏、手机号设为私密等),则相应字段可能被过滤或不返回该员工。适用于需要批量获取同事信息的场景,如组织架构展示、审批人选择等。仅返回调用者权限范围内的有效数据。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取用户详情,返回用户的组织管理信息(来自通讯录领域)。\n\n返回字段:\n - isAdmin: 是否为管理员\n - orgEmployeeModel.orgUserId / orgUserName: 用户 ID / 姓名\n - orgEmployeeModel.orgName / orgId: 所属组织名称 / ID\n - orgEmployeeModel.orgMasterUserId / orgMasterDisplayName: 直属主管\n - orgEmployeeModel.depts: 所属部门列表(含 deptId、deptName)\n - orgEmployeeModel.labels: 角色列表\n\n【适用场景】\n - 想知道某个用户在哪个部门、上级是谁、是不是管理员\n\n【不适用场景】\n - 查询学历、家庭、银行卡、合同、紧急联系人等档案信息 → 请用 contact user profile get" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定用户 ID 列表对应的员工详细信息,包括人员基本信息(ID、名称、主管名称、主管userId等)、所属角色信息、所在部门信息。返回结果受组织可见性规则限制:若调用者无权查看某员工(如部门隐藏、手机号设为私密等),则相应字段可能被过滤或不返回该员工。适用于需要批量获取同事信息的场景,如组织架构展示、审批人选择等。仅返回调用者权限范围内的有效数据。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定用户 ID 列表对应的员工详细信息,包括人员基本信息(ID、名称、主管名称、主管userId等)、所属角色信息、所在部门信息。返回结果受组织可见性规则限制:若调用者无权查看某员工(如部门隐藏、手机号设为私密等),则相应字段可能被过滤或不返回该员工。适用于需要批量获取同事信息的场景,如组织架构展示、审批人选择等。仅返回调用者权限范围内的有效数据。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量获取用户详情,返回用户的组织管理信息(来自通讯录领域)。\n\n返回字段:\n - isAdmin: 是否为管理员\n - orgEmployeeModel.orgUserId / orgUserName: 用户 ID / 姓名\n - orgEmployeeModel.orgName / orgId: 所属组织名称 / ID\n - orgEmployeeModel.orgMasterUserId / orgMasterDisplayName: 直属主管\n - orgEmployeeModel.depts: 所属部门列表(含 deptId、deptName)\n - orgEmployeeModel.labels: 角色列表\n\n【适用场景】\n - 想知道某个用户在哪个部门、上级是谁、是不是管理员\n\n【不适用场景】\n - 查询学历、家庭、银行卡、合同、紧急联系人等档案信息 → 请用 contact user profile get" }, "effect": { "candidates": [ @@ -211291,22 +208743,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_user_info_by_user_ids" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量获取用户详情(组织管理信息)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_user_info_by_user_ids" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_user_info_by_user_ids" + "source": "cobra_help", + "value": "批量获取用户详情(组织管理信息)" }, "use_when": { "candidates": [ @@ -211479,7 +208931,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_user_info_by_user_ids", + "title": "批量获取用户详情(组织管理信息)", "use_when": [ "已知一个或多个 userId,需要批量读取用户详情时" ] @@ -211507,11 +208959,8 @@ "cli_name": "fields", "cli_path": "contact user profile fields", "confirmation": "not_required", - "description": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表", + "description": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n\n【典型用法】\n 通常作为 contact user profile get 的前置步骤,用于获取可查询的字段 code 列表。", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -211609,44 +209058,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n\n【典型用法】\n 通常作为 contact user profile get 的前置步骤,用于获取可查询的字段 code 列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询花名册有权限的字段列表,根据当前用户查询花名册有权限的字段列表。\n\n花名册字段包含:试用/转正信息、个人/家庭信息、学历信息、银行卡/合同信息、\n紧急联系人和其他企业自定义信息。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n\n【典型用法】\n 通常作为 contact user profile get 的前置步骤,用于获取可查询的字段 code 列表。" }, "effect": { "candidates": [ @@ -211785,22 +209212,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询花名册有权限字段列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询花名册有权限的字段列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询花名册有权限字段列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询花名册有权限字段列表" + "source": "cobra_help", + "value": "查询花名册有权限的字段列表" }, "use_when": { "candidates": [ @@ -211842,7 +209269,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询花名册有权限字段列表", + "title": "查询花名册有权限的字段列表", "use_when": [ "查询花名册前,需要先确认当前用户可见的字段 code 时" ] @@ -211869,11 +209296,8 @@ "cli_name": "list-my-followings", "cli_path": "contact relation list-my-followings", "confirmation": "not_required", - "description": "获取我的特别关注列表", + "description": "获取当前用户的特别关注列表", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -211971,44 +209395,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取我的特别关注列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户的特别关注列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取我的特别关注列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取我的特别关注列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户的特别关注列表" }, "effect": { "candidates": [ @@ -212147,22 +209549,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取我的特别关注列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户的特别关注列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取我的特别关注列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取我的特别关注列表" + "source": "cobra_help", + "value": "获取当前用户的特别关注列表" }, "use_when": { "candidates": [ @@ -212204,7 +209606,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取我的特别关注列表", + "title": "获取当前用户的特别关注列表", "use_when": [ "需要查看当前用户特别关注或星标联系人时" ] @@ -212239,11 +209641,8 @@ ] ] }, - "description": "获取离职员工列表,支持按照员工姓名、离职时间范围、部门过滤", + "description": "分页获取离职员工列表,支持按员工姓名、离职时间范围、部门进行过滤。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n --name 员工姓名,模糊搜索(可选)\n --start 离职日期查询范围开始,格式 YYYY-MM-DD(可选)\n --end 离职日期查询范围结束,格式 YYYY-MM-DD(可选)\n --depts 部门 ID 列表,逗号分隔(可选)\n --hide-retirement 是否隐藏退休,默认 true(可选)\n --hide-partner 是否隐藏合作伙伴,默认 false(可选)\n --page 页码,从 1 开始(可选,默认 1)\n --limit 页大小,200 以内(可选,默认 20)\n\n注意:--start 和 --end 必须同时设置或同时不设置,不允许只设置其中一个。\n\n【适用场景】\n - 查询公司离职员工名单\n - 按时间范围/部门/姓名筛选离职员工\n\n【不适用场景】\n - 查询在职员工 → 使用 contact user search", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -212342,44 +209741,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取离职员工列表,支持按照员工姓名、离职时间范围、部门过滤" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "分页获取离职员工列表,支持按员工姓名、离职时间范围、部门进行过滤。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n --name 员工姓名,模糊搜索(可选)\n --start 离职日期查询范围开始,格式 YYYY-MM-DD(可选)\n --end 离职日期查询范围结束,格式 YYYY-MM-DD(可选)\n --depts 部门 ID 列表,逗号分隔(可选)\n --hide-retirement 是否隐藏退休,默认 true(可选)\n --hide-partner 是否隐藏合作伙伴,默认 false(可选)\n --page 页码,从 1 开始(可选,默认 1)\n --limit 页大小,200 以内(可选,默认 20)\n\n注意:--start 和 --end 必须同时设置或同时不设置,不允许只设置其中一个。\n\n【适用场景】\n - 查询公司离职员工名单\n - 按时间范围/部门/姓名筛选离职员工\n\n【不适用场景】\n - 查询在职员工 → 使用 contact user search" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取离职员工列表,支持按照员工姓名、离职时间范围、部门过滤" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取离职员工列表,支持按照员工姓名、离职时间范围、部门过滤" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "分页获取离职员工列表,支持按员工姓名、离职时间范围、部门进行过滤。\n\n认证信息(corpId、optUserId)由系统自动注入,无需手动传入。\n --name 员工姓名,模糊搜索(可选)\n --start 离职日期查询范围开始,格式 YYYY-MM-DD(可选)\n --end 离职日期查询范围结束,格式 YYYY-MM-DD(可选)\n --depts 部门 ID 列表,逗号分隔(可选)\n --hide-retirement 是否隐藏退休,默认 true(可选)\n --hide-partner 是否隐藏合作伙伴,默认 false(可选)\n --page 页码,从 1 开始(可选,默认 1)\n --limit 页大小,200 以内(可选,默认 20)\n\n注意:--start 和 --end 必须同时设置或同时不设置,不允许只设置其中一个。\n\n【适用场景】\n - 查询公司离职员工名单\n - 按时间范围/部门/姓名筛选离职员工\n\n【不适用场景】\n - 查询在职员工 → 使用 contact user search" }, "effect": { "candidates": [ @@ -212520,22 +209897,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_dismission_employee_list" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "分页获取离职员工列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_dismission_employee_list" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_dismission_employee_list" + "source": "cobra_help", + "value": "分页获取离职员工列表" }, "use_when": { "candidates": [ @@ -213381,7 +210758,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_dismission_employee_list", + "title": "分页获取离职员工列表", "use_when": [ "需要按姓名、离职时间或部门查询离职员工时" ] @@ -213413,11 +210790,8 @@ "cli_name": "search", "cli_path": "contact user search", "confirmation": "not_required", - "description": "根据关键词搜索好友和同事", + "description": "按关键词搜索用户", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -213515,44 +210889,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词搜索好友和同事" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索用户" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词搜索好友和同事" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词搜索好友和同事" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按关键词搜索用户" }, "effect": { "candidates": [ @@ -213697,22 +211049,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词搜索好友和同事" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索用户" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词搜索好友和同事" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词搜索好友和同事" + "source": "cobra_help", + "value": "按关键词搜索用户" }, "use_when": { "candidates": [ @@ -213864,7 +211216,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "根据关键词搜索好友和同事", + "title": "按关键词搜索用户", "use_when": [ "需要按姓名或关键词搜索通讯录用户时" ] @@ -213895,11 +211247,8 @@ "cli_name": "search", "cli_path": "contact dept search", "confirmation": "not_required", - "description": "根据关键词模糊搜索部门,返回匹配的部门列表,包含每个部门的 ID、名称。搜索范围限于调用者有权限查看的组织架构;若关键词无匹配结果或部门因可见性设置被隐藏,则相应部门不会出现在结果中。", + "description": "搜索部门", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -213997,44 +211346,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词模糊搜索部门,返回匹配的部门列表,包含每个部门的 ID、名称。搜索范围限于调用者有权限查看的组织架构;若关键词无匹配结果或部门因可见性设置被隐藏,则相应部门不会出现在结果中。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索部门" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词模糊搜索部门,返回匹配的部门列表,包含每个部门的 ID、名称。搜索范围限于调用者有权限查看的组织架构;若关键词无匹配结果或部门因可见性设置被隐藏,则相应部门不会出现在结果中。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词模糊搜索部门,返回匹配的部门列表,包含每个部门的 ID、名称。搜索范围限于调用者有权限查看的组织架构;若关键词无匹配结果或部门因可见性设置被隐藏,则相应部门不会出现在结果中。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "搜索部门" }, "effect": { "candidates": [ @@ -214179,21 +211506,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索部门" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "搜索部门" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索部门" }, "use_when": { @@ -214371,11 +211698,8 @@ "cli_name": "search-mobile", "cli_path": "contact user search-mobile", "confirmation": "not_required", - "description": "通过手机号搜索获取用户名称和userId。", + "description": "按手机号搜索用户", "display": "通讯录 / 用户 / 部门 / 人员关系", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -214473,44 +211797,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "通过手机号搜索获取用户名称和userId。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按手机号搜索用户" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "通过手机号搜索获取用户名称和userId。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "通过手机号搜索获取用户名称和userId。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按手机号搜索用户" }, "effect": { "candidates": [ @@ -214655,22 +211957,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "通过手机号获取成员userId和名称" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按手机号搜索用户" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "通过手机号获取成员userId和名称" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "通过手机号获取成员userId和名称" + "source": "cobra_help", + "value": "按手机号搜索用户" }, "use_when": { "candidates": [ @@ -214816,7 +212118,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "通过手机号获取成员userId和名称", + "title": "按手机号搜索用户", "use_when": [ "已知手机号,需要精确搜索用户时" ] @@ -214831,6 +212133,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -214844,14 +212147,11 @@ "canonical_path": "dev.add_dev_app_members", "cli_name": "add", "cli_path": "dev app member add", - "confirmation": "not_required", + "confirmation": "user_required", "description": "添加开放平台应用成员", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app member add --unified-app-id \u003cunifiedAppId\u003e --user-ids userId1,userId2 --member-type DEVELOPER --dry-run" ], @@ -214876,7 +212176,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -214884,7 +212184,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -214927,65 +212227,59 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "添加开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "添加开放平台应用成员" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "write" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, "examples": { @@ -215011,54 +212305,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -215075,7 +212377,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -215097,9 +212399,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -215112,27 +212414,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "添加开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "添加开放平台应用成员" @@ -215161,8 +212471,8 @@ "group": "app.member", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "add_dev_app_members", "parameter_count": 3, @@ -215193,16 +212503,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "memberType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "memberType" + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -215253,7 +212571,6 @@ "value": "string" } }, - "property": "memberType", "required": true, "type": "string" }, @@ -215283,16 +212600,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -215343,7 +212668,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -215373,16 +212697,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userIds" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userIds" + "review_reason": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -215433,7 +212765,6 @@ "value": "string" } }, - "property": "userIds", "required": true, "type": "string" } @@ -215459,6 +212790,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -215472,12 +212804,9 @@ "canonical_path": "dev.apply_dev_app_permissions", "cli_name": "add", "cli_path": "dev app permission add", - "confirmation": "not_required", + "confirmation": "user_required", "description": "申请开放平台应用权限点", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -215504,7 +212833,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -215512,7 +212841,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -215555,53 +212884,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "申请开放平台应用权限点" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "申请开放平台应用权限点" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -215611,6 +212926,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -215647,54 +212969,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -215711,7 +213041,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -215733,9 +213063,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -215748,27 +213078,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "申请开放平台应用权限点" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "申请开放平台应用权限点" @@ -215797,8 +213135,8 @@ "group": "app.permission", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "apply_dev_app_permissions", "parameter_count": 2, @@ -215829,16 +213167,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scopeValues" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scopeValues" + "review_reason": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -215889,7 +213235,6 @@ "value": "string" } }, - "property": "scopeValues", "required": true, "type": "string" }, @@ -215919,16 +213264,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -215979,7 +213332,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -216118,13 +213470,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看连接器健康状态(healthy/degraded/down,pid、收发活动、日志路径;--json 供外部托管消费)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看连接器健康状态(healthy/degraded/down,pid、收发活动、日志路径;--json 供外部托管消费)" @@ -216273,13 +213625,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看连接器健康状态(healthy/degraded/down,pid、收发活动、日志路径;--json 供外部托管消费)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看连接器健康状态(healthy/degraded/down,pid、收发活动、日志路径;--json 供外部托管消费)" @@ -216713,13 +214065,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)" @@ -216868,13 +214220,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "优雅停止后台连接器守护进程(释放单实例锁与 Stream 连接)" @@ -217111,6 +214463,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -217124,12 +214477,9 @@ "canonical_path": "dev.create_dev_app", "cli_name": "create", "cli_path": "dev app create", - "confirmation": "not_required", + "confirmation": "user_required", "description": "创建开放平台企业内部应用", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -217156,7 +214506,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -217164,7 +214514,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -217207,53 +214557,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建开放平台企业内部应用" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -217263,6 +214599,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -217299,54 +214642,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -217363,7 +214714,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -217385,9 +214736,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -217400,27 +214751,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建开放平台企业内部应用" @@ -217449,8 +214808,8 @@ "group": "app", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "create_dev_app", "parameter_count": 3, @@ -217481,16 +214840,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -217535,7 +214902,6 @@ "value": "string" } }, - "property": "desc", "required": false, "type": "string" }, @@ -217565,16 +214931,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "iconMediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "iconMediaId" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -217619,7 +214993,6 @@ "value": "string" } }, - "property": "iconMediaId", "required": false, "type": "string" }, @@ -217649,16 +215022,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -217709,7 +215090,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" } @@ -217735,6 +215115,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -217748,12 +215129,9 @@ "canonical_path": "dev.create_dev_app_version", "cli_name": "create", "cli_path": "dev app version create", - "confirmation": "not_required", + "confirmation": "user_required", "description": "基于当前配置创建应用新版本", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -217780,7 +215158,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -217788,7 +215166,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -217831,53 +215209,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "基于当前配置创建应用新版本" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "基于当前配置创建应用新版本" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -217887,6 +215251,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -217923,54 +215294,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -217987,7 +215366,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -218009,9 +215388,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -218024,27 +215403,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "基于当前配置创建应用新版本" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "基于当前配置创建应用新版本" @@ -218073,8 +215460,8 @@ "group": "app.version", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "create_dev_app_version", "parameter_count": 3, @@ -218105,16 +215492,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -218159,7 +215554,6 @@ "value": "string" } }, - "property": "desc", "required": false, "type": "string" }, @@ -218189,16 +215583,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -218249,7 +215651,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -218279,16 +215680,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "version" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "version" + "review_reason": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -218339,7 +215748,6 @@ "value": "string" } }, - "property": "version", "required": false, "type": "string" } @@ -218365,6 +215773,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -218381,9 +215790,6 @@ "confirmation": "user_required", "description": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -218410,7 +215816,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -218418,7 +215824,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -218460,56 +215866,41 @@ }, "confirmation": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, { "precedence": "skill", "review_reason": "Skill command comment explicitly marks the operation as risky", - "selected": true, + "selected": false, "source": "skills/mono/references/products/dev.md", "value": "user_required" } ], - "precedence": "skill", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "Skill command comment explicitly marks the operation as risky", - "source": "skills/mono/references/products/dev.md", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -218519,6 +215910,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "destructive" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" + }, { "precedence": "skill", "review_reason": "Skill command comment explicitly marks the operation as risky", @@ -218562,54 +215960,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -218626,7 +216032,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -218648,9 +216054,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -218662,30 +216068,37 @@ }, "risk": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, { "precedence": "skill", "review_reason": "Skill command comment explicitly marks the operation as risky", - "selected": true, + "selected": false, "source": "skills/mono/references/products/dev.md", "value": "high" } ], - "precedence": "skill", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "Skill command comment explicitly marks the operation as risky", - "source": "skills/mono/references/products/dev.md", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除开放平台企业内部应用(不可逆,需 --confirm-name 二次确认)" @@ -218714,8 +216127,8 @@ "group": "app", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "delete_dev_app", "parameter_count": 2, @@ -218746,16 +216159,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --confirm-name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "confirmName" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "confirmName" + "review_reason": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --confirm-name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -218800,7 +216221,6 @@ "value": "string" } }, - "property": "confirmName", "required": false, "type": "string" }, @@ -218830,16 +216250,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -218890,7 +216318,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -218916,6 +216343,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -218932,9 +216360,6 @@ "confirmation": "user_required", "description": "停用开放平台企业内部应用", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -218961,7 +216386,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -218969,7 +216394,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -219018,6 +216443,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "user_required" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, { "precedence": "inference_or_default", "selected": false, @@ -219034,39 +216466,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "停用开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "停用开放平台企业内部应用" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -219076,6 +216486,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -219112,54 +216529,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -219176,7 +216601,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -219198,9 +216623,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -219219,6 +216644,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "high" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, { "precedence": "inference_or_default", "selected": false, @@ -219235,13 +216667,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "停用开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "停用开放平台企业内部应用" @@ -219270,8 +216702,8 @@ "group": "app", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "disable_dev_app", "parameter_count": 1, @@ -219302,16 +216734,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.disable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.disable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -219362,7 +216802,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -219388,6 +216827,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -219404,9 +216844,6 @@ "confirmation": "user_required", "description": "停用现有应用的机器人能力", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -219433,7 +216870,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -219441,7 +216878,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -219490,6 +216927,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "user_required" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, { "precedence": "inference_or_default", "selected": false, @@ -219506,39 +216950,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "停用现有应用的机器人能力" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "停用现有应用的机器人能力" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -219548,6 +216970,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -219584,54 +217013,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -219648,7 +217085,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -219670,9 +217107,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -219691,6 +217128,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "high" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, { "precedence": "inference_or_default", "selected": false, @@ -219707,13 +217151,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "停用现有应用的机器人能力" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "停用现有应用的机器人能力" @@ -219742,8 +217186,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "disable_dev_app_robot", "parameter_count": 1, @@ -219774,16 +217218,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.disable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.disable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -219834,7 +217286,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -219860,6 +217311,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -219873,12 +217325,9 @@ "canonical_path": "dev.enable_dev_app", "cli_name": "enable", "cli_path": "dev app enable", - "confirmation": "not_required", + "confirmation": "user_required", "description": "启用开放平台企业内部应用", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -219905,7 +217354,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -219913,7 +217362,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -219956,53 +217405,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "启用开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "启用开放平台企业内部应用" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -220012,6 +217447,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -220048,54 +217490,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -220112,7 +217562,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -220134,9 +217584,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -220149,27 +217599,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "启用开放平台企业内部应用" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "启用开放平台企业内部应用" @@ -220198,8 +217656,8 @@ "group": "app", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "enable_dev_app", "parameter_count": 1, @@ -220230,16 +217688,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.enable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.enable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -220290,7 +217756,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -220316,6 +217781,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -220329,12 +217795,9 @@ "canonical_path": "dev.enable_dev_app_robot", "cli_name": "enable", "cli_path": "dev app robot enable", - "confirmation": "not_required", + "confirmation": "user_required", "description": "启用现有应用机器人能力(纯启用,无需配置字段)", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -220361,7 +217824,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -220369,7 +217832,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -220412,53 +217875,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "启用现有应用机器人能力(纯启用,无需配置字段)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "启用现有应用机器人能力(纯启用,无需配置字段)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -220468,6 +217917,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -220504,54 +217960,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -220568,7 +218032,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -220590,9 +218054,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -220605,27 +218069,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "启用现有应用机器人能力(纯启用,无需配置字段)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "启用现有应用机器人能力(纯启用,无需配置字段)" @@ -220654,8 +218126,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "enable_dev_app_robot", "parameter_count": 1, @@ -220686,16 +218158,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.enable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.enable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -220746,7 +218226,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -220788,9 +218267,6 @@ "confirmation": "not_required", "description": "查询开放平台企业内部应用详情", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -220817,7 +218293,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -220825,7 +218301,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -220882,39 +218358,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台企业内部应用详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台企业内部应用详情" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -220975,39 +218429,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -221024,7 +218478,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -221043,13 +218497,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -221075,13 +218522,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台企业内部应用详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台企业内部应用详情" @@ -221110,8 +218557,8 @@ "group": "app", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_dev_app", "parameter_count": 1, @@ -221142,16 +218589,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -221202,7 +218657,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -221243,9 +218697,6 @@ "confirmation": "not_required", "description": "读取开放平台应用凭证", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -221272,7 +218723,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -221280,7 +218731,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -221337,39 +218788,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "读取开放平台应用凭证" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "读取开放平台应用凭证" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -221430,39 +218859,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -221479,7 +218908,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -221498,13 +218927,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -221530,13 +218952,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "读取开放平台应用凭证" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "读取开放平台应用凭证" @@ -221565,8 +218987,8 @@ "group": "app.credentials", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_dev_app_credentials", "parameter_count": 1, @@ -221597,16 +219019,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_credentials has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_credentials has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -221657,7 +219087,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -221699,9 +219128,6 @@ "confirmation": "not_required", "description": "查询指定版本详情", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -221728,7 +219154,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -221736,7 +219162,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -221793,39 +219219,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定版本详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定版本详情" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -221878,39 +219282,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -221927,7 +219331,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -221946,13 +219350,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -221978,13 +219375,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询指定版本详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询指定版本详情" @@ -222013,8 +219410,8 @@ "group": "app.version", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_dev_app_version_detail", "parameter_count": 2, @@ -222045,16 +219442,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -222105,7 +219510,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -222135,16 +219539,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "versionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "versionId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -222195,7 +219607,6 @@ "value": "string" } }, - "property": "versionId", "required": true, "type": "string" } @@ -222237,9 +219648,6 @@ "confirmation": "not_required", "description": "查询版本发布/审批状态", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -222266,7 +219674,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -222274,7 +219682,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -222331,39 +219739,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询版本发布/审批状态" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询版本发布/审批状态" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -222424,39 +219810,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -222473,7 +219859,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -222492,13 +219878,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -222524,13 +219903,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询版本发布/审批状态" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询版本发布/审批状态" @@ -222559,8 +219938,8 @@ "group": "app.version", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_dev_app_version_status", "parameter_count": 2, @@ -222591,16 +219970,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -222651,7 +220038,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -222681,16 +220067,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "versionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "versionId" + "review_reason": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -222741,7 +220135,6 @@ "value": "string" } }, - "property": "versionId", "required": true, "type": "string" } @@ -222783,9 +220176,6 @@ "confirmation": "not_required", "description": "查询现有应用的机器人配置", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -222812,7 +220202,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -222820,7 +220210,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -222877,39 +220267,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询现有应用的机器人配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询现有应用的机器人配置" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -222970,39 +220338,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -223019,7 +220387,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -223038,13 +220406,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -223070,13 +220431,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询现有应用的机器人配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询现有应用的机器人配置" @@ -223105,8 +220466,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_extension_robot_config", "parameter_count": 1, @@ -223137,16 +220498,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.get_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -223197,7 +220566,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -223239,9 +220607,6 @@ "confirmation": "not_required", "description": "查询网页应用配置", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -223268,7 +220633,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -223276,7 +220641,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -223333,39 +220698,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询网页应用配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询网页应用配置" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -223418,39 +220761,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -223467,7 +220810,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -223486,13 +220829,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -223518,13 +220854,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询网页应用配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询网页应用配置" @@ -223553,8 +220889,8 @@ "group": "app.webapp", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_extension_webapp_config", "parameter_count": 1, @@ -223585,28 +220921,30 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.get_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, - "source": "flag_name_inference", - "value": "unifiedAppId" - } - ], - "precedence": "inference", - "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" - }, - "required": { - "candidates": [ - { - "precedence": "tool_schema_hint", - "selected": true, - "source": "tool_schema_hint", - "value": true + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", "selected": false, + "source": "flag_name_inference", + "value": "unifiedAppId" + } + ], + "precedence": "reviewed_mapping_exclusion", + "resolution": "highest_precedence", + "review_reason": "Reviewed unpinned adapter: dev.get_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" + }, + "required": { + "candidates": [ + { + "precedence": "inference", + "selected": true, "source": "usage_required_inference", "value": true }, @@ -223617,9 +220955,9 @@ "value": false } ], - "precedence": "tool_schema_hint", + "precedence": "inference", "resolution": "highest_precedence", - "source": "tool_schema_hint", + "source": "usage_required_inference", "value": true }, "required_when": { @@ -223651,7 +220989,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -223693,9 +221030,6 @@ "confirmation": "not_required", "description": "查询开放平台企业内部应用列表", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -223722,7 +221056,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -223730,7 +221064,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -223787,39 +221121,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台企业内部应用列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台企业内部应用列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -223880,39 +221192,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -223929,7 +221241,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -223948,13 +221260,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -223980,13 +221285,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台企业内部应用列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台企业内部应用列表" @@ -224015,8 +221320,8 @@ "group": "app", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_dev_app", "parameter_count": 11, @@ -224047,16 +221352,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-group-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "appGroupId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "appGroupId" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-group-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224101,7 +221414,6 @@ "value": "integer" } }, - "property": "appGroupId", "required": false, "type": "integer" }, @@ -224131,16 +221443,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-key is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "appKey" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "appKey" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-key is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224185,7 +221505,6 @@ "value": "string" } }, - "property": "appKey", "required": false, "type": "string" }, @@ -224215,16 +221534,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --creator is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "creator" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "creator" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --creator is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224269,7 +221596,6 @@ "value": "string" } }, - "property": "creator", "required": false, "type": "string" }, @@ -224299,16 +221625,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224353,7 +221687,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -224383,16 +221716,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --develop-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "developType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "developType" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --develop-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224437,7 +221778,6 @@ "value": "integer" } }, - "property": "developType", "required": false, "type": "integer" }, @@ -224467,16 +221807,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --filter-cool-app is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterCoolApp" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterCoolApp" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --filter-cool-app is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224521,7 +221869,6 @@ "value": "integer" } }, - "property": "filterCoolApp", "required": false, "type": "integer" }, @@ -224551,16 +221898,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224605,7 +221960,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -224636,16 +221990,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pageSize" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pageSize" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224696,7 +222058,6 @@ "value": "integer" } }, - "property": "pageSize", "required": false, "type": "integer" }, @@ -224726,16 +222087,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "robotName" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "robotName" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224780,7 +222149,6 @@ "value": "string" } }, - "property": "robotName", "required": false, "type": "string" }, @@ -224810,16 +222178,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-order is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sortOrder" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sortOrder" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-order is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224864,7 +222240,6 @@ "value": "string" } }, - "property": "sortOrder", "required": false, "type": "string" }, @@ -224894,16 +222269,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sortType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sortType" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -224948,7 +222331,6 @@ "value": "string" } }, - "property": "sortType", "required": false, "type": "string" } @@ -224990,9 +222372,6 @@ "confirmation": "not_required", "description": "查询应用已订阅的事件列表", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -225019,7 +222398,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -225027,7 +222406,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -225084,39 +222463,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询应用已订阅的事件列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询应用已订阅的事件列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -225177,39 +222534,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -225226,7 +222583,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -225245,13 +222602,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -225277,13 +222627,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询应用已订阅的事件列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询应用已订阅的事件列表" @@ -225312,8 +222662,8 @@ "group": "app.event", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_dev_app_events", "parameter_count": 4, @@ -225344,16 +222694,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -225398,7 +222756,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -225428,16 +222785,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "keyword" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "keyword" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -225482,7 +222847,6 @@ "value": "string" } }, - "property": "keyword", "required": false, "type": "string" }, @@ -225513,16 +222877,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pageSize" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pageSize" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -225573,7 +222945,6 @@ "value": "integer" } }, - "property": "pageSize", "required": false, "type": "integer" }, @@ -225603,16 +222974,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -225663,7 +223042,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -225705,9 +223083,6 @@ "confirmation": "not_required", "description": "查询开放平台应用成员", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -225734,7 +223109,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -225742,7 +223117,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -225799,39 +223174,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台应用成员" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -225884,39 +223237,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -225933,7 +223286,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -225952,13 +223305,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -225984,13 +223330,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台应用成员" @@ -226019,8 +223365,8 @@ "group": "app.member", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_dev_app_members", "parameter_count": 1, @@ -226051,16 +223397,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226111,7 +223465,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -226153,9 +223506,6 @@ "confirmation": "not_required", "description": "查询开放平台应用权限列表", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -226182,7 +223532,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -226190,7 +223540,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -226247,39 +223597,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台应用权限列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台应用权限列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -226340,39 +223668,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -226389,7 +223717,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -226408,13 +223736,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -226440,13 +223761,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询开放平台应用权限列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询开放平台应用权限列表" @@ -226475,8 +223796,8 @@ "group": "app.permission", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_dev_app_permissions", "parameter_count": 8, @@ -226507,16 +223828,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --api-status is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "apiStatus" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "apiStatus" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --api-status is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226561,7 +223890,6 @@ "value": "string" } }, - "property": "apiStatus", "required": false, "type": "string" }, @@ -226592,16 +223920,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --auth-status is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "authStatus" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "authStatus" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --auth-status is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226652,7 +223988,6 @@ "value": "string" } }, - "property": "authStatus", "required": false, "type": "string" }, @@ -226682,16 +224017,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226736,7 +224079,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -226766,16 +224108,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "keyword" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "keyword" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226820,7 +224170,6 @@ "value": "string" } }, - "property": "keyword", "required": false, "type": "string" }, @@ -226851,16 +224200,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pageSize" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pageSize" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226911,7 +224268,6 @@ "value": "integer" } }, - "property": "pageSize", "required": false, "type": "integer" }, @@ -226941,16 +224297,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scopeType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scopeType" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -226995,7 +224359,6 @@ "value": "string" } }, - "property": "scopeType", "required": false, "type": "string" }, @@ -227025,16 +224388,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-value is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scopeValue" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scopeValue" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-value is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -227079,7 +224450,6 @@ "value": "string" } }, - "property": "scopeValue", "required": false, "type": "string" }, @@ -227109,16 +224479,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -227169,7 +224547,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -227211,9 +224588,6 @@ "confirmation": "not_required", "description": "分页查询应用版本列表", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -227240,7 +224614,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -227248,7 +224622,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -227305,39 +224679,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "分页查询应用版本列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "分页查询应用版本列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -227390,39 +224742,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -227439,7 +224791,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -227458,13 +224810,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -227490,13 +224835,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "分页查询应用版本列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "分页查询应用版本列表" @@ -227525,8 +224870,8 @@ "group": "app.version", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_dev_app_versions", "parameter_count": 3, @@ -227557,16 +224902,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -227611,7 +224964,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -227642,16 +224994,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pageSize" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pageSize" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -227702,7 +225062,6 @@ "value": "integer" } }, - "property": "pageSize", "required": false, "type": "integer" }, @@ -227732,16 +225091,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -227792,7 +225159,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -227818,6 +225184,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -227831,12 +225198,9 @@ "canonical_path": "dev.publish_dev_app_version", "cli_name": "publish", "cli_path": "dev app version publish", - "confirmation": "not_required", + "confirmation": "user_required", "description": "发布指定版本(含高敏权限需 --confirmed-sensitive)", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -227863,7 +225227,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -227871,7 +225235,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -227914,53 +225278,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "发布指定版本(含高敏权限需 --confirmed-sensitive)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "发布指定版本(含高敏权限需 --confirmed-sensitive)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -227970,6 +225320,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -228006,54 +225363,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -228070,7 +225435,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -228092,9 +225457,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -228107,27 +225472,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "发布指定版本(含高敏权限需 --confirmed-sensitive)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "发布指定版本(含高敏权限需 --confirmed-sensitive)" @@ -228156,8 +225529,8 @@ "group": "app.version", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "publish_dev_app_version", "parameter_count": 4, @@ -228188,16 +225561,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --approver-user-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "approverUserId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "approverUserId" + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --approver-user-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -228242,7 +225623,6 @@ "value": "string" } }, - "property": "approverUserId", "required": false, "type": "string" }, @@ -228272,16 +225652,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --confirmed-sensitive is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "confirmedSensitive" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "confirmedSensitive" + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --confirmed-sensitive is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -228326,7 +225714,6 @@ "value": "boolean" } }, - "property": "confirmedSensitive", "required": false, "type": "boolean" }, @@ -228356,16 +225743,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -228416,7 +225811,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -228446,16 +225840,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "versionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "versionId" + "review_reason": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -228506,7 +225908,6 @@ "value": "string" } }, - "property": "versionId", "required": true, "type": "string" } @@ -228548,9 +225949,6 @@ "confirmation": "not_required", "description": "查询机器人异步创建任务结果", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -228577,7 +225975,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -228585,7 +225983,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -228642,39 +226040,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询机器人异步创建任务结果" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询机器人异步创建任务结果" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -228735,39 +226111,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -228784,7 +226160,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -228803,13 +226179,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -228835,13 +226204,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询机器人异步创建任务结果" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询机器人异步创建任务结果" @@ -228870,8 +226239,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "query_robot_create_result", "parameter_count": 1, @@ -228902,16 +226271,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.query_robot_create_result has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "taskId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "taskId" + "review_reason": "Reviewed unpinned adapter: dev.query_robot_create_result has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -228962,7 +226339,6 @@ "value": "string" } }, - "property": "taskId", "required": true, "type": "string" } @@ -228988,6 +226364,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -229004,9 +226381,6 @@ "confirmation": "user_required", "description": "移除开放平台应用成员", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -229033,7 +226407,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -229041,7 +226415,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -229089,6 +226463,13 @@ "selected": true, "source": "internal/cli/schema_hints/destructive-safety.json", "value": "user_required" + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" } ], "precedence": "reviewed_explicit", @@ -229100,39 +226481,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "移除开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "移除开放平台应用成员" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -229141,6 +226500,13 @@ "selected": true, "source": "internal/cli/schema_hints/destructive-safety.json", "value": "destructive" + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" } ], "precedence": "reviewed_explicit", @@ -229172,54 +226538,56 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, - "source": "effect-default", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -229236,7 +226604,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -229258,9 +226626,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -229278,6 +226646,13 @@ "selected": true, "source": "internal/cli/schema_hints/destructive-safety.json", "value": "high" + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" } ], "precedence": "reviewed_explicit", @@ -229289,13 +226664,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "移除开放平台应用成员" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "移除开放平台应用成员" @@ -229324,8 +226699,8 @@ "group": "app.member", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "remove_dev_app_members", "parameter_count": 3, @@ -229356,16 +226731,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "memberType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "memberType" + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -229416,7 +226799,6 @@ "value": "string" } }, - "property": "memberType", "required": true, "type": "string" }, @@ -229446,16 +226828,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -229506,7 +226896,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" }, @@ -229536,16 +226925,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "userIds" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "userIds" + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -229596,7 +226993,6 @@ "value": "string" } }, - "property": "userIds", "required": true, "type": "string" } @@ -229622,6 +227018,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -229638,9 +227035,6 @@ "confirmation": "user_required", "description": "取消开放平台应用权限点", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -229667,7 +227061,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -229675,7 +227069,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -229724,6 +227118,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "user_required" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, { "precedence": "inference_or_default", "selected": false, @@ -229740,39 +227141,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消开放平台应用权限点" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消开放平台应用权限点" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -229782,6 +227161,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "destructive" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" + }, { "precedence": "inference_or_default", "selected": false, @@ -229818,54 +227204,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -229882,7 +227276,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -229904,9 +227298,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -229925,6 +227319,13 @@ "source": "internal/cli/schema_hints/destructive-safety.json", "value": "high" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, { "precedence": "inference_or_default", "selected": false, @@ -229941,13 +227342,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消开放平台应用权限点" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消开放平台应用权限点" @@ -229976,8 +227377,8 @@ "group": "app.permission", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "remove_dev_app_permissions", "parameter_count": 2, @@ -230008,16 +227409,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "scopeValues" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "scopeValues" + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -230068,7 +227477,6 @@ "value": "string" } }, - "property": "scopeValues", "required": true, "type": "string" }, @@ -230098,16 +227506,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -230158,7 +227574,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -230204,11 +227619,8 @@ ] ] }, - "description": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。", + "description": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -230300,44 +227712,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。" }, "effect": { "candidates": [ @@ -230479,22 +227869,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_open_platform_docs" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索开放平台文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_open_platform_docs" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_open_platform_docs" + "source": "cobra_help", + "value": "搜索开放平台文档" }, "use_when": { "candidates": [ @@ -230899,7 +228289,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_open_platform_docs", + "title": "搜索开放平台文档", "use_when": [ "明确需要验证或使用 dev doc search 入口时" ] @@ -230914,6 +228304,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -230927,12 +228318,9 @@ "canonical_path": "dev.set_extension_robot_config", "cli_name": "config", "cli_path": "dev app robot config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "创建或更新现有应用的机器人配置(upsert)", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -230959,7 +228347,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -230967,7 +228355,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -231010,53 +228398,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建或更新现有应用的机器人配置(upsert)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建或更新现有应用的机器人配置(upsert)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -231066,6 +228440,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -231102,54 +228483,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -231166,7 +228555,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -231188,9 +228577,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -231203,27 +228592,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建或更新现有应用的机器人配置(upsert)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建或更新现有应用的机器人配置(upsert)" @@ -231252,8 +228649,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "set_extension_robot_config", "parameter_count": 14, @@ -231284,16 +228681,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --add-scope is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "addScope" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "addScope" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --add-scope is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231338,7 +228743,6 @@ "value": "boolean" } }, - "property": "addScope", "required": false, "type": "boolean" }, @@ -231368,16 +228772,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --brief is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "brief" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "brief" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --brief is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231422,7 +228834,6 @@ "value": "string" } }, - "property": "brief", "required": false, "type": "string" }, @@ -231452,16 +228863,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231506,7 +228925,6 @@ "value": "string" } }, - "property": "desc", "required": false, "type": "string" }, @@ -231536,16 +228954,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --disable-ssl-verify is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "disableSslVerify" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "disableSslVerify" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --disable-ssl-verify is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231590,7 +229016,6 @@ "value": "boolean" } }, - "property": "disableSslVerify", "required": false, "type": "boolean" }, @@ -231620,16 +229045,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --event-callback-url is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "eventCallbackUrl" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "eventCallbackUrl" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --event-callback-url is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231674,7 +229107,6 @@ "value": "string" } }, - "property": "eventCallbackUrl", "required": false, "type": "string" }, @@ -231704,16 +229136,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-brief is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "i18nBrief" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "i18nBrief" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-brief is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231758,7 +229198,6 @@ "value": "string" } }, - "property": "i18nBrief", "required": false, "type": "string" }, @@ -231788,16 +229227,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-description is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "i18nDescription" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "i18nDescription" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-description is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231842,7 +229289,6 @@ "value": "string" } }, - "property": "i18nDescription", "required": false, "type": "string" }, @@ -231872,16 +229318,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "i18nName" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "i18nName" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -231926,7 +229380,6 @@ "value": "string" } }, - "property": "i18nName", "required": false, "type": "string" }, @@ -231956,16 +229409,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "iconMediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "iconMediaId" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232010,7 +229471,6 @@ "value": "string" } }, - "property": "iconMediaId", "required": false, "type": "string" }, @@ -232040,16 +229500,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --mode is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mode" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mode" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --mode is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232094,7 +229562,6 @@ "value": "string" } }, - "property": "mode", "required": false, "type": "string" }, @@ -232124,16 +229591,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232184,7 +229659,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -232214,16 +229688,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --outgoing-url is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "outgoingUrl" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "outgoingUrl" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --outgoing-url is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232268,7 +229750,6 @@ "value": "string" } }, - "property": "outgoingUrl", "required": false, "type": "string" }, @@ -232298,16 +229779,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --skills is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "skills" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "skills" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --skills is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232352,7 +229841,6 @@ "value": "string" } }, - "property": "skills", "required": false, "type": "string" }, @@ -232382,16 +229870,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232442,7 +229938,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -232468,6 +229963,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -232481,14 +229977,11 @@ "canonical_path": "dev.set_extension_webapp_config", "cli_name": "config", "cli_path": "dev app webapp config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "配置网页应用能力", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app webapp config --unified-app-id \u003cunifiedAppId\u003e --homepage-url https://example.com --dry-run" ], @@ -232513,7 +230006,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -232521,7 +230014,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -232564,65 +230057,59 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "配置网页应用能力" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "配置网页应用能力" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "write" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, "examples": { @@ -232648,54 +230135,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -232712,7 +230207,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -232734,9 +230229,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -232749,27 +230244,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "配置网页应用能力" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "配置网页应用能力" @@ -232798,8 +230301,8 @@ "group": "app.webapp", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "set_extension_webapp_config", "parameter_count": 5, @@ -232830,16 +230333,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --h5-page-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "h5PageType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "h5PageType" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --h5-page-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -232884,7 +230395,6 @@ "value": "string" } }, - "property": "h5PageType", "required": false, "type": "string" }, @@ -232914,36 +230424,38 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --homepage-url is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "homepageUrl" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "homepageUrl" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --homepage-url is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "tool_schema_hint", + "precedence": "default", "selected": true, - "source": "tool_schema_hint", - "value": true - }, - { - "precedence": "default", - "selected": false, "source": "default", "value": false } ], - "precedence": "tool_schema_hint", - "resolution": "highest_precedence", - "source": "tool_schema_hint", - "value": true + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false }, "required_when": { "candidates": [ @@ -232957,64 +230469,71 @@ "precedence": "default", "resolution": "highest_precedence", "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "required": false, + "type": "string" + }, + "omp-url": { + "description": "管理后台地址", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "管理后台地址" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "管理后台地址" + }, + "property": { + "candidates": [ + { + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --omp-url is a CLI wrapper input and does not publish a direct interface property.", + "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "ompUrl" + } + ], + "precedence": "reviewed_mapping_exclusion", + "resolution": "highest_precedence", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --omp-url is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", "value": "" }, - "type": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_flag_type", - "value": "string" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_flag_type", - "value": "string" - } - }, - "property": "homepageUrl", - "required": true, - "type": "string" - }, - "omp-url": { - "description": "管理后台地址", - "field_provenance": { - "description": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_usage", - "value": "管理后台地址" - }, - { - "precedence": "default", - "selected": false, - "source": "default", - "value": "" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "管理后台地址" - }, - "property": { - "candidates": [ - { - "precedence": "inference", - "selected": true, - "source": "flag_name_inference", - "value": "ompUrl" - } - ], - "precedence": "inference", - "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ompUrl" - }, "required": { "candidates": [ { @@ -233058,7 +230577,6 @@ "value": "string" } }, - "property": "ompUrl", "required": false, "type": "string" }, @@ -233088,16 +230606,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --pc-homepage-url is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pcHomepageUrl" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pcHomepageUrl" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --pc-homepage-url is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233142,7 +230668,6 @@ "value": "string" } }, - "property": "pcHomepageUrl", "required": false, "type": "string" }, @@ -233172,16 +230697,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233232,7 +230765,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -233258,6 +230790,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -233271,12 +230804,9 @@ "canonical_path": "dev.submit_robot_create_task", "cli_name": "submit", "cli_path": "dev app robot submit", - "confirmation": "not_required", + "confirmation": "user_required", "description": "异步提交钉钉智能体机器人创建任务(支持失败重试)", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -233303,7 +230833,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -233311,7 +230841,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -233354,53 +230884,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "异步提交钉钉智能体机器人创建任务(支持失败重试)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "异步提交钉钉智能体机器人创建任务(支持失败重试)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -233410,6 +230926,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -233446,54 +230969,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -233510,7 +231041,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -233532,9 +231063,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -233547,27 +231078,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "异步提交钉钉智能体机器人创建任务(支持失败重试)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "异步提交钉钉智能体机器人创建任务(支持失败重试)" @@ -233596,8 +231135,8 @@ "group": "app.robot", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "submit_robot_create_task", "parameter_count": 6, @@ -233628,16 +231167,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233688,7 +231235,6 @@ "value": "string" } }, - "property": "desc", "required": true, "type": "string" }, @@ -233718,16 +231264,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "iconMediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "iconMediaId" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233778,7 +231332,6 @@ "value": "string" } }, - "property": "iconMediaId", "required": false, "type": "string" }, @@ -233808,16 +231361,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233868,7 +231429,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -233898,16 +231458,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --preview-media-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "previewMediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "previewMediaId" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --preview-media-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -233952,7 +231520,6 @@ "value": "string" } }, - "property": "previewMediaId", "required": false, "type": "string" }, @@ -233982,16 +231549,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "robotName" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "robotName" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -234042,7 +231617,6 @@ "value": "string" } }, - "property": "robotName", "required": true, "type": "string" }, @@ -234072,16 +231646,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "taskId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "taskId" + "review_reason": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -234126,7 +231708,6 @@ "value": "string" } }, - "property": "taskId", "required": false, "type": "string" } @@ -234152,6 +231733,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -234165,12 +231747,9 @@ "canonical_path": "dev.subscribe_dev_app_events", "cli_name": "subscribe", "cli_path": "dev app event subscribe", - "confirmation": "not_required", + "confirmation": "user_required", "description": "订阅应用事件回调", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -234197,7 +231776,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -234205,7 +231784,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -234248,53 +231827,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "订阅应用事件回调" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "订阅应用事件回调" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -234304,6 +231869,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -234340,54 +231912,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -234404,7 +231984,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -234426,9 +232006,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -234441,27 +232021,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "订阅应用事件回调" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "订阅应用事件回调" @@ -234490,8 +232078,8 @@ "group": "app.event", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "subscribe_dev_app_events", "parameter_count": 2, @@ -234522,16 +232110,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "eventCodes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "eventCodes" + "review_reason": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -234582,7 +232178,6 @@ "value": "string" } }, - "property": "eventCodes", "required": true, "type": "string" }, @@ -234612,16 +232207,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -234672,7 +232275,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -234698,6 +232300,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -234711,12 +232314,9 @@ "canonical_path": "dev.unsubscribe_dev_app_events", "cli_name": "unsubscribe", "cli_path": "dev app event unsubscribe", - "confirmation": "not_required", + "confirmation": "user_required", "description": "取消订阅应用事件", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -234743,7 +232343,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -234751,7 +232351,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -234794,53 +232394,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消订阅应用事件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消订阅应用事件" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -234850,6 +232436,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -234886,54 +232479,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -234950,7 +232551,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -234972,9 +232573,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -234987,27 +232588,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消订阅应用事件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消订阅应用事件" @@ -235036,8 +232645,8 @@ "group": "app.event", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "unsubscribe_dev_app_events", "parameter_count": 2, @@ -235068,16 +232677,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "eventCodes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "eventCodes" + "review_reason": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235128,7 +232745,6 @@ "value": "string" } }, - "property": "eventCodes", "required": true, "type": "string" }, @@ -235158,16 +232774,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235218,7 +232842,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -235244,6 +232867,7 @@ "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -235257,12 +232881,9 @@ "canonical_path": "dev.update_dev_app", "cli_name": "update", "cli_path": "dev app update", - "confirmation": "not_required", + "confirmation": "user_required", "description": "修改开放平台企业内部应用基础信息", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -235289,7 +232910,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -235297,7 +232918,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -235340,53 +232961,39 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "修改开放平台企业内部应用基础信息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "修改开放平台企业内部应用基础信息" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { @@ -235396,6 +233003,13 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": "write" }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, { "precedence": "inference_or_default", "selected": false, @@ -235432,54 +233046,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -235496,7 +233118,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -235518,9 +233140,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -235533,27 +233155,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "修改开放平台企业内部应用基础信息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "修改开放平台企业内部应用基础信息" @@ -235582,8 +233212,8 @@ "group": "app", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "update_dev_app", "parameter_count": 4, @@ -235614,16 +233244,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235668,7 +233306,6 @@ "value": "string" } }, - "property": "desc", "required": false, "type": "string" }, @@ -235698,16 +233335,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "iconMediaId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "iconMediaId" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235752,7 +233397,6 @@ "value": "string" } }, - "property": "iconMediaId", "required": false, "type": "string" }, @@ -235782,16 +233426,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235842,7 +233494,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -235872,16 +233523,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -235932,7 +233591,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -235957,6 +233615,7 @@ "internal/cli/schema_hints/interface-refs.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/dev.md" @@ -235970,14 +233629,11 @@ "canonical_path": "dev.update_dev_app_security_config", "cli_name": "config", "cli_path": "dev app security config", - "confirmation": "not_required", + "confirmation": "user_required", "description": "更新开放平台应用安全配置", "display": "开放平台开发者能力", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", - "effect_source": "command-verb", + "effect_source": "agent-hint", "examples": [ "dws dev app security config --unified-app-id \u003cunifiedAppId\u003e --ip-whitelist 192.0.2.10 --redirect-urls https://callback.example.invalid/callback --dry-run" ], @@ -236002,7 +233658,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -236010,7 +233666,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -236053,65 +233709,59 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新开放平台应用安全配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新开放平台应用安全配置" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } - }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "write" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, "examples": { @@ -236137,54 +233787,62 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -236201,7 +233859,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -236223,9 +233881,9 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true } ], @@ -236238,27 +233896,35 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新开放平台应用安全配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新开放平台应用安全配置" @@ -236287,8 +233953,8 @@ "group": "app.security", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "update_dev_app_security_config", "parameter_count": 4, @@ -236319,16 +233985,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --ip-whitelist is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ipWhitelist" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ipWhitelist" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --ip-whitelist is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -236373,7 +234047,6 @@ "value": "string" } }, - "property": "ipWhitelist", "required": false, "type": "string" }, @@ -236403,36 +234076,38 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --redirect-urls is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "redirectUrls" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "redirectUrls" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --redirect-urls is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ { - "precedence": "tool_schema_hint", + "precedence": "default", "selected": true, - "source": "tool_schema_hint", - "value": true - }, - { - "precedence": "default", - "selected": false, "source": "default", "value": false } ], - "precedence": "tool_schema_hint", - "resolution": "highest_precedence", - "source": "tool_schema_hint", - "value": true + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false }, "required_when": { "candidates": [ @@ -236446,64 +234121,71 @@ "precedence": "default", "resolution": "highest_precedence", "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "required": false, + "type": "string" + }, + "sso-urls": { + "description": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)" + }, + "property": { + "candidates": [ + { + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --sso-urls is a CLI wrapper input and does not publish a direct interface property.", + "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "ssoUrls" + } + ], + "precedence": "reviewed_mapping_exclusion", + "resolution": "highest_precedence", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --sso-urls is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", "value": "" }, - "type": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_flag_type", - "value": "string" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_flag_type", - "value": "string" - } - }, - "property": "redirectUrls", - "required": true, - "type": "string" - }, - "sso-urls": { - "description": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)", - "field_provenance": { - "description": { - "candidates": [ - { - "precedence": "cobra_contract", - "selected": true, - "source": "cobra_usage", - "value": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)" - }, - { - "precedence": "default", - "selected": false, - "source": "default", - "value": "" - } - ], - "precedence": "cobra_contract", - "resolution": "highest_precedence", - "source": "cobra_usage", - "value": "端内免登地址,多个用逗号或分号分隔(整组覆盖,非追加)" - }, - "property": { - "candidates": [ - { - "precedence": "inference", - "selected": true, - "source": "flag_name_inference", - "value": "ssoUrls" - } - ], - "precedence": "inference", - "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ssoUrls" - }, "required": { "candidates": [ { @@ -236547,7 +234229,6 @@ "value": "string" } }, - "property": "ssoUrls", "required": false, "type": "string" }, @@ -236577,16 +234258,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "unifiedAppId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "unifiedAppId" + "review_reason": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -236637,7 +234326,6 @@ "value": "string" } }, - "property": "unifiedAppId", "required": true, "type": "string" } @@ -236688,11 +234376,8 @@ ] ] }, - "description": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。", + "description": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。", "display": "开放平台文档搜索", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -236799,44 +234484,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词搜索钉钉开放平台的开发文档,返回匹配的文档条目列表,包含标题、摘要、文档链接和相关标签。搜索结果按相关性排序。适用于开发者在集成或调试过程中快速查找 API 说明、接入指南、错误码解释等技术资料。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按关键词搜索 open.dingtalk.com 文档,支持分页。默认表格输出,可用 -f json 获取完整响应。" }, "effect": { "candidates": [ @@ -236983,22 +234646,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "search_open_platform_docs" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索开放平台文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "search_open_platform_docs" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "search_open_platform_docs" + "source": "cobra_help", + "value": "搜索开放平台文档" }, "use_when": { "candidates": [ @@ -237411,7 +235074,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "search_open_platform_docs", + "title": "搜索开放平台文档", "use_when": [ "需要查找钉钉 OpenAPI、字段、错误码或接入指南时" ] @@ -237444,11 +235107,8 @@ "cli_name": "recall", "cli_path": "ding message recall", "confirmation": "user_required", - "description": "撤回已发送的DING消息", + "description": "撤回 DING 消息", "display": "DING 消息 / 发送 / 撤回", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "skill-explicit", "examples": [ @@ -237554,44 +235214,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "撤回已发送的DING消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "撤回 DING 消息" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "撤回已发送的DING消息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "撤回已发送的DING消息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "撤回 DING 消息" }, "effect": { "candidates": [ @@ -237752,22 +235390,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "撤回已发送的DING消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "撤回 DING 消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "撤回已发送的DING消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "撤回已发送的DING消息" + "source": "cobra_help", + "value": "撤回 DING 消息" }, "use_when": { "candidates": [ @@ -238022,7 +235660,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "撤回已发送的DING消息", + "title": "撤回 DING 消息", "use_when": [ "用户明确要撤回一个已知 openDingId 的机器人 DING 时" ] @@ -238056,9 +235694,6 @@ "confirmation": "not_required", "description": "发送 DING 消息给指定用户,支持配置机器人编码、接收人、提醒类型和消息内容。", "display": "DING 消息 / 发送 / 撤回", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -238162,17 +235797,17 @@ "source": "tool_schema_hint", "value": "发送 DING 消息给指定用户,支持配置机器人编码、接收人、提醒类型和消息内容。" }, + { + "precedence": "cobra_help", + "selected": false, + "source": "cobra_help", + "value": "发送 DING 消息。类型:\n app = 应用内 DING (默认)\n sms = 短信 DING (有成本)\n call = 电话 DING (有成本)" + }, { "precedence": "mcp_metadata", "selected": false, "source": "mcp_metadata", "value": "使用企业内机器人发送DING消息,可发送应用内DING、短信DING、电话DING。" - }, - { - "precedence": "inference", - "selected": false, - "source": "cobra_help", - "value": "发送 DING 消息。类型:\n app = 应用内 DING (默认)\n sms = 短信 DING (有成本)\n call = 电话 DING (有成本)" } ], "precedence": "tool_schema_hint", @@ -238180,28 +235815,6 @@ "source": "tool_schema_hint", "value": "发送 DING 消息给指定用户,支持配置机器人编码、接收人、提醒类型和消息内容。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -238347,22 +235960,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "发送DING消息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "发送 DING 消息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "发送DING消息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "发送DING消息" + "source": "cobra_help", + "value": "发送 DING 消息" }, "use_when": { "candidates": [ @@ -238920,7 +236533,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "发送DING消息", + "title": "发送 DING 消息", "use_when": [ "用户明确要以机器人身份发送应用内、短信或电话 DING 时" ] @@ -238949,11 +236562,8 @@ "cli_name": "add", "cli_path": "doc permission add", "confirmation": "not_required", - "description": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。", + "description": "为指定文档(或文件夹/文件)添加一个或多个协作成员,并授予指定角色。\n\n通过 --user 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -239052,44 +236662,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为指定文档(或文件夹/文件)添加一个或多个协作成员,并授予指定角色。\n\n通过 --user 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为指定文档(或文件夹/文件)添加一个或多个协作成员,并授予指定角色。\n\n通过 --user 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" }, "effect": { "candidates": [ @@ -239230,22 +236818,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加节点成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加文档协作者" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加节点成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加节点成员" + "source": "cobra_help", + "value": "添加文档协作者" }, "use_when": { "candidates": [ @@ -239292,6 +236880,12 @@ "source": "cobra_usage", "value": "目标节点的标识(文档/文件夹/文件),支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。" + }, { "precedence": "default", "selected": false, @@ -239307,22 +236901,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -239333,9 +236939,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -239367,7 +236973,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。", + "property": "nodeId", "required": true, "type": "string" }, @@ -239382,6 +236989,12 @@ "source": "cobra_usage", "value": "权限角色: MANAGER / EDITOR / DOWNLOADER / READER (必填,大小写不敏感)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -239397,22 +237010,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -239423,9 +237048,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -239457,7 +237082,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -239472,6 +237098,12 @@ "source": "cobra_usage", "value": "被授权的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -239484,25 +237116,57 @@ "source": "cobra_usage", "value": "被授权的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -239513,9 +237177,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -239547,7 +237211,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -239562,6 +237228,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL(选填,仅用于辅助构造返回的 docUrl)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -239577,16 +237249,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -239631,7 +237309,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -239642,7 +237321,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加节点成员", + "title": "添加文档协作者", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission add 兼容入口时" ] @@ -239670,11 +237349,8 @@ "cli_name": "copy", "cli_path": "doc copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", + "description": "将文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时复制到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -239773,44 +237449,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时复制到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时复制到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -239951,22 +237605,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制文档/文件到指定位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" + "source": "cobra_help", + "value": "复制文档/文件到指定位置" }, "use_when": { "candidates": [ @@ -240012,6 +237666,12 @@ "source": "cobra_usage", "value": "目标文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -240027,16 +237687,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -240081,7 +237747,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -240096,6 +237763,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -240111,22 +237784,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -240137,9 +237822,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -240171,7 +237856,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -240186,6 +237872,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL (不传 --folder 时复制到该知识库根目录)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。" + }, { "precedence": "default", "selected": false, @@ -240201,16 +237893,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -240255,7 +237953,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。", + "property": "workspaceId", "required": false, "type": "string" } @@ -240266,7 +237965,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "将指定节点复制到目标文件夹", + "title": "复制文档/文件到指定位置", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc copy 兼容入口时" ] @@ -240299,11 +237998,8 @@ "cli_name": "create", "cli_path": "doc comment create", "confirmation": "not_required", - "description": "在钉钉文档中创建全文评论,评论不关联文档内具体位置,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建划词评论(关联文档内指定文本范围),请使用 create_inline_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。", + "description": "在指定文档上创建一条评论。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -240402,44 +238098,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉文档中创建全文评论,评论不关联文档内具体位置,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建划词评论(关联文档内指定文本范围),请使用 create_inline_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定文档上创建一条评论。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉文档中创建全文评论,评论不关联文档内具体位置,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建划词评论(关联文档内指定文本范围),请使用 create_inline_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉文档中创建全文评论,评论不关联文档内具体位置,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建划词评论(关联文档内指定文本范围),请使用 create_inline_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定文档上创建一条评论。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" }, "effect": { "candidates": [ @@ -240594,22 +238268,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建全文评论" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文档评论" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建全文评论" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建全文评论" + "source": "cobra_help", + "value": "创建文档评论" }, "use_when": { "candidates": [ @@ -240759,6 +238433,12 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被 @ 的用户 uid 列表,填写后评论内容中会插入 @mention 节点并发送通知。可通过「钉钉通讯录」相关 MCP tool(如 `search_user_by_key_word`、`search_user_by_mobile`)检索用户 uid,或使用 `dingtalk-workspace-cli` 提供的相关 skill 来检索。" + }, { "precedence": "default", "selected": false, @@ -240771,19 +238451,45 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mention" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mention" + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" }, "required": { "candidates": [ @@ -240828,7 +238534,9 @@ "value": "string" } }, - "property": "mention", + "interface_description": "被 @ 的用户 uid 列表,填写后评论内容中会插入 @mention 节点并发送通知。可通过「钉钉通讯录」相关 MCP tool(如 `search_user_by_key_word`、`search_user_by_mobile`)检索用户 uid,或使用 `dingtalk-workspace-cli` 提供的相关 skill 来检索。", + "interface_type": "array", + "property": "mentionedUserIds", "required": false, "type": "string" }, @@ -240843,6 +238551,12 @@ "source": "cobra_usage", "value": "目标文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。" + }, { "precedence": "default", "selected": false, @@ -240858,22 +238572,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -240884,9 +238610,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -240918,7 +238644,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。", + "property": "nodeId", "required": true, "type": "string" } @@ -240929,7 +238656,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建全文评论", + "title": "创建文档评论", "use_when": [ "需要创建文档评论时" ] @@ -240962,11 +238689,8 @@ "cli_name": "create", "cli_path": "doc create", "confirmation": "not_required", - "description": "创建一篇文字类型的钉钉在线文档(扩展名=adoc)。\r\n支持创建空文档或带有初始 Markdown 内容的文档。(如需创建钉钉AI表格、钉钉表格、钉钉脑图等其他类型的文件,使用 create_file 工具)\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。\r\n内容长度上限 10000 字符,超出请使用 update_document 工具分批追加写入。", + "description": "创建一篇新的钉钉在线文档。\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n初始内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -241065,44 +238789,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建一篇文字类型的钉钉在线文档(扩展名=adoc)。\r\n支持创建空文档或带有初始 Markdown 内容的文档。(如需创建钉钉AI表格、钉钉表格、钉钉脑图等其他类型的文件,使用 create_file 工具)\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。\r\n内容长度上限 10000 字符,超出请使用 update_document 工具分批追加写入。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一篇新的钉钉在线文档。\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n初始内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建一篇文字类型的钉钉在线文档(扩展名=adoc)。\r\n支持创建空文档或带有初始 Markdown 内容的文档。(如需创建钉钉AI表格、钉钉表格、钉钉脑图等其他类型的文件,使用 create_file 工具)\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。\r\n内容长度上限 10000 字符,超出请使用 update_document 工具分批追加写入。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建一篇文字类型的钉钉在线文档(扩展名=adoc)。\r\n支持创建空文档或带有初始 Markdown 内容的文档。(如需创建钉钉AI表格、钉钉表格、钉钉脑图等其他类型的文件,使用 create_file 工具)\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。\r\n内容长度上限 10000 字符,超出请使用 update_document 工具分批追加写入。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一篇新的钉钉在线文档。\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n初始内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)" }, "effect": { "candidates": [ @@ -241249,22 +238951,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建钉钉文档" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建钉钉文档" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建钉钉文档" + "source": "cobra_help", + "value": "创建文档" }, "use_when": { "candidates": [ @@ -241325,16 +239027,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "pipeline input; maps to markdown or a follow-up update_document jsonml call", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "content" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "content" + "review_reason": "pipeline input; maps to markdown or a follow-up update_document jsonml call", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -241379,7 +239089,6 @@ "value": "string" } }, - "property": "content", "required": false, "type": "string" }, @@ -241409,16 +239118,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local file input for the content pipeline", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFile" + "review_reason": "local file input for the content pipeline", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -241463,7 +239180,6 @@ "value": "string" } }, - "property": "contentFile", "required": false, "type": "string" }, @@ -241493,16 +239209,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local branch selector across create_document/update_document", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "review_reason": "local branch selector across create_document/update_document", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -241553,7 +239277,6 @@ "value": "string" } }, - "property": "contentFormat", "required": false, "type": "string" }, @@ -241583,16 +239306,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local JSONML normalization control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fixJsonml" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fixJsonml" + "review_reason": "local JSONML normalization control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -241637,7 +239368,6 @@ "value": "boolean" } }, - "property": "fixJsonml", "required": false, "type": "boolean" }, @@ -241652,6 +239382,12 @@ "source": "cobra_usage", "value": "目标文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。" + }, { "precedence": "default", "selected": false, @@ -241667,16 +239403,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -241721,7 +239463,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。", + "property": "folderId", "required": false, "type": "string" }, @@ -241845,6 +239588,12 @@ "source": "cobra_usage", "value": "目标知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -241860,16 +239609,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -241914,7 +239669,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -241925,7 +239681,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建钉钉文档", + "title": "创建文档", "use_when": [ "需要创建一篇新的在线文档时" ] @@ -241954,11 +239710,8 @@ "cli_name": "create", "cli_path": "doc file create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", + "description": "在指定目录下新增文件。支持的文件类型 (--type):\n adoc 钉钉在线文档\n axls 钉钉表格\n appt 钉钉演示\n adraw 钉钉白板\n amind 钉钉脑图\n able 钉钉多维表\n folder 文件夹\n\n兼容旧版 accessType: \"0\"=adoc \"1\"=axls \"2\"=appt \"3\"=adraw \"6\"=amind \"7\"=able \"13\"=folder\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -242057,44 +239810,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定目录下新增文件。支持的文件类型 (--type):\n adoc 钉钉在线文档\n axls 钉钉表格\n appt 钉钉演示\n adraw 钉钉白板\n amind 钉钉脑图\n able 钉钉多维表\n folder 文件夹\n\n兼容旧版 accessType: \"0\"=adoc \"1\"=axls \"2\"=appt \"3\"=adraw \"6\"=amind \"7\"=able \"13\"=folder\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定目录下新增文件。支持的文件类型 (--type):\n adoc 钉钉在线文档\n axls 钉钉表格\n appt 钉钉演示\n adraw 钉钉白板\n amind 钉钉脑图\n able 钉钉多维表\n folder 文件夹\n\n兼容旧版 accessType: \"0\"=adoc \"1\"=axls \"2\"=appt \"3\"=adraw \"6\"=amind \"7\"=able \"13\"=folder\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" }, "effect": { "candidates": [ @@ -242241,22 +239972,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建节点" + "source": "cobra_help", + "value": "创建文件" }, "use_when": { "candidates": [ @@ -242303,6 +240034,12 @@ "source": "cobra_usage", "value": "目标文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。" + }, { "precedence": "default", "selected": false, @@ -242318,16 +240055,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -242372,7 +240115,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。", + "property": "folderId", "required": false, "type": "string" }, @@ -242593,6 +240337,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持知识库 ID 或知识库 URL。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -242608,16 +240358,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -242662,7 +240418,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持知识库 ID 或知识库 URL。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -242673,7 +240430,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建节点", + "title": "创建文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc file create 兼容入口创建节点时。" ] @@ -242703,11 +240460,8 @@ "cli_name": "create", "cli_path": "doc folder create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件夹。\r\n\r\n支持在文件夹下或知识库下创建子文件夹。\r\n创建后返回新文件夹的节点 ID,可用于后续在该文件夹下创建文档或子文件夹。\r\n操作受权限控制,仅当调用者对父节点有写入权限时可成功创建。", + "description": "在指定位置创建文件夹。\n创建位置优先级: --folder (父文件夹) \u003e --workspace \u003e 默认 (我的文档根目录)", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -242806,44 +240560,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件夹。\r\n\r\n支持在文件夹下或知识库下创建子文件夹。\r\n创建后返回新文件夹的节点 ID,可用于后续在该文件夹下创建文档或子文件夹。\r\n操作受权限控制,仅当调用者对父节点有写入权限时可成功创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定位置创建文件夹。\n创建位置优先级: --folder (父文件夹) \u003e --workspace \u003e 默认 (我的文档根目录)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件夹。\r\n\r\n支持在文件夹下或知识库下创建子文件夹。\r\n创建后返回新文件夹的节点 ID,可用于后续在该文件夹下创建文档或子文件夹。\r\n操作受权限控制,仅当调用者对父节点有写入权限时可成功创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定位置创建一个新的文件夹。\r\n\r\n支持在文件夹下或知识库下创建子文件夹。\r\n创建后返回新文件夹的节点 ID,可用于后续在该文件夹下创建文档或子文件夹。\r\n操作受权限控制,仅当调用者对父节点有写入权限时可成功创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定位置创建文件夹。\n创建位置优先级: --folder (父文件夹) \u003e --workspace \u003e 默认 (我的文档根目录)" }, "effect": { "candidates": [ @@ -242990,21 +240722,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建文件夹" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建文件夹" }, "use_when": { @@ -243052,6 +240784,12 @@ "source": "cobra_usage", "value": "父文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "父文件夹的节点 ID,支持传入 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。" + }, { "precedence": "default", "selected": false, @@ -243067,16 +240805,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -243121,7 +240865,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "父文件夹的节点 ID,支持传入 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。", + "property": "folderId", "required": false, "type": "string" }, @@ -243239,6 +240984,12 @@ "source": "cobra_usage", "value": "目标知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -243254,16 +241005,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -243308,7 +241065,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -243349,11 +241107,8 @@ "cli_name": "create-inline", "cli_path": "doc comment create-inline", "confirmation": "not_required", - "description": "在钉钉文档中创建划词评论,评论关联文档内指定块的文本范围,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- blockId、start、end 均为必填,用于定位评论标记的文本范围。\r\n- selectedText 可选填,填写后评论列表中会展示「引用原文:xxx」。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建全文评论(不关联文档内具体位置),请使用 create_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。", + "description": "在指定文档的选中文本区域上创建一条划词评论。\n\n需要指定评论标记所在的块 ID (--block-id)、起始偏移量 (--start) 和结束偏移量 (--end)。\n块 ID 可通过 dws doc block list --node \u003cnodeId\u003e 获取。\n\n可通过 --selected-text 传入选中文本内容,评论列表中会展示「引用原文:xxx」。\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -243452,44 +241207,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉文档中创建划词评论,评论关联文档内指定块的文本范围,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- blockId、start、end 均为必填,用于定位评论标记的文本范围。\r\n- selectedText 可选填,填写后评论列表中会展示「引用原文:xxx」。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建全文评论(不关联文档内具体位置),请使用 create_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定文档的选中文本区域上创建一条划词评论。\n\n需要指定评论标记所在的块 ID (--block-id)、起始偏移量 (--start) 和结束偏移量 (--end)。\n块 ID 可通过 dws doc block list --node \u003cnodeId\u003e 获取。\n\n可通过 --selected-text 传入选中文本内容,评论列表中会展示「引用原文:xxx」。\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉文档中创建划词评论,评论关联文档内指定块的文本范围,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- blockId、start、end 均为必填,用于定位评论标记的文本范围。\r\n- selectedText 可选填,填写后评论列表中会展示「引用原文:xxx」。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建全文评论(不关联文档内具体位置),请使用 create_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉文档中创建划词评论,评论关联文档内指定块的文本范围,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n- blockId、start、end 均为必填,用于定位评论标记的文本范围。\r\n- selectedText 可选填,填写后评论列表中会展示「引用原文:xxx」。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n如需创建全文评论(不关联文档内具体位置),请使用 create_comment 工具。\r\n如需回复已有评论,请使用 reply_comment 工具。\r\n操作受权限控制,仅当调用者对文档有评论权限时可创建评论。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定文档的选中文本区域上创建一条划词评论。\n\n需要指定评论标记所在的块 ID (--block-id)、起始偏移量 (--start) 和结束偏移量 (--end)。\n块 ID 可通过 dws doc block list --node \u003cnodeId\u003e 获取。\n\n可通过 --selected-text 传入选中文本内容,评论列表中会展示「引用原文:xxx」。\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" }, "effect": { "candidates": [ @@ -243638,21 +241371,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建划词评论" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建划词评论" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建划词评论" }, "use_when": { @@ -244030,6 +241763,12 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "填写后,评论内容中会插入 @mention 节点,并向对应用户发送通知。" + }, { "precedence": "default", "selected": false, @@ -244042,19 +241781,45 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mention" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mention" + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" }, "required": { "candidates": [ @@ -244099,7 +241864,9 @@ "value": "string" } }, - "property": "mention", + "interface_description": "填写后,评论内容中会插入 @mention 节点,并向对应用户发送通知。", + "interface_type": "array", + "property": "mentionedUserIds", "required": false, "type": "string" }, @@ -244114,6 +241881,12 @@ "source": "cobra_usage", "value": "目标文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。" + }, { "precedence": "default", "selected": false, @@ -244129,22 +241902,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -244155,9 +241940,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -244189,7 +241974,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -244469,7 +242255,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -244477,7 +242263,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -244521,7 +242307,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -244536,20 +242322,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除指定文档中的一条评论。\n\n这是不可恢复的危险操作。执行前需要交互确认,或在用户已明确同意后传入全局 --yes 跳过确认。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除指定文档中的一条评论。\n\n这是不可恢复的危险操作。执行前需要交互确认,或在用户已明确同意后传入全局 --yes 跳过确认。" @@ -244558,7 +242344,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" @@ -244579,7 +242365,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" }, @@ -244607,7 +242393,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -244621,7 +242407,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, @@ -244629,39 +242415,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -244669,7 +242455,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -244684,14 +242470,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -244707,7 +242486,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -244722,20 +242501,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除文档评论" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除文档评论" @@ -244764,8 +242543,8 @@ "group": "comment", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "delete_comment", "parameter_count": 2, @@ -244796,16 +242575,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.delete_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "commentKey" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "commentKey" + "review_reason": "Reviewed unpinned adapter: doc.delete_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -244856,7 +242643,6 @@ "value": "string" } }, - "property": "commentKey", "required": true, "type": "string" }, @@ -244992,7 +242778,7 @@ "cli_name": "delete", "cli_path": "doc delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将文档或文件移入回收站。\n\n注意: 这是一个危险操作,文档将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n\n权限要求: 对文档有\"管理\"权限。", "display": "钉钉文档管理", "effect": "destructive", "effect_source": "skill-explicit", @@ -245094,22 +242880,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将文档或文件移入回收站。\n\n注意: 这是一个危险操作,文档将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n\n权限要求: 对文档有\"管理\"权限。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" + "source": "cobra_help", + "value": "将文档或文件移入回收站。\n\n注意: 这是一个危险操作,文档将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n\n权限要求: 对文档有\"管理\"权限。" }, "effect": { "candidates": [ @@ -245254,22 +243040,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除文档/文件到回收站" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除节点" + "source": "cobra_help", + "value": "删除文档/文件到回收站" }, "use_when": { "candidates": [ @@ -245315,6 +243101,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。" + }, { "precedence": "default", "selected": false, @@ -245330,16 +243122,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -245349,6 +243147,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -245396,7 +243200,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。", + "property": "nodeId", "required": true, "type": "string" } @@ -245407,7 +243212,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除节点", + "title": "删除文档/文件到回收站", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc delete 兼容入口,并已确认删除目标时" ] @@ -245440,7 +243245,7 @@ "cli_name": "delete", "cli_path": "doc block delete", "confirmation": "user_required", - "description": "在指定文档中删除指定块元素,需要提供文档ID(dentryUuid)与块元素ID(blockId)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。", + "description": "删除块元素", "display": "钉钉文档管理", "effect": "destructive", "effect_source": "skill-explicit", @@ -245546,22 +243351,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定文档中删除指定块元素,需要提供文档ID(dentryUuid)与块元素ID(blockId)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除块元素" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定文档中删除指定块元素,需要提供文档ID(dentryUuid)与块元素ID(blockId)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定文档中删除指定块元素,需要提供文档ID(dentryUuid)与块元素ID(blockId)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" + "source": "cobra_help", + "value": "删除块元素" }, "effect": { "candidates": [ @@ -245715,21 +243520,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除块元素" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除块元素" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除块元素" }, "use_when": { @@ -245880,6 +243685,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。" + }, { "precedence": "default", "selected": false, @@ -245895,22 +243706,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -245921,9 +243744,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -245955,7 +243778,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。", + "property": "nodeId", "required": true, "type": "string" } @@ -245995,11 +243819,8 @@ "cli_name": "download", "cli_path": "doc media download", "confirmation": "not_required", - "description": "获取钉钉文档中指定附件的临时下载 URL。\r\n传入文档标识 nodeId 和附件资源标识 resourceId,返回附件的 OSS 临时下载链接 downloadUrl。\r\n前置依赖:需先调用 list_document_blocks 获取文档块列表,从中找到 blockType 为 attachment 的块元素,提取其 resourceId 作为本工具的入参。", + "description": "获取钉钉文档中指定附件的 OSS 临时下载链接。\n\n传入 nodeId(文档标识)和 resourceId(附件资源 ID),返回 downloadUrl。\nresourceId 需通过 dws doc block list 获取:查询目标文档的块列表,\n找到 blockType 为 attachment 的元素,取其 resourceId。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -246098,44 +243919,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉文档中指定附件的临时下载 URL。\r\n传入文档标识 nodeId 和附件资源标识 resourceId,返回附件的 OSS 临时下载链接 downloadUrl。\r\n前置依赖:需先调用 list_document_blocks 获取文档块列表,从中找到 blockType 为 attachment 的块元素,提取其 resourceId 作为本工具的入参。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉文档中指定附件的 OSS 临时下载链接。\n\n传入 nodeId(文档标识)和 resourceId(附件资源 ID),返回 downloadUrl。\nresourceId 需通过 dws doc block list 获取:查询目标文档的块列表,\n找到 blockType 为 attachment 的元素,取其 resourceId。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉文档中指定附件的临时下载 URL。\r\n传入文档标识 nodeId 和附件资源标识 resourceId,返回附件的 OSS 临时下载链接 downloadUrl。\r\n前置依赖:需先调用 list_document_blocks 获取文档块列表,从中找到 blockType 为 attachment 的块元素,提取其 resourceId 作为本工具的入参。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉文档中指定附件的临时下载 URL。\r\n传入文档标识 nodeId 和附件资源标识 resourceId,返回附件的 OSS 临时下载链接 downloadUrl。\r\n前置依赖:需先调用 list_document_blocks 获取文档块列表,从中找到 blockType 为 attachment 的块元素,提取其 resourceId 作为本工具的入参。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取钉钉文档中指定附件的 OSS 临时下载链接。\n\n传入 nodeId(文档标识)和 resourceId(附件资源 ID),返回 downloadUrl。\nresourceId 需通过 dws doc block list 获取:查询目标文档的块列表,\n找到 blockType 为 attachment 的元素,取其 resourceId。" }, "effect": { "candidates": [ @@ -246276,22 +244075,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "下载指定钉钉文档中的指定附件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载文档附件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "下载指定钉钉文档中的指定附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "下载指定钉钉文档中的指定附件" + "source": "cobra_help", + "value": "下载文档附件" }, "use_when": { "candidates": [ @@ -246338,6 +244137,12 @@ "source": "cobra_usage", "value": "目标文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "文档nodeId,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。" + }, { "precedence": "default", "selected": false, @@ -246353,22 +244158,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -246379,9 +244196,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -246413,7 +244230,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "文档nodeId,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -246527,7 +244345,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "下载指定钉钉文档中的指定附件", + "title": "下载文档附件", "use_when": [ "需要获取文档附件的临时下载链接时" ] @@ -246555,7 +244373,7 @@ "cli_name": "download", "cli_path": "doc download", "confirmation": "not_required", - "description": "获取文件下载凭证,供 AI Agent 自行发起 HTTP GET 请求下载文件内容。本工具是两步下载流程的第一步(也是唯一需要调用的 MCP Tool)。\r\n\r\n完整下载流程:\r\n Step 1:调用本工具,传入文件节点 ID(nodeId),获取下载 URL(resourceUrl)和签名请求头(headers)。\r\n Step 2:AI Agent 自行发起 HTTP GET 请求:\r\n - URL:使用 resourceUrl 中的第一个 URL(优先级最高)。\r\n - Headers:将 headers 中所有键值对作为请求头携带。\r\n - 期望响应:HTTP 200,Body 为文件二进制内容。\r\n - 注意:下载凭证有过期时间(expirationSeconds),请在过期前完成下载;若已过期,需重新调用本工具获取新凭证。", + "description": "下载钉钉文档空间中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地", "display": "钉钉文档管理", "dry_run": { "preview_kind": "plan" @@ -246658,22 +244476,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取文件下载凭证,供 AI Agent 自行发起 HTTP GET 请求下载文件内容。本工具是两步下载流程的第一步(也是唯一需要调用的 MCP Tool)。\r\n\r\n完整下载流程:\r\n Step 1:调用本工具,传入文件节点 ID(nodeId),获取下载 URL(resourceUrl)和签名请求头(headers)。\r\n Step 2:AI Agent 自行发起 HTTP GET 请求:\r\n - URL:使用 resourceUrl 中的第一个 URL(优先级最高)。\r\n - Headers:将 headers 中所有键值对作为请求头携带。\r\n - 期望响应:HTTP 200,Body 为文件二进制内容。\r\n - 注意:下载凭证有过期时间(expirationSeconds),请在过期前完成下载;若已过期,需重新调用本工具获取新凭证。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载钉钉文档空间中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取文件下载凭证,供 AI Agent 自行发起 HTTP GET 请求下载文件内容。本工具是两步下载流程的第一步(也是唯一需要调用的 MCP Tool)。\r\n\r\n完整下载流程:\r\n Step 1:调用本工具,传入文件节点 ID(nodeId),获取下载 URL(resourceUrl)和签名请求头(headers)。\r\n Step 2:AI Agent 自行发起 HTTP GET 请求:\r\n - URL:使用 resourceUrl 中的第一个 URL(优先级最高)。\r\n - Headers:将 headers 中所有键值对作为请求头携带。\r\n - 期望响应:HTTP 200,Body 为文件二进制内容。\r\n - 注意:下载凭证有过期时间(expirationSeconds),请在过期前完成下载;若已过期,需重新调用本工具获取新凭证。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取文件下载凭证,供 AI Agent 自行发起 HTTP GET 请求下载文件内容。本工具是两步下载流程的第一步(也是唯一需要调用的 MCP Tool)。\r\n\r\n完整下载流程:\r\n Step 1:调用本工具,传入文件节点 ID(nodeId),获取下载 URL(resourceUrl)和签名请求头(headers)。\r\n Step 2:AI Agent 自行发起 HTTP GET 请求:\r\n - URL:使用 resourceUrl 中的第一个 URL(优先级最高)。\r\n - Headers:将 headers 中所有键值对作为请求头携带。\r\n - 期望响应:HTTP 200,Body 为文件二进制内容。\r\n - 注意:下载凭证有过期时间(expirationSeconds),请在过期前完成下载;若已过期,需重新调用本工具获取新凭证。" + "source": "cobra_help", + "value": "下载钉钉文档空间中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地" }, "dry_run": { "candidates": [ @@ -246836,22 +244654,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取文件下载凭证" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载文件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取文件下载凭证" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取文件下载凭证" + "source": "cobra_help", + "value": "下载文件" }, "use_when": { "candidates": [ @@ -246912,6 +244730,12 @@ "source": "cobra_usage", "value": "文件节点 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。必须指向文件节点(非文件夹)。" + }, { "precedence": "default", "selected": false, @@ -246927,16 +244751,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -246946,6 +244776,12 @@ "source": "cobra_hard_required", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -246993,7 +244829,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。必须指向文件节点(非文件夹)。", + "property": "nodeId", "required": true, "type": "string" }, @@ -247038,16 +244875,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local output path", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "output" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "output" + "review_reason": "local output path", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -247098,7 +244943,6 @@ "value": "string" } }, - "property": "output", "required": true, "type": "string" } @@ -247109,7 +244953,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取文件下载凭证", + "title": "下载文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc download 兼容入口时" ] @@ -247141,11 +244985,8 @@ "cli_name": "read", "cli_path": "doc read", "confirmation": "not_required", - "description": "获取钉钉文档的内容,以 Markdown 格式返回。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线文档。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", + "description": "获取文档内容,以 Markdown 格式返回。支持传入文档 URL 或 ID。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -247244,44 +245085,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉文档的内容,以 Markdown 格式返回。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线文档。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文档内容,以 Markdown 格式返回。支持传入文档 URL 或 ID。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉文档的内容,以 Markdown 格式返回。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线文档。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉文档的内容,以 Markdown 格式返回。\r\n\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线文档。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取文档内容,以 Markdown 格式返回。支持传入文档 URL 或 ID。" }, "effect": { "candidates": [ @@ -247428,22 +245247,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉文档内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取文档内容 (Markdown)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉文档内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉文档内容" + "source": "cobra_help", + "value": "读取文档内容 (Markdown)" }, "use_when": { "candidates": [ @@ -247489,6 +245308,12 @@ "source": "cobra_usage", "value": "输出格式: 默认为 markdown,可选 jsonml" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "拉取数据的格式,支持 markdown | jsonml,默认为 markdown" + }, { "precedence": "default", "selected": false, @@ -247504,16 +245329,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "format" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "source": "versioned_parameter_binding", + "value": "format" }, "required": { "candidates": [ @@ -247564,7 +245395,8 @@ "value": "string" } }, - "property": "contentFormat", + "interface_description": "拉取数据的格式,支持 markdown | jsonml,默认为 markdown", + "property": "format", "required": false, "type": "string" }, @@ -247579,6 +245411,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -247594,16 +245432,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -247613,6 +245457,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -247660,7 +245510,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -247690,16 +245541,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local output path", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "output" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "output" + "review_reason": "local output path", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -247744,7 +245603,6 @@ "value": "string" } }, - "property": "output", "required": false, "type": "string" } @@ -247755,7 +245613,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取钉钉文档内容", + "title": "读取文档内容 (Markdown)", "use_when": [ "需要读取在线文档正文内容时" ] @@ -247787,11 +245645,8 @@ "cli_name": "info", "cli_path": "doc info", "confirmation": "not_required", - "description": "获取存储在钉钉文档(含知识库)、钉盘相关文件的元信息,包括文档标题、类型、创建者、创建时间等。\r\n返回字段中的 contentType 和 extension 是后续工具路由的关键依据。\r\n\r\n⚠️ 重要:当用户需要获取任何钉钉文件的内容时,必须先调用本工具,\r\n再根据返回的 contentType 和 extension 字段按以下规则选择对应工具:\r\n\r\n- contentType=ALIDOC, extension=adoc → 调用 get_document_content(nodeId),返回 Markdown 内容\r\n- contentType=ALIDOC, extension=axls → 调用钉钉表格 MCP: get_all_sheets(nodeId) 获取工作表列表,再调用 get_range(nodeId, sheetId, range) 读取数据\r\n- contentType=ALIDOC, extension=able → 调用钉钉AI表格 MCP: get_tables(nodeId) 获取数据表列表(nodeId 即 baseId),再调用 query_records(nodeId, tableId) 查询记录\r\n- contentType≠ALIDOC 且 nodeType=file → 调用 download_file(nodeId),返回文件下载链接", + "description": "获取文档标题、类型、创建者、创建时间、权限等元信息 (不含内容)。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -247890,44 +245745,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取存储在钉钉文档(含知识库)、钉盘相关文件的元信息,包括文档标题、类型、创建者、创建时间等。\r\n返回字段中的 contentType 和 extension 是后续工具路由的关键依据。\r\n\r\n⚠️ 重要:当用户需要获取任何钉钉文件的内容时,必须先调用本工具,\r\n再根据返回的 contentType 和 extension 字段按以下规则选择对应工具:\r\n\r\n- contentType=ALIDOC, extension=adoc → 调用 get_document_content(nodeId),返回 Markdown 内容\r\n- contentType=ALIDOC, extension=axls → 调用钉钉表格 MCP: get_all_sheets(nodeId) 获取工作表列表,再调用 get_range(nodeId, sheetId, range) 读取数据\r\n- contentType=ALIDOC, extension=able → 调用钉钉AI表格 MCP: get_tables(nodeId) 获取数据表列表(nodeId 即 baseId),再调用 query_records(nodeId, tableId) 查询记录\r\n- contentType≠ALIDOC 且 nodeType=file → 调用 download_file(nodeId),返回文件下载链接" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文档标题、类型、创建者、创建时间、权限等元信息 (不含内容)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取存储在钉钉文档(含知识库)、钉盘相关文件的元信息,包括文档标题、类型、创建者、创建时间等。\r\n返回字段中的 contentType 和 extension 是后续工具路由的关键依据。\r\n\r\n⚠️ 重要:当用户需要获取任何钉钉文件的内容时,必须先调用本工具,\r\n再根据返回的 contentType 和 extension 字段按以下规则选择对应工具:\r\n\r\n- contentType=ALIDOC, extension=adoc → 调用 get_document_content(nodeId),返回 Markdown 内容\r\n- contentType=ALIDOC, extension=axls → 调用钉钉表格 MCP: get_all_sheets(nodeId) 获取工作表列表,再调用 get_range(nodeId, sheetId, range) 读取数据\r\n- contentType=ALIDOC, extension=able → 调用钉钉AI表格 MCP: get_tables(nodeId) 获取数据表列表(nodeId 即 baseId),再调用 query_records(nodeId, tableId) 查询记录\r\n- contentType≠ALIDOC 且 nodeType=file → 调用 download_file(nodeId),返回文件下载链接" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取存储在钉钉文档(含知识库)、钉盘相关文件的元信息,包括文档标题、类型、创建者、创建时间等。\r\n返回字段中的 contentType 和 extension 是后续工具路由的关键依据。\r\n\r\n⚠️ 重要:当用户需要获取任何钉钉文件的内容时,必须先调用本工具,\r\n再根据返回的 contentType 和 extension 字段按以下规则选择对应工具:\r\n\r\n- contentType=ALIDOC, extension=adoc → 调用 get_document_content(nodeId),返回 Markdown 内容\r\n- contentType=ALIDOC, extension=axls → 调用钉钉表格 MCP: get_all_sheets(nodeId) 获取工作表列表,再调用 get_range(nodeId, sheetId, range) 读取数据\r\n- contentType=ALIDOC, extension=able → 调用钉钉AI表格 MCP: get_tables(nodeId) 获取数据表列表(nodeId 即 baseId),再调用 query_records(nodeId, tableId) 查询记录\r\n- contentType≠ALIDOC 且 nodeType=file → 调用 download_file(nodeId),返回文件下载链接" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取文档标题、类型、创建者、创建时间、权限等元信息 (不含内容)。" }, "effect": { "candidates": [ @@ -248074,22 +245907,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取节点基本信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文档元信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取节点基本信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取节点基本信息" + "source": "cobra_help", + "value": "获取文档元信息" }, "use_when": { "candidates": [ @@ -248135,6 +245968,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入 URL 或 ID。必填。" + }, { "precedence": "default", "selected": false, @@ -248150,22 +245989,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -248176,9 +246027,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -248210,7 +246061,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入 URL 或 ID。必填。", + "property": "nodeId", "required": true, "type": "string" } @@ -248221,7 +246073,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取节点基本信息", + "title": "获取文档元信息", "use_when": [ "只需文档标题、类型、创建者、时间或权限等元信息时" ] @@ -248233,6 +246085,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc import get", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/doc.md", "skills/mono/references/products/doc/doc-import.md" @@ -248277,15 +246130,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -248347,13 +246202,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据 taskId 查询文档导入任务的执行结果。\n通常不需要手动调用,dws doc import 会自动完成轮询。\n仅在导入命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n processing 转换中\n completed 导入成功,返回 documentUrl\n failed 导入失败" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据 taskId 查询文档导入任务的执行结果。\n通常不需要手动调用,dws doc import 会自动完成轮询。\n仅在导入命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n processing 转换中\n completed 导入成功,返回 documentUrl\n failed 导入失败" @@ -248443,45 +246298,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -248529,13 +246388,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询导入任务结果(手动兜底)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询导入任务结果(手动兜底)" @@ -248564,8 +246423,8 @@ "group": "import", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "import_get", "parameter_count": 1, @@ -248596,16 +246455,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.import_get has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "taskId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "taskId" + "review_reason": "Reviewed unpinned adapter: doc.import_get has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -248656,7 +246523,6 @@ "value": "string" } }, - "property": "taskId", "required": true, "type": "string" } @@ -248707,11 +246573,8 @@ ] ] }, - "description": "将一个新的块元素插入指定文档,需要提供文档ID(dentryUuid)与块元素内容(必须包含 blockType 及对应类型的属性对象)。可以支持在指定块元素(传入blockId或index)的头部或尾部插入块元素。操作受文档权限控制,仅当调用者拥有编辑权限时生效。\r\n\r\n【附件插入说明】\r\n若 blockType 为 \"attachment\":\r\n1. 必须先调用 get_doc_attachment_upload_info 工具获取该附件的属性(resourceId)。\r\n2. 将获取到的信息整合进 element 的 attachment 对象中,然后再调用此工具。\r\n\r\n【get_doc_attachment_upload_info 接口使用说明】\r\n获取向指定钉钉文档上传附件所需的 OSS 上传凭证信息。\r\n使用流程:\r\n1. 调用 get_doc_attachment_upload_info 接口,传入文档标识(nodeId)、文件名、文件大小和 MIME 类型,获取上传凭证。\r\n2. 使用返回的 uploadUrl 通过 HTTP PUT 请求将文件内容上传至 OSS,需设置以下请求头:\r\n Content-Type:与入参 mimeType 保持一致,例如 `application/pdf`\r\n Content-Length:与入参 fileSize 保持一致,单位为字节\r\n3. 上传成功后,使用返回的 resourceId 在文档中插入类型为附件的块元素。\r\n\r\n注意事项:\r\n1. uploadUrl 具有时效性,请在获取后尽快完成上传,避免凭证过期。\r\n2. fileSize 必须与实际文件大小一致,否则上传可能失败。\r\n3. mimeType 应与实际文件类型匹配,例如 PDF 文件传 application/pdf。", + "description": "向文档插入块元素。通过 --element 传入 JSON 格式的块元素。\n可用 --text 快速插入段落,--heading + --level 快速插入标题。\n\n块类型: paragraph, heading, blockquote, callout, columns,\n orderedList, unorderedList, table, sheet, attachment, slot", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -248810,44 +246673,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将一个新的块元素插入指定文档,需要提供文档ID(dentryUuid)与块元素内容(必须包含 blockType 及对应类型的属性对象)。可以支持在指定块元素(传入blockId或index)的头部或尾部插入块元素。操作受文档权限控制,仅当调用者拥有编辑权限时生效。\r\n\r\n【附件插入说明】\r\n若 blockType 为 \"attachment\":\r\n1. 必须先调用 get_doc_attachment_upload_info 工具获取该附件的属性(resourceId)。\r\n2. 将获取到的信息整合进 element 的 attachment 对象中,然后再调用此工具。\r\n\r\n【get_doc_attachment_upload_info 接口使用说明】\r\n获取向指定钉钉文档上传附件所需的 OSS 上传凭证信息。\r\n使用流程:\r\n1. 调用 get_doc_attachment_upload_info 接口,传入文档标识(nodeId)、文件名、文件大小和 MIME 类型,获取上传凭证。\r\n2. 使用返回的 uploadUrl 通过 HTTP PUT 请求将文件内容上传至 OSS,需设置以下请求头:\r\n Content-Type:与入参 mimeType 保持一致,例如 `application/pdf`\r\n Content-Length:与入参 fileSize 保持一致,单位为字节\r\n3. 上传成功后,使用返回的 resourceId 在文档中插入类型为附件的块元素。\r\n\r\n注意事项:\r\n1. uploadUrl 具有时效性,请在获取后尽快完成上传,避免凭证过期。\r\n2. fileSize 必须与实际文件大小一致,否则上传可能失败。\r\n3. mimeType 应与实际文件类型匹配,例如 PDF 文件传 application/pdf。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "向文档插入块元素。通过 --element 传入 JSON 格式的块元素。\n可用 --text 快速插入段落,--heading + --level 快速插入标题。\n\n块类型: paragraph, heading, blockquote, callout, columns,\n orderedList, unorderedList, table, sheet, attachment, slot" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将一个新的块元素插入指定文档,需要提供文档ID(dentryUuid)与块元素内容(必须包含 blockType 及对应类型的属性对象)。可以支持在指定块元素(传入blockId或index)的头部或尾部插入块元素。操作受文档权限控制,仅当调用者拥有编辑权限时生效。\r\n\r\n【附件插入说明】\r\n若 blockType 为 \"attachment\":\r\n1. 必须先调用 get_doc_attachment_upload_info 工具获取该附件的属性(resourceId)。\r\n2. 将获取到的信息整合进 element 的 attachment 对象中,然后再调用此工具。\r\n\r\n【get_doc_attachment_upload_info 接口使用说明】\r\n获取向指定钉钉文档上传附件所需的 OSS 上传凭证信息。\r\n使用流程:\r\n1. 调用 get_doc_attachment_upload_info 接口,传入文档标识(nodeId)、文件名、文件大小和 MIME 类型,获取上传凭证。\r\n2. 使用返回的 uploadUrl 通过 HTTP PUT 请求将文件内容上传至 OSS,需设置以下请求头:\r\n Content-Type:与入参 mimeType 保持一致,例如 `application/pdf`\r\n Content-Length:与入参 fileSize 保持一致,单位为字节\r\n3. 上传成功后,使用返回的 resourceId 在文档中插入类型为附件的块元素。\r\n\r\n注意事项:\r\n1. uploadUrl 具有时效性,请在获取后尽快完成上传,避免凭证过期。\r\n2. fileSize 必须与实际文件大小一致,否则上传可能失败。\r\n3. mimeType 应与实际文件类型匹配,例如 PDF 文件传 application/pdf。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将一个新的块元素插入指定文档,需要提供文档ID(dentryUuid)与块元素内容(必须包含 blockType 及对应类型的属性对象)。可以支持在指定块元素(传入blockId或index)的头部或尾部插入块元素。操作受文档权限控制,仅当调用者拥有编辑权限时生效。\r\n\r\n【附件插入说明】\r\n若 blockType 为 \"attachment\":\r\n1. 必须先调用 get_doc_attachment_upload_info 工具获取该附件的属性(resourceId)。\r\n2. 将获取到的信息整合进 element 的 attachment 对象中,然后再调用此工具。\r\n\r\n【get_doc_attachment_upload_info 接口使用说明】\r\n获取向指定钉钉文档上传附件所需的 OSS 上传凭证信息。\r\n使用流程:\r\n1. 调用 get_doc_attachment_upload_info 接口,传入文档标识(nodeId)、文件名、文件大小和 MIME 类型,获取上传凭证。\r\n2. 使用返回的 uploadUrl 通过 HTTP PUT 请求将文件内容上传至 OSS,需设置以下请求头:\r\n Content-Type:与入参 mimeType 保持一致,例如 `application/pdf`\r\n Content-Length:与入参 fileSize 保持一致,单位为字节\r\n3. 上传成功后,使用返回的 resourceId 在文档中插入类型为附件的块元素。\r\n\r\n注意事项:\r\n1. uploadUrl 具有时效性,请在获取后尽快完成上传,避免凭证过期。\r\n2. fileSize 必须与实际文件大小一致,否则上传可能失败。\r\n3. mimeType 应与实际文件类型匹配,例如 PDF 文件传 application/pdf。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "向文档插入块元素。通过 --element 传入 JSON 格式的块元素。\n可用 --text 快速插入段落,--heading + --level 快速插入标题。\n\n块类型: paragraph, heading, blockquote, callout, columns,\n orderedList, unorderedList, table, sheet, attachment, slot" }, "effect": { "candidates": [ @@ -248988,21 +246829,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "插入块元素" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "插入块元素" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "插入块元素" }, "use_when": { @@ -249050,6 +246891,12 @@ "source": "cobra_usage", "value": "输入格式: 默认为 element,可选 jsonml" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "数据的格式,可选为 element 或 jsonml,默认为 element" + }, { "precedence": "default", "selected": false, @@ -249065,16 +246912,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "format" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "source": "versioned_parameter_binding", + "value": "format" }, "required": { "candidates": [ @@ -249125,7 +246978,8 @@ "value": "string" } }, - "property": "contentFormat", + "interface_description": "数据的格式,可选为 element 或 jsonml,默认为 element", + "property": "format", "required": false, "type": "string" }, @@ -249273,16 +247127,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local JSONML normalization control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fixJsonml" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fixJsonml" + "review_reason": "local JSONML normalization control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -249327,7 +247189,6 @@ "value": "boolean" } }, - "property": "fixJsonml", "required": false, "type": "boolean" }, @@ -249357,16 +247218,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "heading" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "heading" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -249417,7 +247286,6 @@ "value": "string" } }, - "property": "heading", "required": false, "type": "string" }, @@ -249560,16 +247428,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "level" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "level" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -249620,7 +247496,6 @@ "value": "integer" } }, - "property": "level", "required": false, "type": "integer" }, @@ -249635,6 +247510,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。" + }, { "precedence": "default", "selected": false, @@ -249650,22 +247531,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -249676,9 +247569,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -249710,7 +247603,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -249725,6 +247619,12 @@ "source": "cobra_usage", "value": "父容器 UUID(容器内插入时使用,与 --index 配合)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "参照块的唯一标识(由 list_document_blocks 返回的 blockId)。指定后以该块为插入参照位置,优先级高于 index。" + }, { "precedence": "default", "selected": false, @@ -249740,16 +247640,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "referenceBlockId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "parentBlock" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "parentBlock" + "source": "versioned_parameter_binding", + "value": "referenceBlockId" }, "required": { "candidates": [ @@ -249794,7 +247700,8 @@ "value": "string" } }, - "property": "parentBlock", + "interface_description": "参照块的唯一标识(由 list_document_blocks 返回的 blockId)。指定后以该块为插入参照位置,优先级高于 index。", + "property": "referenceBlockId", "required": false, "type": "string" }, @@ -249809,6 +247716,12 @@ "source": "cobra_usage", "value": "参照块 ID (优先级高于 --index)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "参照块的唯一标识(由 list_document_blocks 返回的 blockId)。指定后以该块为插入参照位置,优先级高于 index。" + }, { "precedence": "default", "selected": false, @@ -249824,16 +247737,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "referenceBlockId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "refBlock" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "refBlock" + "source": "versioned_parameter_binding", + "value": "referenceBlockId" }, "required": { "candidates": [ @@ -249878,7 +247797,8 @@ "value": "string" } }, - "property": "refBlock", + "interface_description": "参照块的唯一标识(由 list_document_blocks 返回的 blockId)。指定后以该块为插入参照位置,优先级高于 index。", + "property": "referenceBlockId", "required": false, "type": "string" }, @@ -249908,16 +247828,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "text" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "text" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -249968,7 +247896,6 @@ "value": "string" } }, - "property": "text", "required": false, "type": "string" }, @@ -250109,11 +248036,8 @@ "cli_name": "list", "cli_path": "doc comment list", "confirmation": "not_required", - "description": "获取钉钉文档的评论列表,支持分页查询、按评论类型和解决状态过滤。\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n操作受权限控制,仅当调用者对文档有读取及以上权限时可获取评论。", + "description": "查询指定文档的评论列表,支持分页、按评论类型和解决状态过滤。\n\n评论类型 (--type):\n global 全文评论\n inline 划词评论\n 不传返回所有评论\n\n解决状态 (--resolve-status):\n resolved 已解决\n unresolved 未解决\n 不传返回所有评论", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -250212,44 +248136,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉文档的评论列表,支持分页查询、按评论类型和解决状态过滤。\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n操作受权限控制,仅当调用者对文档有读取及以上权限时可获取评论。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定文档的评论列表,支持分页、按评论类型和解决状态过滤。\n\n评论类型 (--type):\n global 全文评论\n inline 划词评论\n 不传返回所有评论\n\n解决状态 (--resolve-status):\n resolved 已解决\n unresolved 未解决\n 不传返回所有评论" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉文档的评论列表,支持分页查询、按评论类型和解决状态过滤。\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n操作受权限控制,仅当调用者对文档有读取及以上权限时可获取评论。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉文档的评论列表,支持分页查询、按评论类型和解决状态过滤。\r\n通过 nodeId 定位文档,支持传入文档链接 URL 或文档 ID(dentryUuid)。\r\n操作受权限控制,仅当调用者对文档有读取及以上权限时可获取评论。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定文档的评论列表,支持分页、按评论类型和解决状态过滤。\n\n评论类型 (--type):\n global 全文评论\n inline 划词评论\n 不传返回所有评论\n\n解决状态 (--resolve-status):\n resolved 已解决\n unresolved 未解决\n 不传返回所有评论" }, "effect": { "candidates": [ @@ -250404,22 +248306,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取文档评论列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询文档评论列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取文档评论列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取文档评论列表" + "source": "cobra_help", + "value": "查询文档评论列表" }, "use_when": { "candidates": [ @@ -250466,6 +248368,12 @@ "source": "cobra_usage", "value": "分页游标,从上一次请求的返回结果中获取 (首次请求不传)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次请求的返回结果中获取 nextToken。首次请求不传。" + }, { "precedence": "default", "selected": false, @@ -250481,16 +248389,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -250535,7 +248449,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次请求的返回结果中获取 nextToken。首次请求不传。", + "property": "nextToken", "required": false, "type": "string" }, @@ -250551,6 +248466,12 @@ "source": "cobra_usage", "value": "每页返回的评论数量,默认 50,最大 50" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的评论数量,默认 50,最大 50。" + }, { "precedence": "default", "selected": false, @@ -250563,19 +248484,45 @@ "source": "cobra_usage", "value": "每页返回的评论数量,默认 50,最大 50" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -250626,7 +248573,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的评论数量,默认 50,最大 50。", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -250641,6 +248590,12 @@ "source": "cobra_usage", "value": "目标文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入 URL 或 ID。必填。" + }, { "precedence": "default", "selected": false, @@ -250656,22 +248611,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -250682,9 +248649,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -250716,7 +248683,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入 URL 或 ID。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -250822,6 +248790,12 @@ "source": "cobra_usage", "value": "按评论类型过滤: global (全文评论) / inline (划词评论)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按评论类型过滤。可选值:global(全文评论)、inline(划词评论)。不传返回所有评论。" + }, { "precedence": "default", "selected": false, @@ -250837,16 +248811,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "commentType" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "source": "versioned_parameter_binding", + "value": "commentType" }, "required": { "candidates": [ @@ -250891,7 +248871,8 @@ "value": "string" } }, - "property": "type", + "interface_description": "按评论类型过滤。可选值:global(全文评论)、inline(划词评论)。不传返回所有评论。", + "property": "commentType", "required": false, "type": "string" } @@ -250902,7 +248883,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取文档评论列表", + "title": "查询文档评论列表", "use_when": [ "需要查询文档评论列表时" ] @@ -250937,11 +248918,8 @@ "cli_name": "list", "cli_path": "doc block list", "confirmation": "not_required", - "description": "查询指定钉钉文档下的一级块元素列表,需要提供dentryUuid。支持按按起始位置、终止位置范围及块类型过滤。操作受文档权限控制,当调用者拥有编辑或查看或下载权限时生效。", + "description": "查询文档的一级块元素列表,支持按位置范围和块类型过滤。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -251040,44 +249018,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定钉钉文档下的一级块元素列表,需要提供dentryUuid。支持按按起始位置、终止位置范围及块类型过滤。操作受文档权限控制,当调用者拥有编辑或查看或下载权限时生效。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询文档的一级块元素列表,支持按位置范围和块类型过滤。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定钉钉文档下的一级块元素列表,需要提供dentryUuid。支持按按起始位置、终止位置范围及块类型过滤。操作受文档权限控制,当调用者拥有编辑或查看或下载权限时生效。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定钉钉文档下的一级块元素列表,需要提供dentryUuid。支持按按起始位置、终止位置范围及块类型过滤。操作受文档权限控制,当调用者拥有编辑或查看或下载权限时生效。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询文档的一级块元素列表,支持按位置范围和块类型过滤。" }, "effect": { "candidates": [ @@ -251224,22 +249180,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询指定钉钉文档下的一级块元素列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询块元素" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询指定钉钉文档下的一级块元素列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询指定钉钉文档下的一级块元素列表" + "source": "cobra_help", + "value": "查询块元素" }, "use_when": { "candidates": [ @@ -251301,16 +249257,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "runtime extension sends blockId, which is absent from the pinned list_document_blocks metadata", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "blockId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "blockId" + "review_reason": "runtime extension sends blockId, which is absent from the pinned list_document_blocks metadata", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -251355,7 +249319,6 @@ "value": "string" } }, - "property": "blockId", "required": false, "type": "string" }, @@ -251461,6 +249424,12 @@ "source": "cobra_usage", "value": "输出格式: 默认为 element,可选 jsonml(返回 JSONML 节点数组)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "数据的格式,可选为 element 或 jsonml,默认为 element" + }, { "precedence": "default", "selected": false, @@ -251476,16 +249445,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "format" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "source": "versioned_parameter_binding", + "value": "format" }, "required": { "candidates": [ @@ -251536,7 +249511,8 @@ "value": "string" } }, - "property": "contentFormat", + "interface_description": "数据的格式,可选为 element 或 jsonml,默认为 element", + "property": "format", "required": false, "type": "string" }, @@ -251663,6 +249639,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -251678,22 +249660,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -251704,9 +249698,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -251738,7 +249732,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -251861,7 +249856,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询指定钉钉文档下的一级块元素列表", + "title": "查询块元素", "use_when": [ "需要查询文档一级块元素列表时" ] @@ -251890,11 +249885,8 @@ "cli_name": "list", "cli_path": "doc list", "confirmation": "not_required", - "description": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。", + "description": "列出文件夹或知识库下的直接子节点 (文件夹/文档/文件等)。\n定位优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n跨语义组别名: --node / --file-id 在 list 场景等价于 --folder\n (当 nodeId 实际指向文件夹节点时, 直觉式调用 --node \u003cFOLDER_NODE_ID\u003e 也可正常工作; 推荐用 --folder 表意更清晰)。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -251993,44 +249985,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出文件夹或知识库下的直接子节点 (文件夹/文档/文件等)。\n定位优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n跨语义组别名: --node / --file-id 在 list 场景等价于 --folder\n (当 nodeId 实际指向文件夹节点时, 直觉式调用 --node \u003cFOLDER_NODE_ID\u003e 也可正常工作; 推荐用 --folder 表意更清晰)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出文件夹或知识库下的直接子节点 (文件夹/文档/文件等)。\n定位优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)\n\n跨语义组别名: --node / --file-id 在 list 场景等价于 --folder\n (当 nodeId 实际指向文件夹节点时, 直觉式调用 --node \u003cFOLDER_NODE_ID\u003e 也可正常工作; 推荐用 --folder 表意更清晰)。" }, "effect": { "candidates": [ @@ -252177,22 +250147,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "遍历文件列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定文件夹或知识库下的直接子节点列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表" + "source": "cobra_help", + "value": "遍历文件列表" }, "use_when": { "candidates": [ @@ -252238,6 +250208,12 @@ "source": "cobra_usage", "value": "分页游标 (从上次结果的 nextPageToken 获取)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次请求的返回结果中获取 nextPageToken。首次请求不传。" + }, { "precedence": "default", "selected": false, @@ -252253,16 +250229,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "pageToken" }, "required": { "candidates": [ @@ -252307,7 +250289,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次请求的返回结果中获取 nextPageToken。首次请求不传。", + "property": "pageToken", "required": false, "type": "string" }, @@ -252322,6 +250305,12 @@ "source": "cobra_usage", "value": "文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要遍历的文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则列出该知识库根目录,否则列出用户'我的文档'根目录。" + }, { "precedence": "default", "selected": false, @@ -252337,16 +250326,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -252391,7 +250386,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "要遍历的文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则列出该知识库根目录,否则列出用户'我的文档'根目录。", + "property": "folderId", "required": false, "type": "string" }, @@ -252406,6 +250402,12 @@ "source": "cobra_usage", "value": "每页数量 (默认 50,最大 50)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的节点数量,默认 50,最大 50。" + }, { "precedence": "default", "selected": false, @@ -252418,19 +250420,45 @@ "source": "cobra_usage", "value": "每页数量 (默认 50,最大 50)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -252481,7 +250509,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的节点数量,默认 50,最大 50。", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -252496,6 +250526,12 @@ "source": "cobra_usage", "value": "知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "知识库 ID。当需要遍历某个知识库时使用。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -252511,16 +250547,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -252565,7 +250607,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "知识库 ID。当需要遍历某个知识库时使用。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -252576,7 +250619,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出指定文件夹或知识库下的直接子节点列表", + "title": "遍历文件列表", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc list 兼容入口时" ] @@ -252605,11 +250648,8 @@ "cli_name": "list", "cli_path": "doc permission list", "confirmation": "not_required", - "description": "查询知识库节点当前的成员权限列表。", + "description": "查询指定节点的协作者列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -252708,44 +250748,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询知识库节点当前的成员权限列表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定节点的协作者列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询知识库节点当前的成员权限列表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询知识库节点当前的成员权限列表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定节点的协作者列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围。" }, "effect": { "candidates": [ @@ -252886,22 +250904,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询节点成员列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询文档协作者列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询节点成员列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询节点成员列表" + "source": "cobra_help", + "value": "查询文档协作者列表" }, "use_when": { "candidates": [ @@ -252948,6 +250966,12 @@ "source": "cobra_usage", "value": "按角色过滤(逗号分隔):OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。" + }, { "precedence": "default", "selected": false, @@ -252960,19 +250984,45 @@ "source": "cobra_usage", "value": "按角色过滤(逗号分隔):OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "filterRoleIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterRole" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterRole" + "source": "versioned_parameter_binding", + "value": "filterRoleIds" }, "required": { "candidates": [ @@ -253017,7 +251067,9 @@ "value": "string" } }, - "property": "filterRole", + "interface_description": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。", + "interface_type": "array", + "property": "filterRoleIds", "required": false, "type": "string" }, @@ -253033,6 +251085,12 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。" + }, { "precedence": "default", "selected": false, @@ -253045,19 +251103,45 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -253108,7 +251192,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。", + "interface_type": "number", + "property": "maxResults", "required": false, "type": "integer" }, @@ -253123,6 +251209,12 @@ "source": "cobra_usage", "value": "目标节点的标识(文档/文件夹/文件),支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId。" + }, { "precedence": "default", "selected": false, @@ -253138,22 +251230,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -253164,9 +251268,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -253198,7 +251302,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId。", + "property": "nodeId", "required": true, "type": "string" }, @@ -253213,6 +251318,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL(选填,仅用于辅助构造返回的 docUrl)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -253228,16 +251339,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -253282,7 +251399,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -253293,7 +251411,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询节点成员列表", + "title": "查询文档协作者列表", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission list 兼容入口时" ] @@ -253419,13 +251537,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "将本地文件作为附件上传并插入到钉钉文档中(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传文件到 OSS\n 3. 插入附件块到文档 (insert_document_block)\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "将本地文件作为附件上传并插入到钉钉文档中(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传文件到 OSS\n 3. 插入附件块到文档 (insert_document_block)\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。" @@ -253598,13 +251716,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "上传附件并插入文档" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "上传附件并插入文档" @@ -254286,11 +252404,8 @@ "cli_name": "move", "cli_path": "doc move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", + "description": "将文档或文件移动到指定文件夹或知识库。移动后原位置的文档将不再存在。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时移动到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -254389,44 +252504,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将文档或文件移动到指定文件夹或知识库。移动后原位置的文档将不再存在。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时移动到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将文档或文件移动到指定文件夹或知识库。移动后原位置的文档将不再存在。\n--folder 指定目标文档文件夹 nodeId 或 alidocs 文件夹 URL,--workspace 指定目标知识库 ID。\n不要把 drive/chat 链路返回的纯数字 dentryId/parent-id 传给 --folder。\n不传 --folder 时移动到 --workspace 知识库根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -254567,22 +252660,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移动节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动文档/文件到指定位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移动节点" + "source": "cobra_help", + "value": "移动文档/文件到指定位置" }, "use_when": { "candidates": [ @@ -254628,6 +252721,12 @@ "source": "cobra_usage", "value": "目标文档文件夹 nodeId 或 alidocs 文件夹 URL;不要传 drive dentryId/parent-id" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -254643,16 +252742,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -254697,7 +252802,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -254712,6 +252818,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -254727,22 +252839,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -254753,9 +252877,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -254787,7 +252911,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -254802,6 +252927,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL (不传 --folder 时移动到该知识库根目录)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。" + }, { "precedence": "default", "selected": false, @@ -254817,16 +252948,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -254871,7 +253008,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -254882,7 +253020,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "移动节点", + "title": "移动文档/文件到指定位置", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc move 兼容入口时" ] @@ -254910,7 +253048,7 @@ "cli_name": "get", "cli_path": "doc export get", "confirmation": "not_required", - "description": "用于查询通过 submit_export_job 提交的文字文档导出任务的执行状态,任务完成时返回文件下载链接。", + "description": "根据 jobId 查询文档导出任务的执行结果。\n通常不需要手动调用,dws doc export 会自动完成轮询。\n仅在导出命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n PROCESSING 处理中\n SUCCESS 导出成功,返回 downloadUrl\n FAILED 导出失败", "display": "钉钉文档管理", "dry_run": { "preview_kind": "plan" @@ -255012,22 +253150,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用于查询通过 submit_export_job 提交的文字文档导出任务的执行状态,任务完成时返回文件下载链接。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据 jobId 查询文档导出任务的执行结果。\n通常不需要手动调用,dws doc export 会自动完成轮询。\n仅在导出命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n PROCESSING 处理中\n SUCCESS 导出成功,返回 downloadUrl\n FAILED 导出失败" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用于查询通过 submit_export_job 提交的文字文档导出任务的执行状态,任务完成时返回文件下载链接。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用于查询通过 submit_export_job 提交的文字文档导出任务的执行状态,任务完成时返回文件下载链接。" + "source": "cobra_help", + "value": "根据 jobId 查询文档导出任务的执行结果。\n通常不需要手动调用,dws doc export 会自动完成轮询。\n仅在导出命令超时或中断后,用于手动查询任务状态。\n\n任务状态:\n PROCESSING 处理中\n SUCCESS 导出成功,返回 downloadUrl\n FAILED 导出失败" }, "dry_run": { "candidates": [ @@ -255188,22 +253326,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询文档导出任务状态" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询导出任务结果(手动兜底)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询文档导出任务状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询文档导出任务状态" + "source": "cobra_help", + "value": "查询导出任务结果(手动兜底)" }, "use_when": { "candidates": [ @@ -255349,7 +253487,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询文档导出任务状态", + "title": "查询导出任务结果(手动兜底)", "use_when": [ "已有导出 jobId,需要查询任务状态或下载结果时" ] @@ -255377,11 +253515,8 @@ "cli_name": "remove", "cli_path": "doc permission remove", "confirmation": "user_required", - "description": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", + "description": "从指定节点移除一个或多个协作成员的权限(仅支持 USER 类型)。\n\n移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需在该节点具备 EDITOR 及以上角色(OWNER / MANAGER / EDITOR)。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -255482,44 +253617,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "从指定节点移除一个或多个协作成员的权限(仅支持 USER 类型)。\n\n移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需在该节点具备 EDITOR 及以上角色(OWNER / MANAGER / EDITOR)。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "从指定节点移除一个或多个协作成员的权限(仅支持 USER 类型)。\n\n移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需在该节点具备 EDITOR 及以上角色(OWNER / MANAGER / EDITOR)。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" }, "effect": { "candidates": [ @@ -255664,22 +253777,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除节点成员权限" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除文档协作者权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除节点成员权限" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除节点成员权限" + "source": "cobra_help", + "value": "移除文档协作者权限" }, "use_when": { "candidates": [ @@ -255726,6 +253839,12 @@ "source": "cobra_usage", "value": "目标节点的标识(文档/文件夹/文件),支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。" + }, { "precedence": "default", "selected": false, @@ -255741,22 +253860,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -255767,9 +253898,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -255801,7 +253932,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。", + "property": "nodeId", "required": true, "type": "string" }, @@ -255816,6 +253948,12 @@ "source": "cobra_usage", "value": "被移除权限的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移除权限的用户 userId 列表(钉钉 staffId / 外部 userId 格式),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户权限,故入参直接以扁平的 userId 列表呈现。" + }, { "precedence": "default", "selected": false, @@ -255828,25 +253966,57 @@ "source": "cobra_usage", "value": "被移除权限的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -255857,9 +254027,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -255891,7 +254061,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要移除权限的用户 userId 列表(钉钉 staffId / 外部 userId 格式),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户权限,故入参直接以扁平的 userId 列表呈现。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -255906,6 +254078,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL(选填,仅用于辅助构造返回的 docUrl)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -255921,16 +254099,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -255975,7 +254159,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -255986,7 +254171,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "移除节点成员权限", + "title": "移除文档协作者权限", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission remove 兼容入口,并已确认撤权目标时" ] @@ -256014,11 +254199,8 @@ "cli_name": "rename", "cli_path": "doc rename", "confirmation": "not_required", - "description": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限", + "description": "修改文档或文件的名称。用户说重命名、rename、改名、修改文档名称/标题时走 doc rename。\n不要用 doc update 修改列表/链接展示名称,也不要重新 create。\n\n权限要求: 对文档有\"编辑\"权限。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -256117,44 +254299,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改文档或文件的名称。用户说重命名、rename、改名、修改文档名称/标题时走 doc rename。\n不要用 doc update 修改列表/链接展示名称,也不要重新 create。\n\n权限要求: 对文档有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "修改文档或文件的名称。用户说重命名、rename、改名、修改文档名称/标题时走 doc rename。\n不要用 doc update 修改列表/链接展示名称,也不要重新 create。\n\n权限要求: 对文档有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -256295,22 +254455,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对指定节点进行重命名" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名文档/文件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对指定节点进行重命名" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对指定节点进行重命名" + "source": "cobra_help", + "value": "重命名文档/文件" }, "use_when": { "candidates": [ @@ -256356,6 +254516,12 @@ "source": "cobra_usage", "value": "新名称 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "重命名后的新名称,不能为空,长度不超过 255 个字符。" + }, { "precedence": "default", "selected": false, @@ -256371,22 +254537,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -256397,9 +254575,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -256431,7 +254609,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "重命名后的新名称,不能为空,长度不超过 255 个字符。", + "property": "newName", "required": true, "type": "string" }, @@ -256446,6 +254625,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要重命名的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。" + }, { "precedence": "default", "selected": false, @@ -256461,22 +254646,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -256487,9 +254684,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -256521,7 +254718,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要重命名的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。", + "property": "nodeId", "required": true, "type": "string" } @@ -256532,7 +254730,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "对指定节点进行重命名", + "title": "重命名文档/文件", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc rename 兼容入口时" ] @@ -256565,11 +254763,8 @@ "cli_name": "reply", "cli_path": "doc comment reply", "confirmation": "not_required", - "description": "回复钉钉文档中的已有评论,支持普通文字回复和表情贴图回复,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,通过 replyCommentKey 指定被回复的评论(可从 create_comment 或 list_comments 的返回结果中获取)。\r\n- 普通回复:填写 content,不填 emoji。\r\n- 表情贴图回复:填写 content(表情名称),同时将 emoji 设为 true。表情回复的 categoryFeature 会自动从被回复评论继承。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n操作受权限控制,仅当调用者对文档有评论权限时可回复评论。", + "description": "回复指定文档中的一条评论。\n\n--comment-key 为被回复评论的唯一标识(即 list 返回的 commentKey),格式:{13位毫秒时间戳}{32位UUID},共45位。\ncommentKey可从 dws doc comment create 或 dws doc comment list 返回结果中获取。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"\n\n设置 --emoji 时,本次回复将作为表情贴图回复,--content 填写表情名称。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -256668,44 +254863,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "回复钉钉文档中的已有评论,支持普通文字回复和表情贴图回复,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,通过 replyCommentKey 指定被回复的评论(可从 create_comment 或 list_comments 的返回结果中获取)。\r\n- 普通回复:填写 content,不填 emoji。\r\n- 表情贴图回复:填写 content(表情名称),同时将 emoji 设为 true。表情回复的 categoryFeature 会自动从被回复评论继承。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n操作受权限控制,仅当调用者对文档有评论权限时可回复评论。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "回复指定文档中的一条评论。\n\n--comment-key 为被回复评论的唯一标识(即 list 返回的 commentKey),格式:{13位毫秒时间戳}{32位UUID},共45位。\ncommentKey可从 dws doc comment create 或 dws doc comment list 返回结果中获取。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"\n\n设置 --emoji 时,本次回复将作为表情贴图回复,--content 填写表情名称。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "回复钉钉文档中的已有评论,支持普通文字回复和表情贴图回复,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,通过 replyCommentKey 指定被回复的评论(可从 create_comment 或 list_comments 的返回结果中获取)。\r\n- 普通回复:填写 content,不填 emoji。\r\n- 表情贴图回复:填写 content(表情名称),同时将 emoji 设为 true。表情回复的 categoryFeature 会自动从被回复评论继承。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n操作受权限控制,仅当调用者对文档有评论权限时可回复评论。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "回复钉钉文档中的已有评论,支持普通文字回复和表情贴图回复,支持 @提及用户。\r\n\r\n通过 nodeId 定位文档,通过 replyCommentKey 指定被回复的评论(可从 create_comment 或 list_comments 的返回结果中获取)。\r\n- 普通回复:填写 content,不填 emoji。\r\n- 表情贴图回复:填写 content(表情名称),同时将 emoji 设为 true。表情回复的 categoryFeature 会自动从被回复评论继承。\r\n- @提及用户:填写 mentionedUserIds,被提及用户会收到通知。\r\n操作受权限控制,仅当调用者对文档有评论权限时可回复评论。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "回复指定文档中的一条评论。\n\n--comment-key 为被回复评论的唯一标识(即 list 返回的 commentKey),格式:{13位毫秒时间戳}{32位UUID},共45位。\ncommentKey可从 dws doc comment create 或 dws doc comment list 返回结果中获取。\n\n可通过 --mention 指定被 @ 的用户 uid 列表(逗号分隔),\n评论内容中会插入 @mention 节点并发送通知。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"\n\n设置 --emoji 时,本次回复将作为表情贴图回复,--content 填写表情名称。" }, "effect": { "candidates": [ @@ -256860,21 +255033,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "回复评论" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "回复评论" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "回复评论" }, "use_when": { @@ -256922,6 +255095,12 @@ "source": "cobra_usage", "value": "被回复评论的 commentKey,格式: {13位毫秒时间戳}{32位UUID},可从 list/create 结果获取 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被回复评论的唯一标识,格式:{13位毫秒时间戳}{32位UUID},共45位。可从 create_comment 或 list_comments 返回结果中获取。必填。" + }, { "precedence": "default", "selected": false, @@ -256937,22 +255116,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "replyCommentKey" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "commentKey" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "commentKey" + "source": "versioned_parameter_binding", + "value": "replyCommentKey" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -256963,9 +255154,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -256997,7 +255188,8 @@ "value": "string" } }, - "property": "commentKey", + "interface_description": "被回复评论的唯一标识,格式:{13位毫秒时间戳}{32位UUID},共45位。可从 create_comment 或 list_comments 返回结果中获取。必填。", + "property": "replyCommentKey", "required": true, "type": "string" }, @@ -257212,6 +255404,12 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "填写后,评论内容中会插入 @mention 节点,并向对应用户发送通知。" + }, { "precedence": "default", "selected": false, @@ -257224,19 +255422,45 @@ "source": "cobra_usage", "value": "被 @ 的用户 uid 列表,逗号分隔" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mention" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mention" + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" }, "required": { "candidates": [ @@ -257281,7 +255505,9 @@ "value": "string" } }, - "property": "mention", + "interface_description": "填写后,评论内容中会插入 @mention 节点,并向对应用户发送通知。", + "interface_type": "array", + "property": "mentionedUserIds", "required": false, "type": "string" }, @@ -257296,6 +255522,12 @@ "source": "cobra_usage", "value": "目标文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。" + }, { "precedence": "default", "selected": false, @@ -257311,22 +255543,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -257337,9 +255581,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -257371,7 +255615,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入 URL 或 ID(dentryUuid)。必填。", + "property": "nodeId", "required": true, "type": "string" } @@ -257412,11 +255657,8 @@ "cli_name": "search", "cli_path": "doc search", "confirmation": "not_required", - "description": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集", + "description": "根据关键词搜索当前用户有权限访问的文档列表。不传关键词则返回最近访问的文档。\n\n支持按扩展名、创建/访问时间范围、创建者、编辑者、@提及用户、知识库等维度过滤。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -257515,44 +255757,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据关键词搜索当前用户有权限访问的文档列表。不传关键词则返回最近访问的文档。\n\n支持按扩展名、创建/访问时间范围、创建者、编辑者、@提及用户、知识库等维度过滤。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据关键词搜索当前用户有权限访问的文档列表。不传关键词则返回最近访问的文档。\n\n支持按扩展名、创建/访问时间范围、创建者、编辑者、@提及用户、知识库等维度过滤。" }, "effect": { "candidates": [ @@ -257699,21 +255919,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索文档" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "搜索文档" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索文档" }, "use_when": { @@ -257760,6 +255980,12 @@ "source": "cobra_usage", "value": "创建时间起始 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建时间范围的起始时间(毫秒时间戳,含)" + }, { "precedence": "default", "selected": false, @@ -257772,19 +255998,45 @@ "source": "cobra_usage", "value": "创建时间起始 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createdTimeFrom" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "createdFrom" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "createdFrom" + "source": "versioned_parameter_binding", + "value": "createdTimeFrom" }, "required": { "candidates": [ @@ -257829,7 +256081,9 @@ "value": "integer" } }, - "property": "createdFrom", + "interface_description": "创建时间范围的起始时间(毫秒时间戳,含)", + "interface_type": "number", + "property": "createdTimeFrom", "required": false, "type": "integer" }, @@ -257844,6 +256098,12 @@ "source": "cobra_usage", "value": "创建时间截止 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建时间范围的截止时间(毫秒时间戳,含)" + }, { "precedence": "default", "selected": false, @@ -257856,19 +256116,45 @@ "source": "cobra_usage", "value": "创建时间截止 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createdTimeTo" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "createdTo" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "createdTo" + "source": "versioned_parameter_binding", + "value": "createdTimeTo" }, "required": { "candidates": [ @@ -257913,7 +256199,9 @@ "value": "integer" } }, - "property": "createdTo", + "interface_description": "创建时间范围的截止时间(毫秒时间戳,含)", + "interface_type": "number", + "property": "createdTimeTo", "required": false, "type": "integer" }, @@ -257928,6 +256216,12 @@ "source": "cobra_usage", "value": "按创建者用户 ID 过滤,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按创建者过滤,传入用户 ID 列表" + }, { "precedence": "default", "selected": false, @@ -257943,16 +256237,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "creatorUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "creatorUids" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "creatorUids" + "source": "versioned_parameter_binding", + "value": "creatorUserIds" }, "required": { "candidates": [ @@ -257997,7 +256297,8 @@ "value": "array" } }, - "property": "creatorUids", + "interface_description": "按创建者过滤,传入用户 ID 列表", + "property": "creatorUserIds", "required": false, "type": "array" }, @@ -258012,6 +256313,12 @@ "source": "cobra_usage", "value": "分页游标 (从上次结果的 nextPageToken 获取)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次请求的返回结果中获取 nextPageToken" + }, { "precedence": "default", "selected": false, @@ -258027,16 +256334,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "pageToken" }, "required": { "candidates": [ @@ -258081,7 +256394,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次请求的返回结果中获取 nextPageToken", + "property": "pageToken", "required": false, "type": "string" }, @@ -258096,6 +256410,12 @@ "source": "cobra_usage", "value": "按编辑者用户 ID 过滤,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按编辑者过滤,传入用户 ID 列表" + }, { "precedence": "default", "selected": false, @@ -258111,16 +256431,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "editorUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "editorUids" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "editorUids" + "source": "versioned_parameter_binding", + "value": "editorUserIds" }, "required": { "candidates": [ @@ -258165,7 +256491,8 @@ "value": "array" } }, - "property": "editorUids", + "interface_description": "按编辑者过滤,传入用户 ID 列表", + "property": "editorUserIds", "required": false, "type": "array" }, @@ -258271,6 +256598,12 @@ "source": "cobra_usage", "value": "每页数量 (默认 10,最大 30)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的文档数量,默认 10,最大 30" + }, { "precedence": "default", "selected": false, @@ -258283,19 +256616,45 @@ "source": "cobra_usage", "value": "每页数量 (默认 10,最大 30)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -258346,7 +256705,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的文档数量,默认 10,最大 30", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -258361,6 +256722,12 @@ "source": "cobra_usage", "value": "按 @提及的用户 ID 过滤,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按文档中 @提及的用户过滤" + }, { "precedence": "default", "selected": false, @@ -258376,16 +256743,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mentionedUids" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mentionedUids" + "source": "versioned_parameter_binding", + "value": "mentionedUserIds" }, "required": { "candidates": [ @@ -258430,7 +256803,8 @@ "value": "array" } }, - "property": "mentionedUids", + "interface_description": "按文档中 @提及的用户过滤", + "property": "mentionedUserIds", "required": false, "type": "array" }, @@ -258445,6 +256819,12 @@ "source": "cobra_usage", "value": "搜索关键词 (不传则返回最近访问)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词,匹配文档标题和内容。不传则返回最近访问的文档列表。" + }, { "precedence": "default", "selected": false, @@ -258460,16 +256840,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ @@ -258514,7 +256900,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "搜索关键词,匹配文档标题和内容。不传则返回最近访问的文档列表。", + "property": "keyword", "required": false, "type": "string" }, @@ -258529,6 +256916,12 @@ "source": "cobra_usage", "value": "访问时间起始 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "访问时间范围的起始时间(毫秒时间戳,含)" + }, { "precedence": "default", "selected": false, @@ -258541,19 +256934,45 @@ "source": "cobra_usage", "value": "访问时间起始 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "visitedTimeFrom" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "visitedFrom" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "visitedFrom" + "source": "versioned_parameter_binding", + "value": "visitedTimeFrom" }, "required": { "candidates": [ @@ -258598,7 +257017,9 @@ "value": "integer" } }, - "property": "visitedFrom", + "interface_description": "访问时间范围的起始时间(毫秒时间戳,含)", + "interface_type": "number", + "property": "visitedTimeFrom", "required": false, "type": "integer" }, @@ -258613,6 +257034,12 @@ "source": "cobra_usage", "value": "访问时间截止 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "访问时间范围的截止时间(毫秒时间戳,含)" + }, { "precedence": "default", "selected": false, @@ -258625,19 +257052,45 @@ "source": "cobra_usage", "value": "访问时间截止 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "visitedTimeTo" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "visitedTo" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "visitedTo" + "source": "versioned_parameter_binding", + "value": "visitedTimeTo" }, "required": { "candidates": [ @@ -258682,7 +257135,9 @@ "value": "integer" } }, - "property": "visitedTo", + "interface_description": "访问时间范围的截止时间(毫秒时间戳,含)", + "interface_type": "number", + "property": "visitedTimeTo", "required": false, "type": "integer" }, @@ -258796,6 +257251,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template apply", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "agent_summary": "使用模板创建新文档", @@ -258810,9 +257266,6 @@ "confirmation": "not_required", "description": "使用指定模板创建新文档。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -258839,15 +257292,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -258903,39 +257358,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "使用指定模板创建新文档。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "使用指定模板创建新文档。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -258989,45 +257422,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -259069,13 +257506,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "应用文档模板" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "应用文档模板" @@ -259104,8 +257541,8 @@ "group": "template", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_apply", "parameter_count": 4, @@ -259136,16 +257573,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259190,7 +257635,6 @@ "value": "string" } }, - "property": "folder", "required": false, "type": "string" }, @@ -259220,16 +257664,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259274,7 +257726,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -259304,16 +257755,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "templateId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "templateId" + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259364,7 +257823,6 @@ "value": "string" } }, - "property": "templateId", "required": true, "type": "string" }, @@ -259394,16 +257852,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "review_reason": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259448,7 +257914,6 @@ "value": "string" } }, - "property": "workspace", "required": false, "type": "string" } @@ -259471,6 +257936,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "agent_summary": "列出当前用户可用的文档模板", @@ -259485,9 +257951,6 @@ "confirmation": "not_required", "description": "获取当前用户可用的文档模板列表,支持按来源筛选。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -259514,15 +257977,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -259578,39 +258043,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取当前用户可用的文档模板列表,支持按来源筛选。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取当前用户可用的文档模板列表,支持按来源筛选。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -259664,45 +258107,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -259744,13 +258191,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取文档模板列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取文档模板列表" @@ -259779,8 +258226,8 @@ "group": "template", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_list", "parameter_count": 3, @@ -259811,16 +258258,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259865,7 +258320,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -259895,16 +258349,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -259949,7 +258411,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -259979,16 +258440,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "source" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "source" + "review_reason": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -260039,7 +258508,6 @@ "value": "string" } }, - "property": "source", "required": false, "type": "string" } @@ -260062,6 +258530,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc template search", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "agent_summary": "按关键词搜索文档模板", @@ -260076,9 +258545,6 @@ "confirmation": "not_required", "description": "根据关键词搜索文档模板。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -260105,15 +258571,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -260169,39 +258637,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据关键词搜索文档模板。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据关键词搜索文档模板。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -260255,45 +258701,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -260335,13 +258785,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "搜索文档模板" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "搜索文档模板" @@ -260370,8 +258820,8 @@ "group": "template", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_search", "parameter_count": 4, @@ -260402,16 +258852,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -260456,7 +258914,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -260486,16 +258943,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -260540,7 +259005,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -260570,16 +259034,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -260630,7 +259102,6 @@ "value": "string" } }, - "property": "query", "required": true, "type": "string" }, @@ -260660,16 +259131,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "source" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "source" + "review_reason": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -260720,7 +259199,6 @@ "value": "string" } }, - "property": "source", "required": false, "type": "string" } @@ -260758,9 +259236,6 @@ "confirmation": "not_required", "description": "更新指定文档中的一条评论。\n\n--comment-key 为待更新评论的唯一标识,可从 comment list、create 或 create-inline 的返回结果中获取。\n可通过 --mention 指定更新后评论中被 @ 的用户 uid 列表。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -260787,7 +259262,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -260795,7 +259270,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -260860,39 +259335,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新指定文档中的一条评论。\n\n--comment-key 为待更新评论的唯一标识,可从 comment list、create 或 create-inline 的返回结果中获取。\n可通过 --mention 指定更新后评论中被 @ 的用户 uid 列表。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新指定文档中的一条评论。\n\n--comment-key 为待更新评论的唯一标识,可从 comment list、create 或 create-inline 的返回结果中获取。\n可通过 --mention 指定更新后评论中被 @ 的用户 uid 列表。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -260945,39 +259398,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -260985,7 +259438,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -260997,13 +259450,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -261029,13 +259475,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新文档评论" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新文档评论" @@ -261064,8 +259510,8 @@ "group": "comment", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "update_comment", "parameter_count": 4, @@ -261096,16 +259542,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "commentKey" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "commentKey" + "review_reason": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -261156,7 +259610,6 @@ "value": "string" } }, - "property": "commentKey", "required": true, "type": "string" }, @@ -261186,16 +259639,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --content is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "content" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "content" + "review_reason": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --content is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -261246,7 +259707,6 @@ "value": "string" } }, - "property": "content", "required": true, "type": "string" }, @@ -261513,7 +259973,7 @@ ] ] }, - "description": "更新钉钉文档的内容,扩展名=adoc,其他类型在线文档不能使用此mcp服务,支持两种更新模式。\r\n\r\n## 更新模式\r\n\r\n1. **overwrite**(覆盖,默认):清空文档全部内容后重新写入。适用于需要完整替换文档内容的场景。⚠️ 会丢失原有内容,请谨慎使用。\r\n2. **append**(追加):在文档末尾追加新内容。最安全的模式,不影响现有内容。\r\n 支持通过 index 参数指定插入位置(从 0 开始);不传 index 时追加到末尾。\r\n block 的 index 可通过 list_document_blocks 工具获取。\r\n 插入成功后,该位置及之后的所有 block 的 index 会依次 +1。\r\n\r\n## 注意事项\r\n- 默认模式为 overwrite,不传 mode 时使用覆盖模式\r\n- overwrite 模式会清空所有内容,包括图片、评论等,请谨慎使用\r\n- 写入内容长度上限 10000 字符,超出请分批写入", + "description": "更新文档的 Markdown 内容。\n --mode overwrite: 覆盖 (清空原内容后重写)\n --mode append: 追加 (在末尾追加,最安全)\n 注意: --mode 为必填参数,必须显式指定 overwrite 或 append。\n\nWARNING: --mode overwrite 为破坏性写入,会清空原文档全部内容。\n - 必须显式传 --yes 才会执行覆盖;不传 --yes 时命令直接返回错误。\n - 可先用 --dry-run 预览待写入内容与当前内容的差异 (不调远端 update)。\n - 调用前建议先用 dws doc read 备份现状;调用后建议再次 read 校验。\n\n内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)\n\n插入位置(仅 mode=append 生效):\n --index N 将内容插入到文档第 N 个 block 之前(从 0 开始)。\n 不传时追加到末尾。block index 可通过 doc block list 获取。\n 插入成功后,该位置及之后所有 block 的 index 会依次 +1。", "display": "钉钉文档管理", "effect": "write", "effect_source": "command-verb", @@ -261613,22 +260073,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新钉钉文档的内容,扩展名=adoc,其他类型在线文档不能使用此mcp服务,支持两种更新模式。\r\n\r\n## 更新模式\r\n\r\n1. **overwrite**(覆盖,默认):清空文档全部内容后重新写入。适用于需要完整替换文档内容的场景。⚠️ 会丢失原有内容,请谨慎使用。\r\n2. **append**(追加):在文档末尾追加新内容。最安全的模式,不影响现有内容。\r\n 支持通过 index 参数指定插入位置(从 0 开始);不传 index 时追加到末尾。\r\n block 的 index 可通过 list_document_blocks 工具获取。\r\n 插入成功后,该位置及之后的所有 block 的 index 会依次 +1。\r\n\r\n## 注意事项\r\n- 默认模式为 overwrite,不传 mode 时使用覆盖模式\r\n- overwrite 模式会清空所有内容,包括图片、评论等,请谨慎使用\r\n- 写入内容长度上限 10000 字符,超出请分批写入" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新文档的 Markdown 内容。\n --mode overwrite: 覆盖 (清空原内容后重写)\n --mode append: 追加 (在末尾追加,最安全)\n 注意: --mode 为必填参数,必须显式指定 overwrite 或 append。\n\nWARNING: --mode overwrite 为破坏性写入,会清空原文档全部内容。\n - 必须显式传 --yes 才会执行覆盖;不传 --yes 时命令直接返回错误。\n - 可先用 --dry-run 预览待写入内容与当前内容的差异 (不调远端 update)。\n - 调用前建议先用 dws doc read 备份现状;调用后建议再次 read 校验。\n\n内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)\n\n插入位置(仅 mode=append 生效):\n --index N 将内容插入到文档第 N 个 block 之前(从 0 开始)。\n 不传时追加到末尾。block index 可通过 doc block list 获取。\n 插入成功后,该位置及之后所有 block 的 index 会依次 +1。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新钉钉文档的内容,扩展名=adoc,其他类型在线文档不能使用此mcp服务,支持两种更新模式。\r\n\r\n## 更新模式\r\n\r\n1. **overwrite**(覆盖,默认):清空文档全部内容后重新写入。适用于需要完整替换文档内容的场景。⚠️ 会丢失原有内容,请谨慎使用。\r\n2. **append**(追加):在文档末尾追加新内容。最安全的模式,不影响现有内容。\r\n 支持通过 index 参数指定插入位置(从 0 开始);不传 index 时追加到末尾。\r\n block 的 index 可通过 list_document_blocks 工具获取。\r\n 插入成功后,该位置及之后的所有 block 的 index 会依次 +1。\r\n\r\n## 注意事项\r\n- 默认模式为 overwrite,不传 mode 时使用覆盖模式\r\n- overwrite 模式会清空所有内容,包括图片、评论等,请谨慎使用\r\n- 写入内容长度上限 10000 字符,超出请分批写入" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新钉钉文档的内容,扩展名=adoc,其他类型在线文档不能使用此mcp服务,支持两种更新模式。\r\n\r\n## 更新模式\r\n\r\n1. **overwrite**(覆盖,默认):清空文档全部内容后重新写入。适用于需要完整替换文档内容的场景。⚠️ 会丢失原有内容,请谨慎使用。\r\n2. **append**(追加):在文档末尾追加新内容。最安全的模式,不影响现有内容。\r\n 支持通过 index 参数指定插入位置(从 0 开始);不传 index 时追加到末尾。\r\n block 的 index 可通过 list_document_blocks 工具获取。\r\n 插入成功后,该位置及之后的所有 block 的 index 会依次 +1。\r\n\r\n## 注意事项\r\n- 默认模式为 overwrite,不传 mode 时使用覆盖模式\r\n- overwrite 模式会清空所有内容,包括图片、评论等,请谨慎使用\r\n- 写入内容长度上限 10000 字符,超出请分批写入" + "source": "cobra_help", + "value": "更新文档的 Markdown 内容。\n --mode overwrite: 覆盖 (清空原内容后重写)\n --mode append: 追加 (在末尾追加,最安全)\n 注意: --mode 为必填参数,必须显式指定 overwrite 或 append。\n\nWARNING: --mode overwrite 为破坏性写入,会清空原文档全部内容。\n - 必须显式传 --yes 才会执行覆盖;不传 --yes 时命令直接返回错误。\n - 可先用 --dry-run 预览待写入内容与当前内容的差异 (不调远端 update)。\n - 调用前建议先用 dws doc read 备份现状;调用后建议再次 read 校验。\n\n内容来源(--content-file 优先于 --content):\n --content \"...\" 短文本字面量(仅推荐 \u003c2KB 且无换行/表格)\n --content - 从 stdin 读取(可配合 heredoc/pipe)\n --content-file path 从 UTF-8 文件读取(推荐长/多行/表格内容,避免 shell escape)\n\n插入位置(仅 mode=append 生效):\n --index N 将内容插入到文档第 N 个 block 之前(从 0 开始)。\n 不传时追加到末尾。block index 可通过 doc block list 获取。\n 插入成功后,该位置及之后所有 block 的 index 会依次 +1。" }, "effect": { "candidates": [ @@ -261775,22 +260235,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新钉钉文档的内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新文档内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新钉钉文档的内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新钉钉文档的内容" + "source": "cobra_help", + "value": "更新文档内容" }, "use_when": { "candidates": [ @@ -261851,16 +260311,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "pipeline input mapped to markdown or jsonml according to content-format", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "content" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "content" + "review_reason": "pipeline input mapped to markdown or jsonml according to content-format", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -261911,7 +260379,6 @@ "value": "string" } }, - "property": "content", "required": false, "type": "string" }, @@ -261941,16 +260408,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local file input for the content pipeline", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFile" + "review_reason": "local file input for the content pipeline", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -262001,7 +260476,6 @@ "value": "string" } }, - "property": "contentFile", "required": false, "type": "string" }, @@ -262016,6 +260490,12 @@ "source": "cobra_usage", "value": "内容格式: 默认为 markdown,可选 jsonml" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "指定数据的格式,可选为 markdown 或 jsonml,默认为 markdown" + }, { "precedence": "default", "selected": false, @@ -262031,16 +260511,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "format" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "source": "versioned_parameter_binding", + "value": "format" }, "required": { "candidates": [ @@ -262091,7 +260577,8 @@ "value": "string" } }, - "property": "contentFormat", + "interface_description": "指定数据的格式,可选为 markdown 或 jsonml,默认为 markdown", + "property": "format", "required": false, "type": "string" }, @@ -262121,16 +260608,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local preview control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "dryRun" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "dryRun" + "review_reason": "local preview control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -262175,7 +260670,6 @@ "value": "boolean" } }, - "property": "dryRun", "required": false, "type": "boolean" }, @@ -262205,16 +260699,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local JSONML normalization control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fixJsonml" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fixJsonml" + "review_reason": "local JSONML normalization control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -262259,7 +260761,6 @@ "value": "boolean" } }, - "property": "fixJsonml", "required": false, "type": "boolean" }, @@ -262511,6 +261012,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。" + }, { "precedence": "default", "selected": false, @@ -262526,16 +261033,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -262545,6 +261058,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -262592,7 +261111,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -262734,16 +261254,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local confirmation control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "local confirmation control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -262788,7 +261316,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -262799,7 +261326,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新钉钉文档的内容", + "title": "更新文档内容", "use_when": [ "需要更新文档内容(追加 / 覆盖)时" ] @@ -262839,11 +261366,8 @@ ] ] }, - "description": "更新指定文档的指定块元素内容或样式,需要提供文档ID(dentryUuid)、块元素ID(blockId)与块元素内容(必须包含 blockType 及对应类型的属性对象)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。", + "description": "更新文档中指定块的内容或样式。需提供 --block-id 和块元素内容。\n可用 --text 快速更新为段落,--heading + --level 快速更新为标题。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -262942,44 +261466,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定文档的指定块元素内容或样式,需要提供文档ID(dentryUuid)、块元素ID(blockId)与块元素内容(必须包含 blockType 及对应类型的属性对象)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新文档中指定块的内容或样式。需提供 --block-id 和块元素内容。\n可用 --text 快速更新为段落,--heading + --level 快速更新为标题。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定文档的指定块元素内容或样式,需要提供文档ID(dentryUuid)、块元素ID(blockId)与块元素内容(必须包含 blockType 及对应类型的属性对象)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定文档的指定块元素内容或样式,需要提供文档ID(dentryUuid)、块元素ID(blockId)与块元素内容(必须包含 blockType 及对应类型的属性对象)。操作受文档权限控制,仅当调用者拥有编辑权限时生效。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新文档中指定块的内容或样式。需提供 --block-id 和块元素内容。\n可用 --text 快速更新为段落,--heading + --level 快速更新为标题。" }, "effect": { "candidates": [ @@ -263120,21 +261622,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新块元素" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新块元素" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新块元素" }, "use_when": { @@ -263285,6 +261787,12 @@ "source": "cobra_usage", "value": "输入格式: 默认为 element,可选 jsonml" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "数据的格式,可选为 element 或 jsonml,默认为 element" + }, { "precedence": "default", "selected": false, @@ -263300,16 +261808,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "format" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentFormat" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentFormat" + "source": "versioned_parameter_binding", + "value": "format" }, "required": { "candidates": [ @@ -263360,7 +261874,8 @@ "value": "string" } }, - "property": "contentFormat", + "interface_description": "数据的格式,可选为 element 或 jsonml,默认为 element", + "property": "format", "required": false, "type": "string" }, @@ -263508,16 +262023,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local JSONML normalization control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fixJsonml" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fixJsonml" + "review_reason": "local JSONML normalization control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -263562,7 +262085,6 @@ "value": "boolean" } }, - "property": "fixJsonml", "required": false, "type": "boolean" }, @@ -263592,16 +262114,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "heading" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "heading" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -263652,7 +262182,6 @@ "value": "string" } }, - "property": "heading", "required": false, "type": "string" }, @@ -263683,16 +262212,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "level" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "level" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -263743,7 +262280,6 @@ "value": "integer" } }, - "property": "level", "required": false, "type": "integer" }, @@ -263758,6 +262294,12 @@ "source": "cobra_usage", "value": "文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。" + }, { "precedence": "default", "selected": false, @@ -263773,22 +262315,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -263799,9 +262353,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -263833,7 +262387,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标文档的标识,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -263863,16 +262418,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate convenience input used to build element", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "text" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "text" + "review_reason": "aggregate convenience input used to build element", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -263923,7 +262486,6 @@ "value": "string" } }, - "property": "text", "required": false, "type": "string" } @@ -263964,11 +262526,8 @@ "cli_name": "update", "cli_path": "doc permission update", "confirmation": "user_required", - "description": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。", + "description": "更新指定节点已有协作者的权限角色(仅支持 USER 类型成员)。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\n- 若成员的角色来自父节点的权限继承(PASS_ON),且继承角色高于目标角色,接口会拒绝操作。\n\n仅可更新已存在协作关系的用户,新增协作者请使用 dws doc permission add。", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "skill-explicit", "examples": [ @@ -264069,44 +262628,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定节点已有协作者的权限角色(仅支持 USER 类型成员)。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\n- 若成员的角色来自父节点的权限继承(PASS_ON),且继承角色高于目标角色,接口会拒绝操作。\n\n仅可更新已存在协作关系的用户,新增协作者请使用 dws doc permission add。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定节点已有协作者的权限角色(仅支持 USER 类型成员)。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\n- 若成员的角色来自父节点的权限继承(PASS_ON),且继承角色高于目标角色,接口会拒绝操作。\n\n仅可更新已存在协作关系的用户,新增协作者请使用 dws doc permission add。" }, "effect": { "candidates": [ @@ -264251,22 +262788,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "变更节点成员角色" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新文档协作者权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "变更节点成员角色" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "变更节点成员角色" + "source": "cobra_help", + "value": "更新文档协作者权限" }, "use_when": { "candidates": [ @@ -264313,6 +262850,12 @@ "source": "cobra_usage", "value": "目标节点的标识(文档/文件夹/文件),支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId。" + }, { "precedence": "default", "selected": false, @@ -264328,22 +262871,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -264354,9 +262909,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -264388,7 +262943,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId。", + "property": "nodeId", "required": true, "type": "string" }, @@ -264403,6 +262959,12 @@ "source": "cobra_usage", "value": "新权限角色: MANAGER / EDITOR / DOWNLOADER / READER (必填,大小写不敏感)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -264418,22 +262980,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -264444,9 +263018,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -264478,7 +263052,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -264493,6 +263068,12 @@ "source": "cobra_usage", "value": "被更新的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -264505,25 +263086,57 @@ "source": "cobra_usage", "value": "被更新的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -264534,9 +263147,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -264568,7 +263181,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -264583,6 +263198,12 @@ "source": "cobra_usage", "value": "目标知识库 ID 或 URL(选填,仅用于辅助构造返回的 docUrl)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -264598,16 +263219,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -264652,7 +263279,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -264663,7 +263291,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "变更节点成员角色", + "title": "更新文档协作者权限", "use_when": [ "仅在用户或既有脚本明确要求使用 dws doc permission update 兼容入口时" ] @@ -264788,13 +263416,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "将本地文件上传到钉钉文档或钉钉知识库(三步上传流程)。\n\n流程:\n 1. 获取 OSS 上传凭证 (get_file_upload_info)\n 2. HTTP PUT 上传文件二进制到 OSS\n 3. 提交文件入库 (commit_uploaded_file)\n\n上传位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "将本地文件上传到钉钉文档或钉钉知识库(三步上传流程)。\n\n流程:\n 1. 获取 OSS 上传凭证 (get_file_upload_info)\n 2. HTTP PUT 上传文件二进制到 OSS\n 3. 提交文件入库 (commit_uploaded_file)\n\n上传位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" @@ -264967,13 +263595,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "上传文件到钉钉文档或钉钉知识库" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "上传文件到钉钉文档或钉钉知识库" @@ -265458,6 +264086,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "agent_summary": "列出文档历史版本", @@ -265472,9 +264101,6 @@ "confirmation": "not_required", "description": "查看文档历史版本列表", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -265501,15 +264127,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -265565,39 +264193,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看文档历史版本列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看文档历史版本列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -265651,45 +264257,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -265731,13 +264341,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看文档历史版本列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看文档历史版本列表" @@ -265766,8 +264376,8 @@ "group": "version", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "version_list", "parameter_count": 3, @@ -265798,16 +264408,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -265852,7 +264470,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -265882,16 +264499,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -265936,7 +264561,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -265966,16 +264590,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -266026,7 +264658,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" } @@ -266049,6 +264680,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version revert", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json" ], @@ -266089,15 +264721,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -266140,7 +264774,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -266154,20 +264788,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "回滚文档到指定版本" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "回滚文档到指定版本" @@ -266176,7 +264810,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" @@ -266190,7 +264824,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" }, @@ -266218,7 +264852,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -266232,52 +264866,56 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -266291,7 +264929,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -266313,7 +264951,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -266327,20 +264965,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "回滚文档到指定版本" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "回滚文档到指定版本" @@ -266369,8 +265007,8 @@ "group": "version", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "version_revert", "parameter_count": 2, @@ -266401,16 +265039,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -266461,7 +265107,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -266491,16 +265136,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "version" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "version" + "review_reason": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -266551,7 +265204,6 @@ "value": "integer" } }, - "property": "version", "required": true, "type": "integer" } @@ -266574,6 +265226,7 @@ "Skill:skills/mono/references/products/doc.md", "cobra-help:dws doc version save", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json" ], "agent_summary": "保存当前文档版本快照", @@ -266588,9 +265241,6 @@ "confirmation": "not_required", "description": "手动保存文档版本快照", "display": "钉钉文档管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -266616,15 +265266,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -266680,39 +265332,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "手动保存文档版本快照" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "手动保存文档版本快照" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -266764,45 +265394,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -266844,13 +265478,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "手动保存文档版本快照" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "手动保存文档版本快照" @@ -266879,8 +265513,8 @@ "group": "version", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "version_save", "parameter_count": 1, @@ -266911,16 +265545,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: doc.version_save has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: doc.version_save has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -266971,7 +265613,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" } @@ -267011,11 +265652,8 @@ "cli_name": "add", "cli_path": "drive permission add", "confirmation": "not_required", - "description": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。", + "description": "为文档空间节点添加协作成员并授予指定角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -267114,44 +265752,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为文档空间节点添加协作成员并授予指定角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为知识库下的节点(文档、文件夹、文件)添加指定角色的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量授予企业用户对节点的访问权限,添加成功后即可按指定角色访问该节点及其子节点(若子节点继承权限)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为文档空间节点添加协作成员并授予指定角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER" }, "effect": { "candidates": [ @@ -267300,22 +265916,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加节点成员" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加协作者" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加节点成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加节点成员" + "source": "cobra_help", + "value": "添加协作者" }, "use_when": { "candidates": [ @@ -267362,6 +265978,12 @@ "source": "cobra_usage", "value": "目标节点 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。" + }, { "precedence": "default", "selected": false, @@ -267377,22 +265999,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -267403,9 +266037,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -267437,7 +266071,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。", + "property": "nodeId", "required": true, "type": "string" }, @@ -267452,6 +266087,12 @@ "source": "cobra_usage", "value": "角色: MANAGER / EDITOR / DOWNLOADER / READER (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -267467,22 +266108,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -267493,9 +266146,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -267527,7 +266180,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -267542,6 +266196,12 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -267554,25 +266214,57 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -267583,9 +266275,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -267617,7 +266309,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -267632,6 +266326,12 @@ "source": "cobra_usage", "value": "知识库 ID (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -267647,16 +266347,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -267701,7 +266407,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -267712,7 +266419,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加节点成员", + "title": "添加协作者", "use_when": [ "需要为文档空间节点添加协作成员并授予指定角色时" ] @@ -267742,11 +266449,8 @@ "cli_name": "commit", "cli_path": "drive commit", "confirmation": "not_required", - "description": "文件上传流程:\r\nStep 1:调用 get_upload_info 获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用本接口提交文件,传入Step 1返回的 uploadId 与对应的 fileName、fileSize 完成文件上传", + "description": "提交文件上传", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -267844,44 +266548,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "文件上传流程:\r\nStep 1:调用 get_upload_info 获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用本接口提交文件,传入Step 1返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "提交文件上传" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "文件上传流程:\r\nStep 1:调用 get_upload_info 获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用本接口提交文件,传入Step 1返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "文件上传流程:\r\nStep 1:调用 get_upload_info 获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用本接口提交文件,传入Step 1返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "提交文件上传" }, "effect": { "candidates": [ @@ -268026,22 +266708,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "commit_upload" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "提交文件上传" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "commit_upload" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "commit_upload" + "source": "cobra_help", + "value": "提交文件上传" }, "use_when": { "candidates": [ @@ -268329,6 +267011,12 @@ "source": "cobra_usage", "value": "父节点 ID (dentryUuid),不传则提交到根目录 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "父节点 ID(dentryUuid 格式)。不传则提交到空间根目录。须与 get_upload_info 时传入的 parentId 一致" + }, { "precedence": "default", "selected": false, @@ -268344,16 +267032,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "parentId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "parentId" }, "required": { "candidates": [ @@ -268398,7 +267092,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "父节点 ID(dentryUuid 格式)。不传则提交到空间根目录。须与 get_upload_info 时传入的 parentId 一致", + "property": "parentId", "required": false, "type": "string" }, @@ -268603,7 +267298,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "commit_upload", + "title": "提交文件上传", "use_when": [ "需要提交文件上传时" ] @@ -268631,11 +267326,8 @@ "cli_name": "copy", "cli_path": "drive copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", + "description": "将文档空间中的文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n不传 --folder 时复制到 --workspace 根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -268734,44 +267426,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将文档空间中的文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n不传 --folder 时复制到 --workspace 根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将文档空间中的文档或文件复制到指定文件夹或知识库。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n不传 --folder 时复制到 --workspace 根目录;都不传则默认到\"我的文档\"。\n\n权限要求: 对源文档有\"阅读\"权限,且对目标文件夹有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -268920,22 +267590,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制文件/文档到指定位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" + "source": "cobra_help", + "value": "复制文件/文档到指定位置" }, "use_when": { "candidates": [ @@ -268981,6 +267651,12 @@ "source": "cobra_usage", "value": "目标文件夹 nodeId" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -268996,16 +267672,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -269050,7 +267732,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -269065,6 +267748,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -269080,22 +267769,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -269106,9 +267807,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -269140,7 +267841,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -269155,6 +267857,12 @@ "source": "cobra_usage", "value": "目标知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。" + }, { "precedence": "default", "selected": false, @@ -269170,16 +267878,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -269224,7 +267938,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。", + "property": "workspaceId", "required": false, "type": "string" } @@ -269235,7 +267950,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "将指定节点复制到目标文件夹", + "title": "复制文件/文档到指定位置", "use_when": [ "需要将文档空间中的文档或文件复制到指定文件夹或知识库时" ] @@ -269266,11 +267981,8 @@ "cli_name": "mkdir", "cli_path": "drive mkdir", "confirmation": "not_required", - "description": "在钉盘中创建一个新文件夹\r\n最简用法:只传 name,文件夹会创建在当前用户「我的文件」的根目录下。\r\n如果想创建在某个子文件夹里,传 parentId(从 list_files 或 create_folder 的返回值中获取)。\r\n创建成功后返回 fileId,可直接用于后续操作(如在该文件夹下继续创建子文件夹或上传文件)。", + "description": "创建文件夹", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -269369,44 +268081,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉盘中创建一个新文件夹\r\n最简用法:只传 name,文件夹会创建在当前用户「我的文件」的根目录下。\r\n如果想创建在某个子文件夹里,传 parentId(从 list_files 或 create_folder 的返回值中获取)。\r\n创建成功后返回 fileId,可直接用于后续操作(如在该文件夹下继续创建子文件夹或上传文件)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文件夹" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉盘中创建一个新文件夹\r\n最简用法:只传 name,文件夹会创建在当前用户「我的文件」的根目录下。\r\n如果想创建在某个子文件夹里,传 parentId(从 list_files 或 create_folder 的返回值中获取)。\r\n创建成功后返回 fileId,可直接用于后续操作(如在该文件夹下继续创建子文件夹或上传文件)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉盘中创建一个新文件夹\r\n最简用法:只传 name,文件夹会创建在当前用户「我的文件」的根目录下。\r\n如果想创建在某个子文件夹里,传 parentId(从 list_files 或 create_folder 的返回值中获取)。\r\n创建成功后返回 fileId,可直接用于后续操作(如在该文件夹下继续创建子文件夹或上传文件)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建文件夹" }, "effect": { "candidates": [ @@ -269553,21 +268243,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建文件夹" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建文件夹" }, "use_when": { @@ -269614,6 +268304,12 @@ "source": "cobra_usage", "value": "父节点 ID (dentryUuid),不传则在空间根目录下创建 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "父节点 ID(dentryUuid 格式)。不传则在空间根目录下创建" + }, { "precedence": "default", "selected": false, @@ -269629,16 +268325,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "parentId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "parentId" }, "required": { "candidates": [ @@ -269683,7 +268385,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "父节点 ID(dentryUuid 格式)。不传则在空间根目录下创建", + "property": "parentId", "required": false, "type": "string" }, @@ -269915,9 +268618,6 @@ "confirmation": "not_required", "description": "为指定源节点创建快捷方式,并放置到目标文件夹或知识库。\n\n通过 --node 指定源节点。--folder 和 --workspace 均为可选;都不传时由服务端选择默认位置。\n若同时指定,--folder 是目标文件夹,--workspace 用于指定其所属知识库。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -269944,7 +268644,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -269952,7 +268652,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -269996,7 +268696,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" @@ -270004,51 +268704,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "为指定源节点创建快捷方式,并放置到目标文件夹或知识库。\n\n通过 --node 指定源节点。--folder 和 --workspace 均为可选;都不传时由服务端选择默认位置。\n若同时指定,--folder 是目标文件夹,--workspace 用于指定其所属知识库。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "为指定源节点创建快捷方式,并放置到目标文件夹或知识库。\n\n通过 --node 指定源节点。--folder 和 --workspace 均为可选;都不传时由服务端选择默认位置。\n若同时指定,--folder 是目标文件夹,--workspace 用于指定其所属知识库。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -270056,7 +268734,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -270084,7 +268762,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "non_idempotent" @@ -270092,7 +268770,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "non_idempotent" }, @@ -270100,39 +268778,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -270140,7 +268818,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -270155,14 +268833,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -270178,7 +268849,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" @@ -270186,20 +268857,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "为节点创建快捷方式" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "为节点创建快捷方式" @@ -270227,8 +268898,8 @@ }, "has_parameters": true, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "create_shortcut", "parameter_count": 3, @@ -270545,7 +269216,7 @@ "cli_name": "delete", "cli_path": "drive delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将钉盘中的文件或文件夹移入回收站。\n\n注意: 这是一个危险操作,文件将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n--node 对应 drive list 返回的 fileId 字段(即 dentryUuid)。\n\n权限要求: 对文档有\"管理\"权限。", "display": "钉盘文件管理", "effect": "destructive", "effect_source": "agent-hint", @@ -270652,22 +269323,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将钉盘中的文件或文件夹移入回收站。\n\n注意: 这是一个危险操作,文件将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n--node 对应 drive list 返回的 fileId 字段(即 dentryUuid)。\n\n权限要求: 对文档有\"管理\"权限。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" + "source": "cobra_help", + "value": "将钉盘中的文件或文件夹移入回收站。\n\n注意: 这是一个危险操作,文件将被移入回收站。执行前需要确认,或传入 --yes 跳过确认。\n--node 对应 drive list 返回的 fileId 字段(即 dentryUuid)。\n\n权限要求: 对文档有\"管理\"权限。" }, "effect": { "candidates": [ @@ -270830,22 +269501,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除文件/文件夹到回收站" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除节点" + "source": "cobra_help", + "value": "删除文件/文件夹到回收站" }, "use_when": { "candidates": [ @@ -270891,6 +269562,12 @@ "source": "cobra_usage", "value": "文件/文件夹 ID (dentryUuid),即 drive list 返回的 fileId (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。" + }, { "precedence": "default", "selected": false, @@ -270906,22 +269583,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -270932,9 +269621,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -270966,7 +269655,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。", + "property": "nodeId", "required": true, "type": "string" } @@ -270977,7 +269667,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除节点", + "title": "删除文件/文件夹到回收站", "use_when": [ "需要将钉盘中的文件或文件夹移入回收站时" ] @@ -271009,7 +269699,7 @@ "cli_name": "download", "cli_path": "drive download", "confirmation": "not_required", - "description": "获取钉盘普通文件的下载链接。调用钉盘文件下载接口,返回 OSS 预签名下载链接,链接有效期 15 分钟", + "description": "下载钉盘中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。", "display": "钉盘文件管理", "dry_run": { "preview_kind": "plan" @@ -271112,22 +269802,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉盘普通文件的下载链接。调用钉盘文件下载接口,返回 OSS 预签名下载链接,链接有效期 15 分钟" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载钉盘中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉盘普通文件的下载链接。调用钉盘文件下载接口,返回 OSS 预签名下载链接,链接有效期 15 分钟" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉盘普通文件的下载链接。调用钉盘文件下载接口,返回 OSS 预签名下载链接,链接有效期 15 分钟" + "source": "cobra_help", + "value": "下载钉盘中的文件到本地(两步下载流程)。\n\n流程:\n 1. 获取下载 URL 和签名请求头 (download_file)\n 2. HTTP GET 下载文件二进制内容到本地\n\n--output 指定本地保存路径,可以是文件路径或目录。\n如果指定目录,文件名从下载 URL 中自动推断。" }, "dry_run": { "candidates": [ @@ -271296,22 +269986,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "下载文件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载钉盘文件到本地" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "下载文件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "下载文件" + "source": "cobra_help", + "value": "下载钉盘文件到本地" }, "use_when": { "candidates": [ @@ -271357,6 +270047,12 @@ "source": "cobra_usage", "value": "文件 ID (dentryUuid) (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "文件 ID(dentryUuid 格式)" + }, { "precedence": "default", "selected": false, @@ -271372,22 +270068,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fileId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "fileId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -271398,9 +270106,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -271432,7 +270140,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "文件 ID(dentryUuid 格式)", + "property": "fileId", "required": true, "type": "string" }, @@ -271462,16 +270171,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local output path", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "output" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "output" + "review_reason": "local output path", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -271522,7 +270239,6 @@ "value": "string" } }, - "property": "output", "required": true, "type": "string" }, @@ -271624,7 +270340,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "下载文件", + "title": "下载钉盘文件到本地", "use_when": [ "需要下载钉盘或文档空间文件到本地时" ] @@ -271654,7 +270370,7 @@ "cli_name": "info", "cli_path": "drive info", "confirmation": "not_required", - "description": "获取钉盘中指定节点(文件或文件夹)的元数据信息,包括文件名、类型、状态、路径、创建时间、文件大小等", + "description": "获取钉盘文件/文件夹的元数据信息。\n\n如果目标文件属于钉钉文档(在线文档/表格/脑图等),会自动跟进调用\n钉钉文档接口获取更准确的文档信息(如真实文档名称),并合并输出。", "display": "钉盘文件管理", "effect": "read", "effect_source": "command-verb", @@ -271753,22 +270469,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉盘中指定节点(文件或文件夹)的元数据信息,包括文件名、类型、状态、路径、创建时间、文件大小等" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉盘文件/文件夹的元数据信息。\n\n如果目标文件属于钉钉文档(在线文档/表格/脑图等),会自动跟进调用\n钉钉文档接口获取更准确的文档信息(如真实文档名称),并合并输出。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉盘中指定节点(文件或文件夹)的元数据信息,包括文件名、类型、状态、路径、创建时间、文件大小等" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉盘中指定节点(文件或文件夹)的元数据信息,包括文件名、类型、状态、路径、创建时间、文件大小等" + "source": "cobra_help", + "value": "获取钉盘文件/文件夹的元数据信息。\n\n如果目标文件属于钉钉文档(在线文档/表格/脑图等),会自动跟进调用\n钉钉文档接口获取更准确的文档信息(如真实文档名称),并合并输出。" }, "effect": { "candidates": [ @@ -271913,21 +270629,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取文件元数据信息" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取文件元数据信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取文件元数据信息" }, "use_when": { @@ -271974,6 +270690,12 @@ "source": "cobra_usage", "value": "节点 ID (dentryUuid) (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "节点 ID(dentryUuid 格式),统一标识文件和文件夹" + }, { "precedence": "default", "selected": false, @@ -271989,22 +270711,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fileId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "fileId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -272015,9 +270749,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -272049,7 +270783,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "节点 ID(dentryUuid 格式),统一标识文件和文件夹", + "property": "fileId", "required": true, "type": "string" }, @@ -272177,9 +270912,6 @@ "confirmation": "not_required", "description": "获取指定节点的统计数据,包括阅读人数、阅读次数、编辑次数、评论数、点赞数、预览次数和下载次数等。\n\n不同文件类型返回的统计维度可能不同。--node 支持节点 ID 或文档 URL。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -272206,7 +270938,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -272214,7 +270946,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -272271,39 +271003,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取指定节点的统计数据,包括阅读人数、阅读次数、编辑次数、评论数、点赞数、预览次数和下载次数等。\n\n不同文件类型返回的统计维度可能不同。--node 支持节点 ID 或文档 URL。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取指定节点的统计数据,包括阅读人数、阅读次数、编辑次数、评论数、点赞数、预览次数和下载次数等。\n\n不同文件类型返回的统计维度可能不同。--node 支持节点 ID 或文档 URL。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -272356,39 +271066,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -272396,7 +271106,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -272408,13 +271118,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -272440,13 +271143,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取节点统计信息" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取节点统计信息" @@ -272474,8 +271177,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "get_node_stats", "parameter_count": 1, @@ -272613,11 +271316,8 @@ "cli_name": "upload-info", "cli_path": "drive upload-info", "confirmation": "not_required", - "description": "文件上传流程:\r\nStep 1:调用本接口获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用commit_upload 提交文件,传入本接口返回的 uploadId 与对应的 fileName、fileSize 完成文件上传", + "description": "获取文件上传信息", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -272716,44 +271416,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "文件上传流程:\r\nStep 1:调用本接口获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用commit_upload 提交文件,传入本接口返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文件上传信息" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "文件上传流程:\r\nStep 1:调用本接口获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用commit_upload 提交文件,传入本接口返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "文件上传流程:\r\nStep 1:调用本接口获取预签名的 OSS 上传 URL\r\nStep 2:使用 Step 1 返回的 URL 将文件 PUT 到 OSS\r\nStep 3:调用commit_upload 提交文件,传入本接口返回的 uploadId 与对应的 fileName、fileSize 完成文件上传" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取文件上传信息" }, "effect": { "candidates": [ @@ -272900,22 +271578,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_upload_info" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文件上传信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_upload_info" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_upload_info" + "source": "cobra_help", + "value": "获取文件上传信息" }, "use_when": { "candidates": [ @@ -273209,6 +271887,12 @@ "source": "cobra_usage", "value": "父节点 ID (dentryUuid),不传则上传到空间根目录 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "父节点 ID(dentryUuid 格式)。不传则上传到空间根目录。" + }, { "precedence": "default", "selected": false, @@ -273224,16 +271908,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "parentId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "parentId" }, "required": { "candidates": [ @@ -273278,7 +271968,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "父节点 ID(dentryUuid 格式)。不传则上传到空间根目录。", + "property": "parentId", "required": false, "type": "string" }, @@ -273471,7 +272162,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_upload_info", + "title": "获取文件上传信息", "use_when": [ "需要获取文件上传信息时" ] @@ -273503,11 +272194,8 @@ "cli_name": "list", "cli_path": "drive list", "confirmation": "not_required", - "description": "列出钉盘指定文件夹下的文件和文件夹,支持分页和排序\r\n最简用法:不传任何参数,列出默认空间根目录下的内容。\r\n如果想列出某个子文件夹的内容,传 parentId(从 create_folder 或 list_files 返回值中获取)。\r\n使用 nextToken 游标翻页:首次不传,后续翻页传上一次返回的 nextToken;nextToken 为 null 表示没有更多数据。", + "description": "列出文件和文件夹。根据参数自动路由到钉盘或文档空间。\n\n路由规则:\n 默认(无 --workspace) → 列出钉盘「我的文件」\n --space-id \u003c纯数字\u003e → 列出钉盘指定空间\n --workspace \u003c加密string/URL\u003e → 列出文档空间/知识库文件(等同于原 list-docs)\n --folder \u003cnodeId\u003e → 列出指定文件夹下的子节点", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -273606,44 +272294,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出钉盘指定文件夹下的文件和文件夹,支持分页和排序\r\n最简用法:不传任何参数,列出默认空间根目录下的内容。\r\n如果想列出某个子文件夹的内容,传 parentId(从 create_folder 或 list_files 返回值中获取)。\r\n使用 nextToken 游标翻页:首次不传,后续翻页传上一次返回的 nextToken;nextToken 为 null 表示没有更多数据。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出文件和文件夹。根据参数自动路由到钉盘或文档空间。\n\n路由规则:\n 默认(无 --workspace) → 列出钉盘「我的文件」\n --space-id \u003c纯数字\u003e → 列出钉盘指定空间\n --workspace \u003c加密string/URL\u003e → 列出文档空间/知识库文件(等同于原 list-docs)\n --folder \u003cnodeId\u003e → 列出指定文件夹下的子节点" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出钉盘指定文件夹下的文件和文件夹,支持分页和排序\r\n最简用法:不传任何参数,列出默认空间根目录下的内容。\r\n如果想列出某个子文件夹的内容,传 parentId(从 create_folder 或 list_files 返回值中获取)。\r\n使用 nextToken 游标翻页:首次不传,后续翻页传上一次返回的 nextToken;nextToken 为 null 表示没有更多数据。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出钉盘指定文件夹下的文件和文件夹,支持分页和排序\r\n最简用法:不传任何参数,列出默认空间根目录下的内容。\r\n如果想列出某个子文件夹的内容,传 parentId(从 create_folder 或 list_files 返回值中获取)。\r\n使用 nextToken 游标翻页:首次不传,后续翻页传上一次返回的 nextToken;nextToken 为 null 表示没有更多数据。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出文件和文件夹。根据参数自动路由到钉盘或文档空间。\n\n路由规则:\n 默认(无 --workspace) → 列出钉盘「我的文件」\n --space-id \u003c纯数字\u003e → 列出钉盘指定空间\n --workspace \u003c加密string/URL\u003e → 列出文档空间/知识库文件(等同于原 list-docs)\n --folder \u003cnodeId\u003e → 列出指定文件夹下的子节点" }, "effect": { "candidates": [ @@ -273702,7 +272368,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -273715,18 +272381,40 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface." }, "interface_ref": { "candidates": [ { - "precedence": "imported", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ + { + "precedence": "imported", + "selected": false, "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "drive", - "rpc_name": "list_files" - } + "value": "drive.list_files" }, { "precedence": "mcp_fallback", @@ -273735,13 +272423,11 @@ "value": "drive.list_files" } ], - "precedence": "imported", - "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "drive", - "rpc_name": "list_files" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -273790,22 +272476,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取文件/文件夹列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取文件/文件夹列表(统一入口)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取文件/文件夹列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取文件/文件夹列表" + "source": "cobra_help", + "value": "获取文件/文件夹列表(统一入口)" }, "use_when": { "candidates": [ @@ -273830,11 +272516,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "drive", - "rpc_name": "list_files" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "list_files", @@ -273866,16 +272549,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "composite route maps to nextToken for drive.list_files or pageToken for doc.list_nodes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "composite route maps to nextToken for drive.list_files or pageToken for doc.list_nodes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -273920,7 +272611,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -273950,16 +272640,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "composite route maps to parentId for drive.list_files or folderId for doc.list_nodes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "review_reason": "composite route maps to parentId for drive.list_files or folderId for doc.list_nodes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274004,7 +272702,6 @@ "value": "string" } }, - "property": "folder", "required": false, "type": "string" }, @@ -274035,16 +272732,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "composite route maps to maxResults for drive.list_files or pageSize for doc.list_nodes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "composite route maps to maxResults for drive.list_files or pageSize for doc.list_nodes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274095,7 +272800,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -274110,12 +272814,6 @@ "source": "cobra_usage", "value": "排序方向: asc|desc,默认 desc (可选,仅钉盘)" }, - { - "precedence": "mcp_metadata", - "selected": false, - "source": "mcp_metadata", - "value": "排序方向。asc(升序)/ desc(降序),默认 desc" - }, { "precedence": "default", "selected": false, @@ -274131,16 +272829,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "order" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "order" + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274191,8 +272897,6 @@ "value": "string" } }, - "interface_description": "排序方向。asc(升序)/ desc(降序),默认 desc", - "property": "order", "required": false, "type": "string" }, @@ -274207,12 +272911,6 @@ "source": "cobra_usage", "value": "排序字段: createTime|modifyTime|name (可选,仅钉盘)" }, - { - "precedence": "mcp_metadata", - "selected": false, - "source": "mcp_metadata", - "value": "排序字段。可选值:createTime(创建时间)、modifyTime(修改时间)、name(名称)" - }, { "precedence": "default", "selected": false, @@ -274228,16 +272926,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "orderBy" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "orderBy" + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274282,8 +272988,6 @@ "value": "string" } }, - "interface_description": "排序字段。可选值:createTime(创建时间)、modifyTime(修改时间)、name(名称)", - "property": "orderBy", "required": false, "type": "string" }, @@ -274298,12 +273002,6 @@ "source": "cobra_usage", "value": "钉盘空间 ID (纯数字),不传则使用「我的文件」(可选)" }, - { - "precedence": "mcp_metadata", - "selected": false, - "source": "mcp_metadata", - "value": "空间 ID。绝大多数情况下不需要传,后端自动使用当前用户「我的文件」对应的 spaceId" - }, { "precedence": "default", "selected": false, @@ -274319,16 +273017,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "drive-branch-only route input on a composite drive/doc command; no singular interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "spaceId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "spaceId" + "review_reason": "drive-branch-only route input on a composite drive/doc command; no singular interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274373,8 +273079,6 @@ "value": "string" } }, - "interface_description": "空间 ID。绝大多数情况下不需要传,后端自动使用当前用户「我的文件」对应的 spaceId", - "property": "spaceId", "required": false, "type": "string" }, @@ -274404,16 +273108,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "thumbnail" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "thumbnail" + "review_reason": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274458,7 +273170,6 @@ "value": "boolean" } }, - "property": "thumbnail", "required": false, "type": "boolean" }, @@ -274488,16 +273199,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "selects the doc.list_nodes branch of the composite drive/doc command", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "review_reason": "selects the doc.list_nodes branch of the composite drive/doc command", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -274542,7 +273261,6 @@ "value": "string" } }, - "property": "workspace", "required": false, "type": "string" } @@ -274553,7 +273271,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取文件/文件夹列表", + "title": "获取文件/文件夹列表(统一入口)", "use_when": [ "需要按目录浏览钉盘或文档空间文件时" ] @@ -274582,11 +273300,8 @@ "cli_name": "list", "cli_path": "drive permission list", "confirmation": "not_required", - "description": "查询知识库节点当前的成员权限列表。", + "description": "查询文档空间节点的协作者列表。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -274685,44 +273400,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询知识库节点当前的成员权限列表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询文档空间节点的协作者列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询知识库节点当前的成员权限列表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询知识库节点当前的成员权限列表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询文档空间节点的协作者列表。" }, "effect": { "candidates": [ @@ -274871,22 +273564,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询节点成员列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询协作者列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询节点成员列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询节点成员列表" + "source": "cobra_help", + "value": "查询协作者列表" }, "use_when": { "candidates": [ @@ -274933,6 +273626,12 @@ "source": "cobra_usage", "value": "按角色过滤: OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。" + }, { "precedence": "default", "selected": false, @@ -274945,19 +273644,45 @@ "source": "cobra_usage", "value": "按角色过滤: OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "filterRoleIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterRole" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterRole" + "source": "versioned_parameter_binding", + "value": "filterRoleIds" }, "required": { "candidates": [ @@ -275002,7 +273727,9 @@ "value": "string" } }, - "property": "filterRole", + "interface_description": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。", + "interface_type": "array", + "property": "filterRoleIds", "required": false, "type": "string" }, @@ -275018,6 +273745,12 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。" + }, { "precedence": "default", "selected": false, @@ -275030,19 +273763,45 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -275093,7 +273852,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。", + "interface_type": "number", + "property": "maxResults", "required": false, "type": "integer" }, @@ -275108,6 +273869,12 @@ "source": "cobra_usage", "value": "目标节点 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId。" + }, { "precedence": "default", "selected": false, @@ -275123,22 +273890,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -275149,9 +273928,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -275183,7 +273962,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId。", + "property": "nodeId", "required": true, "type": "string" }, @@ -275198,6 +273978,12 @@ "source": "cobra_usage", "value": "知识库 ID (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -275213,16 +273999,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -275267,7 +274059,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -275278,7 +274071,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询节点成员列表", + "title": "查询协作者列表", "use_when": [ "需要查询文档空间节点的协作者列表时" ] @@ -275306,11 +274099,8 @@ "cli_name": "list-spaces", "cli_path": "drive list-spaces", "confirmation": "not_required", - "description": "获取当前用户可访问的空间列表。\r\n最简用法:不传任何参数,返回所有企业空间。\r\n空间类型筛选:通过 spaceType 参数可以筛选返回的空间类型:\r\norgSpace(或 不传):返回企业空间列表\r\nmySpace:返回用户的\"我的文件\"个人空间\r\n支持游标分页,使用 nextToken 进行翻页(仅企业空间支持分页)。\r\n返回结果说明:\r\n当 spaceType 为 orgSpace ,返回企业团队空间列表\r\n当 spaceType 为 mySpace 时,返回单个\"我的文件\"空间\r\n如果 nextToken 不为空,表示还有更多空间可以查询(仅企业空间)", + "description": "⚠️ 此命令已迁移到 wiki space list,请使用:\n dws wiki space list --type orgSpace # 企业空间\n dws wiki space list --type mySpace # 我的文件\n\n列出当前用户可访问的钉盘空间,返回 spaceId、spaceName、rootFolderId 等信息。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -275408,44 +274198,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户可访问的空间列表。\r\n最简用法:不传任何参数,返回所有企业空间。\r\n空间类型筛选:通过 spaceType 参数可以筛选返回的空间类型:\r\norgSpace(或 不传):返回企业空间列表\r\nmySpace:返回用户的\"我的文件\"个人空间\r\n支持游标分页,使用 nextToken 进行翻页(仅企业空间支持分页)。\r\n返回结果说明:\r\n当 spaceType 为 orgSpace ,返回企业团队空间列表\r\n当 spaceType 为 mySpace 时,返回单个\"我的文件\"空间\r\n如果 nextToken 不为空,表示还有更多空间可以查询(仅企业空间)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "⚠️ 此命令已迁移到 wiki space list,请使用:\n dws wiki space list --type orgSpace # 企业空间\n dws wiki space list --type mySpace # 我的文件\n\n列出当前用户可访问的钉盘空间,返回 spaceId、spaceName、rootFolderId 等信息。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户可访问的空间列表。\r\n最简用法:不传任何参数,返回所有企业空间。\r\n空间类型筛选:通过 spaceType 参数可以筛选返回的空间类型:\r\norgSpace(或 不传):返回企业空间列表\r\nmySpace:返回用户的\"我的文件\"个人空间\r\n支持游标分页,使用 nextToken 进行翻页(仅企业空间支持分页)。\r\n返回结果说明:\r\n当 spaceType 为 orgSpace ,返回企业团队空间列表\r\n当 spaceType 为 mySpace 时,返回单个\"我的文件\"空间\r\n如果 nextToken 不为空,表示还有更多空间可以查询(仅企业空间)" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户可访问的空间列表。\r\n最简用法:不传任何参数,返回所有企业空间。\r\n空间类型筛选:通过 spaceType 参数可以筛选返回的空间类型:\r\norgSpace(或 不传):返回企业空间列表\r\nmySpace:返回用户的\"我的文件\"个人空间\r\n支持游标分页,使用 nextToken 进行翻页(仅企业空间支持分页)。\r\n返回结果说明:\r\n当 spaceType 为 orgSpace ,返回企业团队空间列表\r\n当 spaceType 为 mySpace 时,返回单个\"我的文件\"空间\r\n如果 nextToken 不为空,表示还有更多空间可以查询(仅企业空间)" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "⚠️ 此命令已迁移到 wiki space list,请使用:\n dws wiki space list --type orgSpace # 企业空间\n dws wiki space list --type mySpace # 我的文件\n\n列出当前用户可访问的钉盘空间,返回 spaceId、spaceName、rootFolderId 等信息。" }, "effect": { "candidates": [ @@ -275584,22 +274352,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_spaces" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉盘空间列表 (deprecated → dws wiki space list --type orgSpace/mySpace)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_spaces" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_spaces" + "source": "cobra_help", + "value": "获取钉盘空间列表 (deprecated → dws wiki space list --type orgSpace/mySpace)" }, "use_when": { "candidates": [ @@ -275645,6 +274413,12 @@ "source": "cobra_usage", "value": "分页游标,仅企业空间支持分页 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标。首次请求不传,后续请求传上一次返回的 nextToken。当 nextToken 为 null 时,表示已获取所有空间。仅 spaceType 为 orgSpace 时有效" + }, { "precedence": "default", "selected": false, @@ -275660,16 +274434,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -275714,7 +274494,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标。首次请求不传,后续请求传上一次返回的 nextToken。当 nextToken 为 null 时,表示已获取所有空间。仅 spaceType 为 orgSpace 时有效", + "property": "nextToken", "required": false, "type": "string" }, @@ -275730,6 +274511,12 @@ "source": "cobra_usage", "value": "每页返回数量 (默认 20,最大 50),仅 spaceType 为 orgSpace 时有效" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回数量,默认 20,最大 50。建议根据实际需求调整,较大的值可以减少请求次数,但会增加单次响应的数据量。仅 spaceType 为 orgSpace 时有效" + }, { "precedence": "default", "selected": false, @@ -275745,16 +274532,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -275805,7 +274598,8 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回数量,默认 20,最大 50。建议根据实际需求调整,较大的值可以减少请求次数,但会增加单次响应的数据量。仅 spaceType 为 orgSpace 时有效", + "property": "maxResults", "required": false, "type": "integer" }, @@ -275913,7 +274707,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_spaces", + "title": "获取钉盘空间列表 (deprecated → dws wiki space list --type orgSpace/mySpace)", "use_when": [ "兼容场景下需要枚举钉盘空间时" ] @@ -275941,11 +274735,8 @@ "cli_name": "move", "cli_path": "drive move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", + "description": "将文档空间中的文档或文件移动到指定文件夹或知识库。移动后原位置不再存在。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -276044,44 +274835,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将文档空间中的文档或文件移动到指定文件夹或知识库。移动后原位置不再存在。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将文档空间中的文档或文件移动到指定文件夹或知识库。移动后原位置不再存在。\n--folder 指定目标文件夹 nodeId,--workspace 指定目标知识库 ID。\n\n权限要求: 对源文档有\"管理\"权限,且对目标文件夹有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -276230,22 +274999,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移动节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动文件/文档到指定位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移动节点" + "source": "cobra_help", + "value": "移动文件/文档到指定位置" }, "use_when": { "candidates": [ @@ -276291,6 +275060,12 @@ "source": "cobra_usage", "value": "目标文件夹 nodeId" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -276306,16 +275081,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -276360,7 +275141,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -276375,6 +275157,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -276390,22 +275178,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -276416,9 +275216,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -276450,7 +275250,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -276465,6 +275266,12 @@ "source": "cobra_usage", "value": "目标知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。" + }, { "precedence": "default", "selected": false, @@ -276480,16 +275287,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -276534,7 +275347,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -276545,7 +275359,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "移动节点", + "title": "移动文件/文档到指定位置", "use_when": [ "需要将文档空间中的文档或文件移动到指定文件夹或知识库时" ] @@ -276575,11 +275389,8 @@ "cli_name": "remove", "cli_path": "drive permission remove", "confirmation": "user_required", - "description": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", + "description": "从文档空间节点移除协作成员的权限。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -276686,44 +275497,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "从文档空间节点移除协作成员的权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "从知识库节点移除指定企业用户的权限(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除成员在节点上的权限,移除后相关用户将无法通过该节点的直接授权访问内容(若有父节点继承权限则仍可通过继承权限访问)。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "从文档空间节点移除协作成员的权限。" }, "effect": { "candidates": [ @@ -276888,22 +275677,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移除节点成员权限" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除协作者权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移除节点成员权限" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移除节点成员权限" + "source": "cobra_help", + "value": "移除协作者权限" }, "use_when": { "candidates": [ @@ -276950,6 +275739,12 @@ "source": "cobra_usage", "value": "目标节点 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。" + }, { "precedence": "default", "selected": false, @@ -276965,22 +275760,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -276991,9 +275798,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -277025,7 +275832,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId(文档、文件夹或文件),可通过 list_nodes 工具获取。", + "property": "nodeId", "required": true, "type": "string" }, @@ -277040,6 +275848,12 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移除权限的用户 userId 列表(钉钉 staffId / 外部 userId 格式),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户权限,故入参直接以扁平的 userId 列表呈现。" + }, { "precedence": "default", "selected": false, @@ -277052,25 +275866,57 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -277081,9 +275927,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -277115,7 +275961,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要移除权限的用户 userId 列表(钉钉 staffId / 外部 userId 格式),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户权限,故入参直接以扁平的 userId 列表呈现。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -277130,6 +275978,12 @@ "source": "cobra_usage", "value": "知识库 ID (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -277145,16 +275999,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -277199,7 +276059,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -277210,7 +276071,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "移除节点成员权限", + "title": "移除协作者权限", "use_when": [ "需要从文档空间节点移除协作成员的权限时" ] @@ -277239,11 +276100,8 @@ "cli_name": "update", "cli_path": "drive permission update", "confirmation": "not_required", - "description": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。", + "description": "更新文档空间节点已有协作者的权限角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -277341,44 +276199,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新文档空间节点已有协作者的权限角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改企业用户在知识库节点上的角色(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量调整成员角色,同一成员在同一节点只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 若成员的角色来自父节点的权限继承(PASS_ON 模式),且继承的角色高于目标角色,接口会拒绝操作。\r\n- **权限要求(业务规则)**:操作者必须在该节点上具备「可编辑(EDITOR)」及以上角色(OWNER / MANAGER / EDITOR)。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。\r\n- 入参直接采用扁平的 `userIds: List\u003cString\u003e`,每个元素为钉钉 staffId(外部 userId 格式,由钉钉开放平台体系下颁发)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新文档空间节点已有协作者的权限角色。\n\n支持的角色 (--role): MANAGER / EDITOR / DOWNLOADER / READER" }, "effect": { "candidates": [ @@ -277525,22 +276361,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "变更节点成员角色" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新协作者权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "变更节点成员角色" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "变更节点成员角色" + "source": "cobra_help", + "value": "更新协作者权限" }, "use_when": { "candidates": [ @@ -277587,6 +276423,12 @@ "source": "cobra_usage", "value": "目标节点 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标节点的 nodeId。" + }, { "precedence": "default", "selected": false, @@ -277602,22 +276444,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -277628,9 +276482,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -277662,7 +276516,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标节点的 nodeId。", + "property": "nodeId", "required": true, "type": "string" }, @@ -277677,6 +276532,12 @@ "source": "cobra_usage", "value": "新角色: MANAGER / EDITOR / DOWNLOADER / READER (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -277692,22 +276553,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -277718,9 +276591,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -277752,7 +276625,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -277767,6 +276641,12 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -277779,25 +276659,57 @@ "source": "cobra_usage", "value": "用户 userId 列表,逗号分隔 (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -277808,9 +276720,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -277842,7 +276754,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -277857,6 +276771,12 @@ "source": "cobra_usage", "value": "知识库 ID (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -277872,16 +276792,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -277926,7 +276852,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,选填。仅用于辅助构造返回的 docUrl,业务实际依赖 nodeId 定位节点;支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": false, "type": "string" } @@ -277937,7 +276864,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "变更节点成员角色", + "title": "更新协作者权限", "use_when": [ "需要更新文档空间节点已有协作者的权限角色时" ] @@ -277949,6 +276876,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish get", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -277964,9 +276892,6 @@ "confirmation": "not_required", "description": "查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -277992,15 +276917,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -278062,39 +276989,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询文件当前是否处于互联网公开发布状态,以及公开发布的权限设置。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -278158,45 +277063,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -278244,13 +277153,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查询文件公开发布状态" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查询文件公开发布状态" @@ -278279,8 +277188,8 @@ "group": "publish", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "publish_get", "parameter_count": 1, @@ -278311,16 +277220,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.publish_get has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: drive.publish_get has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -278371,7 +277288,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" } @@ -278394,6 +277310,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish set", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" @@ -278436,15 +277353,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -278487,7 +277406,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -278507,20 +277426,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 将文件设置为互联网公开发布。公开后任何人通过链接即可访问,无需登录钉钉。\n操作者需要是该文件的管理员或拥有者。执行前需要确认,或传入 --yes 跳过确认。\n\n公开权限 (--permission): READER(仅可查看) / DOWNLOADER(可查看和下载,默认) / EDITOR(可编辑)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 将文件设置为互联网公开发布。公开后任何人通过链接即可访问,无需登录钉钉。\n操作者需要是该文件的管理员或拥有者。执行前需要确认,或传入 --yes 跳过确认。\n\n公开权限 (--permission): READER(仅可查看) / DOWNLOADER(可查看和下载,默认) / EDITOR(可编辑)" @@ -278529,7 +277448,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -278549,7 +277468,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -278579,7 +277498,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -278599,52 +277518,56 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -278658,7 +277581,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -278680,7 +277603,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -278700,20 +277623,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 设置文件为互联网公开" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 设置文件为互联网公开" @@ -278742,8 +277665,8 @@ "group": "publish", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "publish_set", "parameter_count": 2, @@ -278774,16 +277697,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -278834,7 +277765,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -278864,16 +277794,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --permission is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "permission" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "permission" + "review_reason": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --permission is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -278924,7 +277862,6 @@ "value": "string" } }, - "property": "permission", "required": false, "type": "string" } @@ -278947,6 +277884,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive publish unset", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" @@ -278988,15 +277926,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -279039,7 +277979,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -279059,20 +277999,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 关闭文件的互联网公开发布。关闭后外部用户将无法再通过链接访问。执行前需要确认,或传入 --yes 跳过确认。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 关闭文件的互联网公开发布。关闭后外部用户将无法再通过链接访问。执行前需要确认,或传入 --yes 跳过确认。" @@ -279081,7 +278021,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -279101,7 +278041,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -279129,7 +278069,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -279149,52 +278089,56 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -279208,7 +278152,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -279230,7 +278174,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -279250,20 +278194,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 关闭文件互联网公开" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 关闭文件互联网公开" @@ -279292,8 +278236,8 @@ "group": "publish", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "publish_unset", "parameter_count": 1, @@ -279324,16 +278268,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.publish_unset has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: drive.publish_unset has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -279384,7 +278336,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" } @@ -279407,6 +278358,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recent", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -279422,9 +278374,6 @@ "confirmation": "not_required", "description": "获取当前用户最近访问或编辑过的文档列表。\n\n支持按文档类型、操作类型、创建人、所属组织过滤。所有过滤条件均为可选,不传则不过滤。\n\n操作类型 (--operate-type):\n 0 最近访问(含打开+编辑)(默认)\n 1 最近编辑\n 不传默认仅返回最近访问(0)\n\n创建人类型 (--creator-type):\n 0 全部 (默认)\n 1 我创建的\n 2 他人创建的", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -279451,15 +278400,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -279515,39 +278466,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取当前用户最近访问或编辑过的文档列表。\n\n支持按文档类型、操作类型、创建人、所属组织过滤。所有过滤条件均为可选,不传则不过滤。\n\n操作类型 (--operate-type):\n 0 最近访问(含打开+编辑)(默认)\n 1 最近编辑\n 不传默认仅返回最近访问(0)\n\n创建人类型 (--creator-type):\n 0 全部 (默认)\n 1 我创建的\n 2 他人创建的" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取当前用户最近访问或编辑过的文档列表。\n\n支持按文档类型、操作类型、创建人、所属组织过滤。所有过滤条件均为可选,不传则不过滤。\n\n操作类型 (--operate-type):\n 0 最近访问(含打开+编辑)(默认)\n 1 最近编辑\n 不传默认仅返回最近访问(0)\n\n创建人类型 (--creator-type):\n 0 全部 (默认)\n 1 我创建的\n 2 他人创建的" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -279601,45 +278530,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -279681,13 +278614,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取最近访问/编辑的文档列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取最近访问/编辑的文档列表" @@ -279715,8 +278648,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "recent", "parameter_count": 6, @@ -279747,16 +278680,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --creator-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "creatorType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "creatorType" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --creator-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -279801,7 +278742,6 @@ "value": "integer" } }, - "property": "creatorType", "required": false, "type": "integer" }, @@ -279831,16 +278771,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -279885,7 +278833,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -279915,16 +278862,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --file-types is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fileTypes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fileTypes" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --file-types is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -279969,7 +278924,6 @@ "value": "array" } }, - "property": "fileTypes", "required": false, "type": "array" }, @@ -279999,16 +278953,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280059,7 +279021,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -280089,16 +279050,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --operate-type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "operateType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "operateType" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --operate-type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280149,7 +279118,6 @@ "value": "array" } }, - "property": "operateType", "required": false, "type": "array" }, @@ -280179,16 +279147,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --org-ids is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "orgIds" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "orgIds" + "review_reason": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --org-ids is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280233,7 +279209,6 @@ "value": "array" } }, - "property": "orgIds", "required": false, "type": "array" } @@ -280256,6 +279231,7 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recycle list", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -280271,9 +279247,6 @@ "confirmation": "not_required", "description": "查看回收站文件列表", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -280300,15 +279273,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -280370,39 +279345,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看回收站文件列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看回收站文件列表" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -280468,45 +279421,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -280554,13 +279511,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "查看回收站文件列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "查看回收站文件列表" @@ -280589,8 +279546,8 @@ "group": "recycle", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "recycle_list", "parameter_count": 3, @@ -280621,16 +279578,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280675,7 +279640,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -280705,16 +279669,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280765,7 +279737,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -280795,16 +279766,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --space-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "spaceId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "spaceId" + "review_reason": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --space-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -280849,7 +279828,6 @@ "value": "string" } }, - "property": "spaceId", "required": false, "type": "string" } @@ -280872,6 +279850,8 @@ "Skill:skills/mono/references/products/drive.md", "cobra-help:dws drive recycle restore", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/drive.md" ], @@ -280887,10 +279867,7 @@ "confirmation": "not_required", "description": "还原回收站中的文件", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws drive recycle restore --id RECYCLE_ITEM_ID --format json" @@ -280915,15 +279892,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -280965,66 +279944,60 @@ "confirmation": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "not_required" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "not_required" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "还原回收站中的文件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "还原回收站中的文件" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "read" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "read" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" }, "examples": { "candidates": [ @@ -281049,59 +280022,71 @@ "idempotency": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "idempotent" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "idempotent" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -281113,6 +280098,13 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true + }, { "precedence": "unreviewed_explicit", "selected": false, @@ -281129,27 +280121,35 @@ "risk": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "low" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "low" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "还原回收站中的文件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "还原回收站中的文件" @@ -281177,9 +280177,9 @@ }, "group": "recycle", "has_parameters": true, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "recycle_restore", "parameter_count": 1, @@ -281210,16 +280210,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: drive.recycle_restore has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "id" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "id" + "review_reason": "Reviewed unpinned adapter: drive.recycle_restore has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -281270,7 +280278,6 @@ "value": "string" } }, - "property": "id", "required": true, "type": "string" } @@ -281279,7 +280286,7 @@ "primary_cli_path": "drive recycle restore", "product_id": "drive", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", "title": "还原回收站中的文件", "use_when": [ @@ -281309,11 +280316,8 @@ "cli_name": "rename", "cli_path": "drive rename", "confirmation": "not_required", - "description": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限", + "description": "修改文档空间中文档或文件的名称。\n\n权限要求: 对文档有\"编辑\"权限。", "display": "钉盘文件管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -281411,44 +280415,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改文档空间中文档或文件的名称。\n\n权限要求: 对文档有\"编辑\"权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对指定节点进行重命名。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n\r\n权限要求:\r\n- 对目标节点有编辑权限" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "修改文档空间中文档或文件的名称。\n\n权限要求: 对文档有\"编辑\"权限。" }, "effect": { "candidates": [ @@ -281595,22 +280577,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对指定节点进行重命名" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重命名文件/文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对指定节点进行重命名" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对指定节点进行重命名" + "source": "cobra_help", + "value": "重命名文件/文档" }, "use_when": { "candidates": [ @@ -281656,6 +280638,12 @@ "source": "cobra_usage", "value": "新名称 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "重命名后的新名称,不能为空,长度不超过 255 个字符。" + }, { "precedence": "default", "selected": false, @@ -281671,22 +280659,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "newName" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "newName" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -281697,9 +280697,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -281731,7 +280731,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "重命名后的新名称,不能为空,长度不超过 255 个字符。", + "property": "newName", "required": true, "type": "string" }, @@ -281746,6 +280747,12 @@ "source": "cobra_usage", "value": "文档/文件 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要重命名的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。" + }, { "precedence": "default", "selected": false, @@ -281761,22 +280768,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -281787,9 +280806,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -281821,7 +280840,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要重命名的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。", + "property": "nodeId", "required": true, "type": "string" } @@ -281832,7 +280852,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "对指定节点进行重命名", + "title": "重命名文件/文档", "use_when": [ "需要修改文档空间中文档或文件的名称时" ] @@ -281862,7 +280882,7 @@ "cli_name": "search", "cli_path": "drive search", "confirmation": "not_required", - "description": "在钉盘空间中搜索文件、文件夹或空间,支持通过 searchTarget 参数切换搜索目标。\r\n\r\n支持三种搜索目标:\r\n1. searchTarget=all(默认):同时搜索文件和空间,返回混合结果\r\n2. searchTarget=file:搜索钉盘中的文件和文件夹,支持按文件类型、扩展名过滤\r\n3. searchTarget=space:搜索钉盘团队空间,返回匹配的空间列表,可快速定位目标空间\r\n\r\n推荐搜索流程:\r\n- 不确定目标 → searchTarget=all 获取所有匹配结果\r\n- 明确知道空间名 → searchTarget=space 定位空间 → list_files(parentId=rootFolderId) 遍历\r\n- 知道文件名/内容关键词 → searchTarget=file 直接搜索文件\r\n- 需要浏览指定空间的全部内容 → 使用 list_files(spaceId=xxx) 遍历,而非搜索\r\n\r\n搜索结果通过 type 字段区分:SPACE(空间)、FILE(普通文件)、FOLDER(文件夹)、ALIDOC(钉钉在线文档)。\r\n搜索范围为用户在当前组织内有权限访问的所有钉盘文件(我的文件+团队文件)。\r\n\r\n重要提示:搜索结果按相关性排序,第一页结果最相关。如果第一页未找到目标,建议优先调整搜索条件(更精确的关键词、添加 fileTypes/extensions 过滤、缩小时间范围等),而不是反复翻页。", + "description": "全局搜索文件,默认同时搜索钉盘和文档空间,合并返回结果。\n\n搜索范围 (--target):\n all (默认)同时搜钉盘文件与文档空间,聚合返回\n file 只搜钉盘文件/文件夹,支持 --file-types / --extensions\n space 只搜钉盘团队空间\n\n如果需要在某个知识库内搜索,请使用 dws wiki node search --workspace \u003cworkspaceId\u003e。\n\n结果中 source 字段区分来源:drive / doc。\n提示:结果按相关性排序,首页未命中时优先调整关键词 / 过滤条件,而非反复翻页。", "display": "钉盘文件管理", "effect": "read", "effect_source": "command-verb", @@ -281962,22 +280982,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉盘空间中搜索文件、文件夹或空间,支持通过 searchTarget 参数切换搜索目标。\r\n\r\n支持三种搜索目标:\r\n1. searchTarget=all(默认):同时搜索文件和空间,返回混合结果\r\n2. searchTarget=file:搜索钉盘中的文件和文件夹,支持按文件类型、扩展名过滤\r\n3. searchTarget=space:搜索钉盘团队空间,返回匹配的空间列表,可快速定位目标空间\r\n\r\n推荐搜索流程:\r\n- 不确定目标 → searchTarget=all 获取所有匹配结果\r\n- 明确知道空间名 → searchTarget=space 定位空间 → list_files(parentId=rootFolderId) 遍历\r\n- 知道文件名/内容关键词 → searchTarget=file 直接搜索文件\r\n- 需要浏览指定空间的全部内容 → 使用 list_files(spaceId=xxx) 遍历,而非搜索\r\n\r\n搜索结果通过 type 字段区分:SPACE(空间)、FILE(普通文件)、FOLDER(文件夹)、ALIDOC(钉钉在线文档)。\r\n搜索范围为用户在当前组织内有权限访问的所有钉盘文件(我的文件+团队文件)。\r\n\r\n重要提示:搜索结果按相关性排序,第一页结果最相关。如果第一页未找到目标,建议优先调整搜索条件(更精确的关键词、添加 fileTypes/extensions 过滤、缩小时间范围等),而不是反复翻页。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "全局搜索文件,默认同时搜索钉盘和文档空间,合并返回结果。\n\n搜索范围 (--target):\n all (默认)同时搜钉盘文件与文档空间,聚合返回\n file 只搜钉盘文件/文件夹,支持 --file-types / --extensions\n space 只搜钉盘团队空间\n\n如果需要在某个知识库内搜索,请使用 dws wiki node search --workspace \u003cworkspaceId\u003e。\n\n结果中 source 字段区分来源:drive / doc。\n提示:结果按相关性排序,首页未命中时优先调整关键词 / 过滤条件,而非反复翻页。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉盘空间中搜索文件、文件夹或空间,支持通过 searchTarget 参数切换搜索目标。\r\n\r\n支持三种搜索目标:\r\n1. searchTarget=all(默认):同时搜索文件和空间,返回混合结果\r\n2. searchTarget=file:搜索钉盘中的文件和文件夹,支持按文件类型、扩展名过滤\r\n3. searchTarget=space:搜索钉盘团队空间,返回匹配的空间列表,可快速定位目标空间\r\n\r\n推荐搜索流程:\r\n- 不确定目标 → searchTarget=all 获取所有匹配结果\r\n- 明确知道空间名 → searchTarget=space 定位空间 → list_files(parentId=rootFolderId) 遍历\r\n- 知道文件名/内容关键词 → searchTarget=file 直接搜索文件\r\n- 需要浏览指定空间的全部内容 → 使用 list_files(spaceId=xxx) 遍历,而非搜索\r\n\r\n搜索结果通过 type 字段区分:SPACE(空间)、FILE(普通文件)、FOLDER(文件夹)、ALIDOC(钉钉在线文档)。\r\n搜索范围为用户在当前组织内有权限访问的所有钉盘文件(我的文件+团队文件)。\r\n\r\n重要提示:搜索结果按相关性排序,第一页结果最相关。如果第一页未找到目标,建议优先调整搜索条件(更精确的关键词、添加 fileTypes/extensions 过滤、缩小时间范围等),而不是反复翻页。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉盘空间中搜索文件、文件夹或空间,支持通过 searchTarget 参数切换搜索目标。\r\n\r\n支持三种搜索目标:\r\n1. searchTarget=all(默认):同时搜索文件和空间,返回混合结果\r\n2. searchTarget=file:搜索钉盘中的文件和文件夹,支持按文件类型、扩展名过滤\r\n3. searchTarget=space:搜索钉盘团队空间,返回匹配的空间列表,可快速定位目标空间\r\n\r\n推荐搜索流程:\r\n- 不确定目标 → searchTarget=all 获取所有匹配结果\r\n- 明确知道空间名 → searchTarget=space 定位空间 → list_files(parentId=rootFolderId) 遍历\r\n- 知道文件名/内容关键词 → searchTarget=file 直接搜索文件\r\n- 需要浏览指定空间的全部内容 → 使用 list_files(spaceId=xxx) 遍历,而非搜索\r\n\r\n搜索结果通过 type 字段区分:SPACE(空间)、FILE(普通文件)、FOLDER(文件夹)、ALIDOC(钉钉在线文档)。\r\n搜索范围为用户在当前组织内有权限访问的所有钉盘文件(我的文件+团队文件)。\r\n\r\n重要提示:搜索结果按相关性排序,第一页结果最相关。如果第一页未找到目标,建议优先调整搜索条件(更精确的关键词、添加 fileTypes/extensions 过滤、缩小时间范围等),而不是反复翻页。" + "source": "cobra_help", + "value": "全局搜索文件,默认同时搜索钉盘和文档空间,合并返回结果。\n\n搜索范围 (--target):\n all (默认)同时搜钉盘文件与文档空间,聚合返回\n file 只搜钉盘文件/文件夹,支持 --file-types / --extensions\n space 只搜钉盘团队空间\n\n如果需要在某个知识库内搜索,请使用 dws wiki node search --workspace \u003cworkspaceId\u003e。\n\n结果中 source 字段区分来源:drive / doc。\n提示:结果按相关性排序,首页未命中时优先调整关键词 / 过滤条件,而非反复翻页。" }, "effect": { "candidates": [ @@ -282118,22 +281138,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "钉盘文件搜索" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索文件(聚合钉盘+文档空间)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "钉盘文件搜索" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "钉盘文件搜索" + "source": "cobra_help", + "value": "搜索文件(聚合钉盘+文档空间)" }, "use_when": { "candidates": [ @@ -282179,6 +281199,12 @@ "source": "cobra_usage", "value": "创建时间起始 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建时间范围的起始时间(毫秒时间戳,含)。仅返回在此时间之后创建的结果。" + }, { "precedence": "default", "selected": false, @@ -282191,19 +281217,45 @@ "source": "cobra_usage", "value": "创建时间起始 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createdTimeFrom" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "createdFrom" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "createdFrom" + "source": "versioned_parameter_binding", + "value": "createdTimeFrom" }, "required": { "candidates": [ @@ -282248,7 +281300,9 @@ "value": "integer" } }, - "property": "createdFrom", + "interface_description": "创建时间范围的起始时间(毫秒时间戳,含)。仅返回在此时间之后创建的结果。", + "interface_type": "number", + "property": "createdTimeFrom", "required": false, "type": "integer" }, @@ -282263,6 +281317,12 @@ "source": "cobra_usage", "value": "创建时间截止 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建时间范围的截止时间(毫秒时间戳,含)。仅返回在此时间之前创建的结果。" + }, { "precedence": "default", "selected": false, @@ -282275,19 +281335,45 @@ "source": "cobra_usage", "value": "创建时间截止 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createdTimeTo" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "createdTo" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "createdTo" + "source": "versioned_parameter_binding", + "value": "createdTimeTo" }, "required": { "candidates": [ @@ -282332,7 +281418,9 @@ "value": "integer" } }, - "property": "createdTo", + "interface_description": "创建时间范围的截止时间(毫秒时间戳,含)。仅返回在此时间之前创建的结果。", + "interface_type": "number", + "property": "createdTimeTo", "required": false, "type": "integer" }, @@ -282347,6 +281435,12 @@ "source": "cobra_usage", "value": "按创建者用户 ID 过滤,逗号分隔" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按创建者过滤,传入用户 uid 列表(纯数字字符串)。仅返回由指定用户创建的结果。" + }, { "precedence": "default", "selected": false, @@ -282362,16 +281456,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "creatorUserIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "creatorUids" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "creatorUids" + "source": "versioned_parameter_binding", + "value": "creatorUserIds" }, "required": { "candidates": [ @@ -282416,7 +281516,8 @@ "value": "array" } }, - "property": "creatorUids", + "interface_description": "按创建者过滤,传入用户 uid 列表(纯数字字符串)。仅返回由指定用户创建的结果。", + "property": "creatorUserIds", "required": false, "type": "array" }, @@ -282431,6 +281532,12 @@ "source": "cobra_usage", "value": "分页游标,从上次返回的 nextCursor 获取 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次返回结果中获取 nextCursor。首次不传。" + }, { "precedence": "default", "selected": false, @@ -282446,16 +281553,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "pageToken" }, "required": { "candidates": [ @@ -282500,7 +281613,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次返回结果中获取 nextCursor。首次不传。", + "property": "pageToken", "required": false, "type": "string" }, @@ -282697,6 +281811,12 @@ "source": "cobra_usage", "value": "每页返回数量(默认 10,最大 30)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的结果数量,默认 10,最大 30。" + }, { "precedence": "default", "selected": false, @@ -282709,19 +281829,45 @@ "source": "cobra_usage", "value": "每页返回数量(默认 10,最大 30)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -282772,7 +281918,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的结果数量,默认 10,最大 30。", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -282787,6 +281935,12 @@ "source": "cobra_usage", "value": "修改时间起始 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改时间范围的起始时间(毫秒时间戳,含)。仅返回在此时间之后修改过的结果。" + }, { "precedence": "default", "selected": false, @@ -282799,19 +281953,45 @@ "source": "cobra_usage", "value": "修改时间起始 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "modifiedTimeFrom" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "modifiedFrom" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "modifiedFrom" + "source": "versioned_parameter_binding", + "value": "modifiedTimeFrom" }, "required": { "candidates": [ @@ -282856,7 +282036,9 @@ "value": "integer" } }, - "property": "modifiedFrom", + "interface_description": "修改时间范围的起始时间(毫秒时间戳,含)。仅返回在此时间之后修改过的结果。", + "interface_type": "number", + "property": "modifiedTimeFrom", "required": false, "type": "integer" }, @@ -282871,6 +282053,12 @@ "source": "cobra_usage", "value": "修改时间截止 (毫秒时间戳,含)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改时间范围的截止时间(毫秒时间戳,含)。仅返回在此时间之前修改过的结果。" + }, { "precedence": "default", "selected": false, @@ -282883,19 +282071,45 @@ "source": "cobra_usage", "value": "修改时间截止 (毫秒时间戳,含)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "modifiedTimeTo" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "modifiedTo" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "modifiedTo" + "source": "versioned_parameter_binding", + "value": "modifiedTimeTo" }, "required": { "candidates": [ @@ -282940,7 +282154,9 @@ "value": "integer" } }, - "property": "modifiedTo", + "interface_description": "修改时间范围的截止时间(毫秒时间戳,含)。仅返回在此时间之前修改过的结果。", + "interface_type": "number", + "property": "modifiedTimeTo", "required": false, "type": "integer" }, @@ -282955,6 +282171,12 @@ "source": "cobra_usage", "value": "搜索关键词 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词,必填。searchTarget=file 或 all 时匹配文件名和内容;searchTarget=space 时匹配空间名称。" + }, { "precedence": "default", "selected": false, @@ -282970,22 +282192,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -282996,9 +282230,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -283030,7 +282264,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "搜索关键词,必填。searchTarget=file 或 all 时匹配文件名和内容;searchTarget=space 时匹配空间名称。", + "property": "keyword", "required": true, "type": "string" }, @@ -283045,6 +282280,12 @@ "source": "cobra_usage", "value": "搜索范围: all(默认,聚合钉盘+文档空间) | file(仅钉盘文件) | space(仅钉盘空间) (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索目标类型,默认 all。可选值:file(文件和文件夹)、space(钉盘空间)、all(全部)。" + }, { "precedence": "default", "selected": false, @@ -283060,16 +282301,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "searchTarget" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "target" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "target" + "source": "versioned_parameter_binding", + "value": "searchTarget" }, "required": { "candidates": [ @@ -283120,7 +282367,8 @@ "value": "string" } }, - "property": "target", + "interface_description": "搜索目标类型,默认 all。可选值:file(文件和文件夹)、space(钉盘空间)、all(全部)。", + "property": "searchTarget", "required": false, "type": "string" } @@ -283131,7 +282379,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "钉盘文件搜索", + "title": "搜索文件(聚合钉盘+文档空间)", "use_when": [ "不知道文件位置,需要按名称或条件全局搜索时" ] @@ -283256,13 +282504,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "将本地文件上传(三步自动完成)。\n\n路由规则:\n 默认(无 --workspace) → 上传到钉盘(我的文件或指定空间)\n --workspace \u003cid\u003e → 上传到文档空间/知识库\n\n流程:\n 1. 获取 OSS 上传凭证\n 2. HTTP PUT 上传文件二进制到 OSS\n 3. 提交文件入库\n\n上传位置: --folder 指定父目录,不传则上传到空间根目录。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "将本地文件上传(三步自动完成)。\n\n路由规则:\n 默认(无 --workspace) → 上传到钉盘(我的文件或指定空间)\n --workspace \u003cid\u003e → 上传到文档空间/知识库\n\n流程:\n 1. 获取 OSS 上传凭证\n 2. HTTP PUT 上传文件二进制到 OSS\n 3. 提交文件入库\n\n上传位置: --folder 指定父目录,不传则上传到空间根目录。" @@ -283435,13 +282683,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "上传本地文件到钉盘或文档空间" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "上传本地文件到钉盘或文档空间" @@ -284093,6 +283341,7 @@ "cobra-help:dws event consume --help", "internal/cli/schema_command_registry.json#event.consume", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" @@ -284143,16 +283392,16 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -284210,13 +283459,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "订阅 DingTalk 个人事件并将每条事件以 NDJSON 输出到 stdout。\n\n输出格式(事件流默认 ndjson;显式 -f json/pretty/raw 可覆盖;-f table/csv 对\n事件流无意义会 fallback 到 ndjson):\n ndjson (默认) 一行一对象,适合 jq / 管道处理\n json 每事件多行美化 JSON(必须配 --max-events 或 --duration)\n pretty 同 json,未来加颜色\n raw 仅 SDK 原始 payload,无外层封装\n compact 扁平化 + 解析嵌套 + 抽取语义字段(Agent 友好)\n\n默认使用当前 OAuth 登录态自动创建/复用个人订阅并建立个人长连接;非默认组织加\n--profile。连上后 stderr 打就绪行 [event] ready,等它出现再读 stdout;停机用\nSIGTERM、关 stdin,或先用 dws event stop \u003csubscribe_id\u003e --dry-run 预览、确认后加\n--yes,绝不要 kill -9。\n--event-types/--filter 只影响本地 bus → consume 这一段投递;普通个人事件消费\n通常不需要设置。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "订阅 DingTalk 个人事件并将每条事件以 NDJSON 输出到 stdout。\n\n输出格式(事件流默认 ndjson;显式 -f json/pretty/raw 可覆盖;-f table/csv 对\n事件流无意义会 fallback 到 ndjson):\n ndjson (默认) 一行一对象,适合 jq / 管道处理\n json 每事件多行美化 JSON(必须配 --max-events 或 --duration)\n pretty 同 json,未来加颜色\n raw 仅 SDK 原始 payload,无外层封装\n compact 扁平化 + 解析嵌套 + 抽取语义字段(Agent 友好)\n\n默认使用当前 OAuth 登录态自动创建/复用个人订阅并建立个人长连接;非默认组织加\n--profile。连上后 stderr 打就绪行 [event] ready,等它出现再读 stdout;停机用\nSIGTERM、关 stdin,或先用 dws event stop \u003csubscribe_id\u003e --dry-run 预览、确认后加\n--yes,绝不要 kill -9。\n--event-types/--filter 只影响本地 bus → consume 这一段投递;普通个人事件消费\n通常不需要设置。" @@ -284277,48 +283526,48 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -284363,13 +283612,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "订阅事件流并输出到 stdout" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "订阅事件流并输出到 stdout" @@ -284397,8 +283646,8 @@ }, "has_parameters": true, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow.", "is_alias": false, "name": "consume", "parameter_count": 26, @@ -286772,13 +286021,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出当前支持的个人事件目录。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出当前支持的个人事件目录。" @@ -286925,13 +286174,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出个人事件目录" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出个人事件目录" @@ -287435,13 +286684,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示事件 schema" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示事件 schema" @@ -287588,13 +286837,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示事件 schema" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示事件 schema" @@ -287746,6 +286995,7 @@ "cobra-help:dws event status --help", "internal/cli/schema_command_registry.json#event.status", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" @@ -287788,16 +287038,16 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -287861,13 +287111,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示当前用户个人事件订阅、personal bus 状态和本地 consume 进程。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示当前用户个人事件订阅、personal bus 状态和本地 consume 进程。" @@ -287940,48 +287190,48 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -288032,13 +287282,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示个人事件订阅和本地消费状态" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示个人事件订阅和本地消费状态" @@ -288066,8 +287316,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result.", "is_alias": false, "name": "status", "parameter_count": 6, @@ -288620,6 +287870,7 @@ "cobra-help:dws event stop --help", "internal/cli/schema_command_registry.json#event.stop", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/SKILL.md", "skills/mono/references/products/event.md" @@ -288679,16 +287930,16 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -288752,13 +288003,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消个人事件订阅并停止本地消费,清理对应本地消费状态,并尝试停止对应前台 consume。\n\n传 subscribe_id 时取消该个人订阅;传 --all 时取消当前身份下本地记录的全部个人订阅。\n取消后如果没有剩余本地个人订阅,会停止 personal bus。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消个人事件订阅并停止本地消费,清理对应本地消费状态,并尝试停止对应前台 consume。\n\n传 subscribe_id 时取消该个人订阅;传 --all 时取消当前身份下本地记录的全部个人订阅。\n取消后如果没有剩余本地个人订阅,会停止 personal bus。" @@ -288853,48 +288104,48 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 marks this tool as reviewed", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -288945,13 +288196,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消个人事件订阅并停止本地消费" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消个人事件订阅并停止本地消费" @@ -288979,8 +288230,8 @@ }, "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC", + "interface_mode": "composite", + "interface_reason": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow.", "is_alias": false, "name": "stop", "parameter_count": 3, @@ -289300,11 +288551,8 @@ "cli_name": "list", "cli_path": "live stream list", "confirmation": "not_required", - "description": "获取当前用户发起的直播列表,包含每场直播的基础信息与统计数据。返回字段包括:直播标题、封面图 URL、直播 ID、主播昵称、开始/结束时间戳、播放时长(毫秒)、观看量(UV)及直播状态(如已结束)。数据按分页返回,支持判断是否还有更多内容。适用于个人直播管理、历史记录查看等场景,仅展示当前用户有权限访问的直播内容。", + "description": "查看我的直播列表", "display": "直播列表 / 信息", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -289402,44 +288650,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户发起的直播列表,包含每场直播的基础信息与统计数据。返回字段包括:直播标题、封面图 URL、直播 ID、主播昵称、开始/结束时间戳、播放时长(毫秒)、观看量(UV)及直播状态(如已结束)。数据按分页返回,支持判断是否还有更多内容。适用于个人直播管理、历史记录查看等场景,仅展示当前用户有权限访问的直播内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看我的直播列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户发起的直播列表,包含每场直播的基础信息与统计数据。返回字段包括:直播标题、封面图 URL、直播 ID、主播昵称、开始/结束时间戳、播放时长(毫秒)、观看量(UV)及直播状态(如已结束)。数据按分页返回,支持判断是否还有更多内容。适用于个人直播管理、历史记录查看等场景,仅展示当前用户有权限访问的直播内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户发起的直播列表,包含每场直播的基础信息与统计数据。返回字段包括:直播标题、封面图 URL、直播 ID、主播昵称、开始/结束时间戳、播放时长(毫秒)、观看量(UV)及直播状态(如已结束)。数据按分页返回,支持判断是否还有更多内容。适用于个人直播管理、历史记录查看等场景,仅展示当前用户有权限访问的直播内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查看我的直播列表" }, "effect": { "candidates": [ @@ -289584,22 +288810,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户发起的直播列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看我的直播列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户发起的直播列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户发起的直播列表" + "source": "cobra_help", + "value": "查看我的直播列表" }, "use_when": { "candidates": [ @@ -289641,7 +288867,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取当前用户发起的直播列表", + "title": "查看我的直播列表", "use_when": [ "用户要查看自己的直播或直播列表时" ] @@ -289669,11 +288895,8 @@ "cli_name": "batch-delete", "cli_path": "mail message batch-delete", "confirmation": "user_required", - "description": "批量删除邮件", + "description": "批量删除指定邮件(移入已删除文件夹或永久删除)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -289779,44 +289002,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量删除邮件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量删除指定邮件(移入已删除文件夹或永久删除)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量删除邮件" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量删除邮件" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量删除指定邮件(移入已删除文件夹或永久删除)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -289971,21 +289172,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "批量删除邮件" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "批量删除邮件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "批量删除邮件" }, "use_when": { @@ -290284,11 +289485,8 @@ "cli_name": "batch-delete", "cli_path": "mail contact batch-delete", "confirmation": "user_required", - "description": "批量删除用户邮箱联系人", + "description": "批量删除指定的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -290394,44 +289592,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量删除用户邮箱联系人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量删除指定的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量删除用户邮箱联系人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量删除用户邮箱联系人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量删除指定的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -290586,22 +289762,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "batch_delete_user_mail_contacts" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量删除邮件联系人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "batch_delete_user_mail_contacts" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "batch_delete_user_mail_contacts" + "source": "cobra_help", + "value": "批量删除邮件联系人" }, "use_when": { "candidates": [ @@ -290871,7 +290047,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "batch_delete_user_mail_contacts", + "title": "批量删除邮件联系人", "use_when": [ "需要从自己的联系人列表移除多个已知 contactId 时" ] @@ -290898,11 +290074,8 @@ "cli_name": "batch-move", "cli_path": "mail message batch-move", "confirmation": "not_required", - "description": "批量移动邮件到指定文件夹", + "description": "将多封邮件批量移动到目标文件夹。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -291000,44 +290173,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量移动邮件到指定文件夹" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将多封邮件批量移动到目标文件夹。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量移动邮件到指定文件夹" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量移动邮件到指定文件夹" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将多封邮件批量移动到目标文件夹。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -291176,22 +290327,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量移动邮件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量移动邮件到指定文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量移动邮件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量移动邮件" + "source": "cobra_help", + "value": "批量移动邮件到指定文件夹" }, "use_when": { "candidates": [ @@ -291570,7 +290721,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "批量移动邮件", + "title": "批量移动邮件到指定文件夹", "use_when": [ "已知邮件 ID 列表和目标 folderId 时" ] @@ -291597,7 +290748,7 @@ "cli_name": "download", "cli_path": "mail attachment download", "confirmation": "not_required", - "description": "下载邮件附件", + "description": "下载指定邮件的某个附件到本地文件。\n\n流程说明:\n 1. 调用 create_download_session 获取下载链接(stream id)\n 2. 通过 HTTP GET 下载附件内容并保存到本地\n\n参数说明:\n --email 用户邮箱地址(必填)\n --message-id 邮件唯一标识(必填)\n --attachment-id 附件唯一标识,取自 attachment list 的 id 字段(必填)\n --name 保存到本地的文件名(必填,取自 attachment list 的 name 字段)\n --output 保存目录,默认为当前目录\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", "effect": "read", "effect_source": "command-verb", @@ -291696,22 +290847,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "下载邮件附件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载指定邮件的某个附件到本地文件。\n\n流程说明:\n 1. 调用 create_download_session 获取下载链接(stream id)\n 2. 通过 HTTP GET 下载附件内容并保存到本地\n\n参数说明:\n --email 用户邮箱地址(必填)\n --message-id 邮件唯一标识(必填)\n --attachment-id 附件唯一标识,取自 attachment list 的 id 字段(必填)\n --name 保存到本地的文件名(必填,取自 attachment list 的 name 字段)\n --output 保存目录,默认为当前目录\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "下载邮件附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "下载邮件附件" + "source": "cobra_help", + "value": "下载指定邮件的某个附件到本地文件。\n\n流程说明:\n 1. 调用 create_download_session 获取下载链接(stream id)\n 2. 通过 HTTP GET 下载附件内容并保存到本地\n\n参数说明:\n --email 用户邮箱地址(必填)\n --message-id 邮件唯一标识(必填)\n --attachment-id 附件唯一标识,取自 attachment list 的 id 字段(必填)\n --name 保存到本地的文件名(必填,取自 attachment list 的 name 字段)\n --output 保存目录,默认为当前目录\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -291850,22 +291001,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建附件下载会话" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "下载邮件附件到本地" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建附件下载会话" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建附件下载会话" + "source": "cobra_help", + "value": "下载邮件附件到本地" }, "use_when": { "candidates": [ @@ -292236,16 +291387,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local download filename", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "local download filename", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -292296,7 +291455,6 @@ "value": "string" } }, - "property": "name", "required": true, "type": "string" }, @@ -292327,16 +291485,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local output path", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "output" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "output" + "review_reason": "local output path", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -292387,7 +291553,6 @@ "value": "string" } }, - "property": "output", "required": false, "type": "string" } @@ -292398,7 +291563,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "创建附件下载会话", + "title": "下载邮件附件到本地", "use_when": [ "已知邮件 ID、附件 ID 和文件名,需要保存单个附件时" ] @@ -292425,11 +291590,8 @@ "cli_name": "create", "cli_path": "mail draft create", "confirmation": "not_required", - "description": "创建邮件草稿", + "description": "创建一封邮件草稿,保存到草稿箱(folderId:5)。支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿创建与附件上传,草稿保留在草稿箱(不发送)。\n\n返回字段:\n messageId 新建草稿的邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -292527,44 +291689,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建邮件草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一封邮件草稿,保存到草稿箱(folderId:5)。支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿创建与附件上传,草稿保留在草稿箱(不发送)。\n\n返回字段:\n messageId 新建草稿的邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建邮件草稿" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建邮件草稿" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一封邮件草稿,保存到草稿箱(folderId:5)。支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿创建与附件上传,草稿保留在草稿箱(不发送)。\n\n返回字段:\n messageId 新建草稿的邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -292703,22 +291843,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建邮件草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建草稿" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建邮件草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建邮件草稿" + "source": "cobra_help", + "value": "创建草稿" }, "use_when": { "candidates": [ @@ -292780,10 +291920,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -292792,10 +291933,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -292840,7 +291982,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -293188,10 +292329,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -293200,10 +292342,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -293248,7 +292391,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -293474,7 +292616,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建邮件草稿", + "title": "创建草稿", "use_when": [ "需要先保存收件人、主题、正文或附件供后续编辑时" ] @@ -293501,7 +292643,7 @@ "cli_name": "forward", "cli_path": "mail message forward", "confirmation": "not_required", - "description": "创建转发草稿", + "description": "将指定邮件转发给其他收件人。\n\n返回字段:\n messageId 新生成的转发邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", "effect": "write", "effect_source": "command-verb", @@ -293600,22 +292742,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建转发草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定邮件转发给其他收件人。\n\n返回字段:\n messageId 新生成的转发邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建转发草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建转发草稿" + "source": "cobra_help", + "value": "将指定邮件转发给其他收件人。\n\n返回字段:\n messageId 新生成的转发邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -293754,22 +292896,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建转发草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转发邮件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建转发草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建转发草稿" + "source": "cobra_help", + "value": "转发邮件" }, "use_when": { "candidates": [ @@ -293831,10 +292973,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -293843,10 +292986,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -293891,7 +293035,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -294230,10 +293373,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -294242,10 +293386,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -294290,7 +293435,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -294510,7 +293654,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建转发草稿", + "title": "转发邮件", "use_when": [ "已知原邮件 ID,需要编辑收件人或附言后再发送时" ] @@ -294539,11 +293683,8 @@ "cli_name": "create", "cli_path": "mail folder create", "confirmation": "not_required", - "description": "该工具支持在指定邮箱下创建邮件文件夹。可以创建顶层文件夹,也可以在指定父文件夹下创建子文件夹。创建成功后返回新文件夹的 ID 和元信息。", + "description": "在指定邮箱下创建邮件文件夹。\n\n不传 --folder 时创建顶层文件夹;传入 --folder 时在指定父文件夹下创建子文件夹。\n注意:--folder 需要填写父文件夹 ID,不是文件夹名称。父文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result.folder 创建成功后的文件夹信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -294641,44 +293782,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "该工具支持在指定邮箱下创建邮件文件夹。可以创建顶层文件夹,也可以在指定父文件夹下创建子文件夹。创建成功后返回新文件夹的 ID 和元信息。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定邮箱下创建邮件文件夹。\n\n不传 --folder 时创建顶层文件夹;传入 --folder 时在指定父文件夹下创建子文件夹。\n注意:--folder 需要填写父文件夹 ID,不是文件夹名称。父文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result.folder 创建成功后的文件夹信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "该工具支持在指定邮箱下创建邮件文件夹。可以创建顶层文件夹,也可以在指定父文件夹下创建子文件夹。创建成功后返回新文件夹的 ID 和元信息。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "该工具支持在指定邮箱下创建邮件文件夹。可以创建顶层文件夹,也可以在指定父文件夹下创建子文件夹。创建成功后返回新文件夹的 ID 和元信息。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定邮箱下创建邮件文件夹。\n\n不传 --folder 时创建顶层文件夹;传入 --folder 时在指定父文件夹下创建子文件夹。\n注意:--folder 需要填写父文件夹 ID,不是文件夹名称。父文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result.folder 创建成功后的文件夹信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -294823,21 +293942,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建邮件文件夹" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建邮件文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建邮件文件夹" }, "use_when": { @@ -295205,7 +294324,7 @@ "cli_name": "reply", "cli_path": "mail message reply", "confirmation": "not_required", - "description": "创建回复草稿", + "description": "回复指定邮件(仅回复发件人)。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", "effect": "write", "effect_source": "command-verb", @@ -295304,22 +294423,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建回复草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "回复指定邮件(仅回复发件人)。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建回复草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建回复草稿" + "source": "cobra_help", + "value": "回复指定邮件(仅回复发件人)。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -295458,22 +294577,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建回复草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "回复邮件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建回复草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建回复草稿" + "source": "cobra_help", + "value": "回复邮件" }, "use_when": { "candidates": [ @@ -295535,10 +294654,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -295547,10 +294667,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -295595,7 +294716,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -295934,10 +295054,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -295946,10 +295067,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -295994,7 +295116,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -296187,7 +295308,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建回复草稿", + "title": "回复邮件", "use_when": [ "已知原邮件 ID 并要回复发件人时" ] @@ -296214,7 +295335,7 @@ "cli_name": "reply-all", "cli_path": "mail message reply-all", "confirmation": "not_required", - "description": "创建回复全部草稿", + "description": "回复邮件给发件人及所有原始收件人。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", "effect": "write", "effect_source": "command-verb", @@ -296313,22 +295434,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建回复全部草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "回复邮件给发件人及所有原始收件人。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建回复全部草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建回复全部草稿" + "source": "cobra_help", + "value": "回复邮件给发件人及所有原始收件人。\n\n返回字段:\n messageId 新生成的回复邮件 ID\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -296467,22 +295588,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_replyall_draft" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "回复所有人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_replyall_draft" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_replyall_draft" + "source": "cobra_help", + "value": "回复所有人" }, "use_when": { "candidates": [ @@ -296544,10 +295665,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -296556,10 +295678,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -296604,7 +295727,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -296943,10 +296065,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -296955,10 +296078,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -297003,7 +296127,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -297223,7 +296346,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_replyall_draft", + "title": "回复所有人", "use_when": [ "已知原邮件 ID 且回复需要覆盖所有相关收件人时" ] @@ -297250,11 +296373,8 @@ "cli_name": "create", "cli_path": "mail contact create", "confirmation": "not_required", - "description": "创建用户邮箱联系人", + "description": "创建一个新的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -297352,44 +296472,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建用户邮箱联系人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个新的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建用户邮箱联系人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建用户邮箱联系人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一个新的邮件联系人。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -297528,22 +296626,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_user_mail_contact" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建邮件联系人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_user_mail_contact" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_user_mail_contact" + "source": "cobra_help", + "value": "创建邮件联系人" }, "use_when": { "candidates": [ @@ -298144,7 +297242,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_user_mail_contact", + "title": "创建邮件联系人", "use_when": [ "需要把一个邮件地址保存到自己的联系人列表时" ] @@ -298171,11 +297269,8 @@ "cli_name": "create", "cli_path": "mail template create", "confirmation": "not_required", - "description": "创建个人邮件模板", + "description": "创建一个新的邮件模板。\n\n返回字段:\n 模板创建结果\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -298273,44 +297368,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建个人邮件模板" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个新的邮件模板。\n\n返回字段:\n 模板创建结果\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建个人邮件模板" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建个人邮件模板" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一个新的邮件模板。\n\n返回字段:\n 模板创建结果\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -298449,22 +297522,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_user_message_template" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建邮件模板" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_user_message_template" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_user_message_template" + "source": "cobra_help", + "value": "创建邮件模板" }, "use_when": { "candidates": [ @@ -299349,7 +298422,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_user_message_template", + "title": "创建邮件模板", "use_when": [ "需要保存固定主题、正文或收件人供重复使用时" ] @@ -299379,11 +298452,8 @@ "cli_name": "delete", "cli_path": "mail folder delete", "confirmation": "user_required", - "description": "该工具支持删除指定邮箱下的邮件文件夹。需要传入要删除的文件夹 ID,文件夹 ID 可通过列出邮件文件夹获得。不要把文件夹名称当作 ID。", + "description": "删除指定邮箱下的邮件文件夹。\n\n注意:--id 需要填写要删除的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 删除结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -299489,44 +298559,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "该工具支持删除指定邮箱下的邮件文件夹。需要传入要删除的文件夹 ID,文件夹 ID 可通过列出邮件文件夹获得。不要把文件夹名称当作 ID。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定邮箱下的邮件文件夹。\n\n注意:--id 需要填写要删除的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 删除结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "该工具支持删除指定邮箱下的邮件文件夹。需要传入要删除的文件夹 ID,文件夹 ID 可通过列出邮件文件夹获得。不要把文件夹名称当作 ID。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "该工具支持删除指定邮箱下的邮件文件夹。需要传入要删除的文件夹 ID,文件夹 ID 可通过列出邮件文件夹获得。不要把文件夹名称当作 ID。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除指定邮箱下的邮件文件夹。\n\n注意:--id 需要填写要删除的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 删除结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -299687,21 +298735,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除邮件文件夹" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除邮件文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除邮件文件夹" }, "use_when": { @@ -299979,11 +299027,8 @@ "cli_name": "delete", "cli_path": "mail template delete", "confirmation": "user_required", - "description": "删除用户邮件模板", + "description": "根据模板 ID 删除指定邮件模板。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -300089,44 +299134,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除用户邮件模板" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据模板 ID 删除指定邮件模板。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除用户邮件模板" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除用户邮件模板" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据模板 ID 删除指定邮件模板。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -300281,22 +299304,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "delete_user_message_template" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除邮件模板" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "delete_user_message_template" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "delete_user_message_template" + "source": "cobra_help", + "value": "删除邮件模板" }, "use_when": { "candidates": [ @@ -300545,7 +299568,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "delete_user_message_template", + "title": "删除邮件模板", "use_when": [ "已知 templateId 且明确不再需要该模板时" ] @@ -300574,11 +299597,8 @@ "cli_name": "get", "cli_path": "mail message get", "confirmation": "not_required", - "description": "根据 messageId 获取邮件详情", + "description": "根据邮件 ID 获取邮件完整内容,包含正文。\n\n返回字段:\n message 邮件完整信息,包含主题、发件人、收件人、正文、附件等\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -300676,44 +299696,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据 messageId 获取邮件详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据邮件 ID 获取邮件完整内容,包含正文。\n\n返回字段:\n message 邮件完整信息,包含主题、发件人、收件人、正文、附件等\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据 messageId 获取邮件详情" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据 messageId 获取邮件详情" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据邮件 ID 获取邮件完整内容,包含正文。\n\n返回字段:\n message 邮件完整信息,包含主题、发件人、收件人、正文、附件等\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -300858,22 +299856,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据 messageId 获取邮件详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看邮件完整内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据 messageId 获取邮件详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据 messageId 获取邮件详情" + "source": "cobra_help", + "value": "查看邮件完整内容" }, "use_when": { "candidates": [ @@ -301128,7 +300126,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "根据 messageId 获取邮件详情", + "title": "查看邮件完整内容", "use_when": [ "搜索或列表已返回 messageId,需要打开邮件内容时" ] @@ -301156,11 +300154,8 @@ "cli_name": "get", "cli_path": "mail thread get", "confirmation": "not_required", - "description": "通过会话 ID 获取指定邮箱中的会话信息,默认仅返回会话基本信息,可通过 $select 参数指定需要额外返回的字段(如 $select=messages 返回会话内的邮件列表)", + "description": "根据会话 ID 获取会话(thread)详情。\n\n返回字段:\n id 会话唯一标识\n subject 会话主题\n summary 会话摘要信息\n lastModifiedDateTime 会话最后修改时间\n messageCount 会话邮件数量\n tags 会话 tag 信息\n senders 会话发件人列表(email / name)\n isRead 会话是否已读(全部已读/未读)\n priority 会话重要性,取会话内邮件最高优先级(PRY_HIGH / PRY_NORMAL)\n flag 会话标识,取会话内最近邮件的标识(FLAG_NONE / FLAG_REPLY / FLAG_FORWARD)\n hasAttachments 会话是否包含附件(不含 inline 资源)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -301258,44 +300253,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "通过会话 ID 获取指定邮箱中的会话信息,默认仅返回会话基本信息,可通过 $select 参数指定需要额外返回的字段(如 $select=messages 返回会话内的邮件列表)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据会话 ID 获取会话(thread)详情。\n\n返回字段:\n id 会话唯一标识\n subject 会话主题\n summary 会话摘要信息\n lastModifiedDateTime 会话最后修改时间\n messageCount 会话邮件数量\n tags 会话 tag 信息\n senders 会话发件人列表(email / name)\n isRead 会话是否已读(全部已读/未读)\n priority 会话重要性,取会话内邮件最高优先级(PRY_HIGH / PRY_NORMAL)\n flag 会话标识,取会话内最近邮件的标识(FLAG_NONE / FLAG_REPLY / FLAG_FORWARD)\n hasAttachments 会话是否包含附件(不含 inline 资源)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "通过会话 ID 获取指定邮箱中的会话信息,默认仅返回会话基本信息,可通过 $select 参数指定需要额外返回的字段(如 $select=messages 返回会话内的邮件列表)" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "通过会话 ID 获取指定邮箱中的会话信息,默认仅返回会话基本信息,可通过 $select 参数指定需要额外返回的字段(如 $select=messages 返回会话内的邮件列表)" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据会话 ID 获取会话(thread)详情。\n\n返回字段:\n id 会话唯一标识\n subject 会话主题\n summary 会话摘要信息\n lastModifiedDateTime 会话最后修改时间\n messageCount 会话邮件数量\n tags 会话 tag 信息\n senders 会话发件人列表(email / name)\n isRead 会话是否已读(全部已读/未读)\n priority 会话重要性,取会话内邮件最高优先级(PRY_HIGH / PRY_NORMAL)\n flag 会话标识,取会话内最近邮件的标识(FLAG_NONE / FLAG_REPLY / FLAG_FORWARD)\n hasAttachments 会话是否包含附件(不含 inline 资源)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -301440,22 +300413,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取会话信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取会话详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取会话信息" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取会话信息" + "source": "cobra_help", + "value": "获取会话详情" }, "use_when": { "candidates": [ @@ -301710,7 +300683,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取会话信息", + "title": "获取会话详情", "use_when": [ "已知 conversationId 并需要查看同一会话中的邮件上下文时" ] @@ -301737,11 +300710,8 @@ "cli_name": "get", "cli_path": "mail template get", "confirmation": "not_required", - "description": "获取用户邮件模板详情", + "description": "根据模板 ID 获取邮件模板的完整信息。\n\n返回字段:\n 模板完整信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -301839,44 +300809,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取用户邮件模板详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据模板 ID 获取邮件模板的完整信息。\n\n返回字段:\n 模板完整信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取用户邮件模板详情" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取用户邮件模板详情" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据模板 ID 获取邮件模板的完整信息。\n\n返回字段:\n 模板完整信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -302015,22 +300963,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_user_message_template" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取邮件模板详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_user_message_template" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_user_message_template" + "source": "cobra_help", + "value": "获取邮件模板详情" }, "use_when": { "candidates": [ @@ -302279,7 +301227,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_user_message_template", + "title": "获取邮件模板详情", "use_when": [ "已知 templateId 并需要查看主题、正文或收件人时" ] @@ -302306,9 +301254,6 @@ "confirmation": "not_required", "description": "列出指定文件夹中的邮件列表(默认为收件箱)。\n\n底层通过 KQL 查询 folderId 实现,返回邮件 ID 及元信息(不含正文)。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -302416,39 +301361,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出指定文件夹中的邮件列表(默认为收件箱)。\n\n底层通过 KQL 查询 folderId 实现,返回邮件 ID 及元信息(不含正文)。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出指定文件夹中的邮件列表(默认为收件箱)。\n\n底层通过 KQL 查询 folderId 实现,返回邮件 ID 及元信息(不含正文)。\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -302609,13 +301532,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "列出文件夹中的邮件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "列出文件夹中的邮件" @@ -303050,11 +301973,8 @@ "cli_name": "list", "cli_path": "mail folder list", "confirmation": "not_required", - "description": "该工具支持列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\r\n注意:该工具只会返回文件夹的 ID 和元信息(folderId为空则返回顶层文件夹,非空则返回指定父文件夹的子文件夹)", + "description": "列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\n不传 --folder 则返回顶层文件夹,传入则返回该文件夹的子文件夹列表。\n\n返回字段(folders 数组):\n id 文件夹唯一标识\n displayName 文件夹显示名称\n parentFolderId 父文件夹 ID\n childFolderCount 子文件夹数量\n totalItemCount 邮件总数\n unreadItemCount 未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -303152,44 +302072,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "该工具支持列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\r\n注意:该工具只会返回文件夹的 ID 和元信息(folderId为空则返回顶层文件夹,非空则返回指定父文件夹的子文件夹)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\n不传 --folder 则返回顶层文件夹,传入则返回该文件夹的子文件夹列表。\n\n返回字段(folders 数组):\n id 文件夹唯一标识\n displayName 文件夹显示名称\n parentFolderId 父文件夹 ID\n childFolderCount 子文件夹数量\n totalItemCount 邮件总数\n unreadItemCount 未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "该工具支持列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\r\n注意:该工具只会返回文件夹的 ID 和元信息(folderId为空则返回顶层文件夹,非空则返回指定父文件夹的子文件夹)" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "该工具支持列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\r\n注意:该工具只会返回文件夹的 ID 和元信息(folderId为空则返回顶层文件夹,非空则返回指定父文件夹的子文件夹)" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定邮箱的顶层文件夹或指定父文件夹下的所有子文件夹。\n不传 --folder 则返回顶层文件夹,传入则返回该文件夹的子文件夹列表。\n\n返回字段(folders 数组):\n id 文件夹唯一标识\n displayName 文件夹显示名称\n parentFolderId 父文件夹 ID\n childFolderCount 子文件夹数量\n totalItemCount 邮件总数\n unreadItemCount 未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -303334,22 +302232,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出邮件文件夹" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列举邮件文件夹" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出邮件文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出邮件文件夹" + "source": "cobra_help", + "value": "列举邮件文件夹" }, "use_when": { "candidates": [ @@ -303592,7 +302490,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出邮件文件夹", + "title": "列举邮件文件夹", "use_when": [ "需要取得 folderId 或浏览邮箱目录时" ] @@ -303619,11 +302517,8 @@ "cli_name": "list", "cli_path": "mail attachment list", "confirmation": "not_required", - "description": "列举邮件附件", + "description": "列出指定邮件的所有附件信息。\n\n返回字段(attachments 数组):\n id 附件唯一标识\n name 附件文件名\n contentType 附件 MIME 类型\n size 附件大小(字节)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -303721,44 +302616,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列举邮件附件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定邮件的所有附件信息。\n\n返回字段(attachments 数组):\n id 附件唯一标识\n name 附件文件名\n contentType 附件 MIME 类型\n size 附件大小(字节)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列举邮件附件" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列举邮件附件" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定邮件的所有附件信息。\n\n返回字段(attachments 数组):\n id 附件唯一标识\n name 附件文件名\n contentType 附件 MIME 类型\n size 附件大小(字节)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -303897,21 +302770,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "列举邮件附件" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "列举邮件附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "列举邮件附件" }, "use_when": { @@ -304195,11 +303068,8 @@ "cli_name": "list", "cli_path": "mail tag list", "confirmation": "not_required", - "description": "该工具支持列出指定邮箱下的所有邮件标签。只会返回标签 的 ID 和元信息(名称、父标签、邮件数量、未读数量等。", + "description": "列出指定邮箱下的所有邮件标签,返回标签的 ID 和元信息。\n\n返回字段(tags 数组):\n id 标签唯一标识\n name 标签显示名称\n parentId 父标签 ID\n totalItemCount 标签下邮件总数\n unreadItemCount 标签下未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -304297,44 +303167,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "该工具支持列出指定邮箱下的所有邮件标签。只会返回标签 的 ID 和元信息(名称、父标签、邮件数量、未读数量等。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定邮箱下的所有邮件标签,返回标签的 ID 和元信息。\n\n返回字段(tags 数组):\n id 标签唯一标识\n name 标签显示名称\n parentId 父标签 ID\n totalItemCount 标签下邮件总数\n unreadItemCount 标签下未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "该工具支持列出指定邮箱下的所有邮件标签。只会返回标签 的 ID 和元信息(名称、父标签、邮件数量、未读数量等。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "该工具支持列出指定邮箱下的所有邮件标签。只会返回标签 的 ID 和元信息(名称、父标签、邮件数量、未读数量等。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定邮箱下的所有邮件标签,返回标签的 ID 和元信息。\n\n返回字段(tags 数组):\n id 标签唯一标识\n name 标签显示名称\n parentId 父标签 ID\n totalItemCount 标签下邮件总数\n unreadItemCount 标签下未读邮件数量\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -304479,22 +303327,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出邮件标签" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列举邮件标签" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出邮件标签" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出邮件标签" + "source": "cobra_help", + "value": "列举邮件标签" }, "use_when": { "candidates": [ @@ -304640,7 +303488,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出邮件标签", + "title": "列举邮件标签", "use_when": [ "需要取得标签 ID 或查看现有标签时" ] @@ -304667,11 +303515,8 @@ "cli_name": "list", "cli_path": "mail contact list", "confirmation": "not_required", - "description": "列出用户邮箱联系人", + "description": "列出指定邮箱的所有邮件联系人。\n\n返回字段:\n 联系人列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -304769,44 +303614,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出用户邮箱联系人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定邮箱的所有邮件联系人。\n\n返回字段:\n 联系人列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出用户邮箱联系人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出用户邮箱联系人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定邮箱的所有邮件联系人。\n\n返回字段:\n 联系人列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -304945,22 +303768,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_user_mail_contacts" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列举邮件联系人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_user_mail_contacts" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_user_mail_contacts" + "source": "cobra_help", + "value": "列举邮件联系人" }, "use_when": { "candidates": [ @@ -305327,7 +304150,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_user_mail_contacts", + "title": "列举邮件联系人", "use_when": [ "需要浏览自己的联系人或取得 contactId 时" ] @@ -305355,11 +304178,8 @@ "cli_name": "list", "cli_path": "mail mailbox list", "confirmation": "not_required", - "description": "查询当前钉钉用户可以使用的 Email 地址列表。", + "description": "查询当前用户绑定的所有邮箱地址。\n\n返回字段:\n emailAccounts 邮箱列表,每条包含邮箱地址(email)、账号类型(type)、所属企业(orgName)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -305457,44 +304277,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前钉钉用户可以使用的 Email 地址列表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户绑定的所有邮箱地址。\n\n返回字段:\n emailAccounts 邮箱列表,每条包含邮箱地址(email)、账号类型(type)、所属企业(orgName)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前钉钉用户可以使用的 Email 地址列表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前钉钉用户可以使用的 Email 地址列表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户绑定的所有邮箱地址。\n\n返回字段:\n emailAccounts 邮箱列表,每条包含邮箱地址(email)、账号类型(type)、所属企业(orgName)\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -305639,22 +304437,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出可用邮箱地址" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询可用邮箱地址" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出可用邮箱地址" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出可用邮箱地址" + "source": "cobra_help", + "value": "查询可用邮箱地址" }, "use_when": { "candidates": [ @@ -305696,7 +304494,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出可用邮箱地址", + "title": "查询可用邮箱地址", "use_when": [ "需要选择当前用户企业邮箱或个人邮箱时" ] @@ -305723,11 +304521,8 @@ "cli_name": "list", "cli_path": "mail template list", "confirmation": "not_required", - "description": "列出用户邮件模板", + "description": "列出指定邮箱的所有邮件模板。\n\n返回字段:\n 模板列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -305825,44 +304620,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出用户邮件模板" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定邮箱的所有邮件模板。\n\n返回字段:\n 模板列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出用户邮件模板" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出用户邮件模板" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定邮箱的所有邮件模板。\n\n返回字段:\n 模板列表及分页信息\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -306001,22 +304774,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_user_message_templates" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列举邮件模板" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_user_message_templates" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_user_message_templates" + "source": "cobra_help", + "value": "列举邮件模板" }, "use_when": { "candidates": [ @@ -306383,7 +305156,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_user_message_templates", + "title": "列举邮件模板", "use_when": [ "需要浏览模板或取得 templateId 时" ] @@ -306412,11 +305185,8 @@ "cli_name": "search", "cli_path": "mail message search", "confirmation": "not_required", - "description": "使用类似 KQL 的查询表达式搜索邮件。\r\n该工具支持通过灵活的查询表达式、分页、排序和字段选择来搜索邮件。\r\n\r\n注意:该工具只会返回邮件的ID和元信息,不会返回完整的邮件正文内容", + "description": "使用类 KQL 查询表达式搜索邮件,仅返回邮件 ID 及元信息(不含正文)。\n\n支持的查询字段:\n date, size, tag, folderId, isRead, hasAttachments,\n subject, attachname, body, from, to\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n字段说明:\n date ISO8601 日期时间,支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: date\u003e2025-06-01T00:00:00Z\n size 邮件大小(字节),支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: size\u003e1024\n folderId 文件夹 ID(整数),必须用数字,不能用文件夹名称\n 示例: folderId:2\n isRead 是否已读,布尔值 true/false\n 示例: isRead:false\n hasAttachments 是否有附件,布尔值 true/false\n 示例: hasAttachments:true\n subject 邮件主题,含空格须加双引号\n 示例: subject:周报 subject:\"项目 进展\"\n body 邮件正文,含空格须加双引号\n 示例: body:会议纪要 body:\"Q1 总结\"\n attachname 附件文件名,含空格须加双引号\n 示例: attachname:report.pdf\n from 发件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: from:alice@company.com from:\"张 三\" from:\"alice\u003ca@b.com\u003e\"\n to 收件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: to:bob@company.com to:\"李 四\" to:\"alice\u003ca@b.com\u003e\"\n\n示例查询:\n date\u003e2025-01-01T00:00:00Z AND (NOT folderId:3) AND (NOT folderId:6)\n (from:\"alice\") OR (to:\"alice\u003ca@b.com\u003e\" AND folderId:1)\n subject:\"周报\" AND hasAttachments:true\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -306514,44 +305284,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "使用类似 KQL 的查询表达式搜索邮件。\r\n该工具支持通过灵活的查询表达式、分页、排序和字段选择来搜索邮件。\r\n\r\n注意:该工具只会返回邮件的ID和元信息,不会返回完整的邮件正文内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "使用类 KQL 查询表达式搜索邮件,仅返回邮件 ID 及元信息(不含正文)。\n\n支持的查询字段:\n date, size, tag, folderId, isRead, hasAttachments,\n subject, attachname, body, from, to\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n字段说明:\n date ISO8601 日期时间,支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: date\u003e2025-06-01T00:00:00Z\n size 邮件大小(字节),支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: size\u003e1024\n folderId 文件夹 ID(整数),必须用数字,不能用文件夹名称\n 示例: folderId:2\n isRead 是否已读,布尔值 true/false\n 示例: isRead:false\n hasAttachments 是否有附件,布尔值 true/false\n 示例: hasAttachments:true\n subject 邮件主题,含空格须加双引号\n 示例: subject:周报 subject:\"项目 进展\"\n body 邮件正文,含空格须加双引号\n 示例: body:会议纪要 body:\"Q1 总结\"\n attachname 附件文件名,含空格须加双引号\n 示例: attachname:report.pdf\n from 发件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: from:alice@company.com from:\"张 三\" from:\"alice\u003ca@b.com\u003e\"\n to 收件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: to:bob@company.com to:\"李 四\" to:\"alice\u003ca@b.com\u003e\"\n\n示例查询:\n date\u003e2025-01-01T00:00:00Z AND (NOT folderId:3) AND (NOT folderId:6)\n (from:\"alice\") OR (to:\"alice\u003ca@b.com\u003e\" AND folderId:1)\n subject:\"周报\" AND hasAttachments:true\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "使用类似 KQL 的查询表达式搜索邮件。\r\n该工具支持通过灵活的查询表达式、分页、排序和字段选择来搜索邮件。\r\n\r\n注意:该工具只会返回邮件的ID和元信息,不会返回完整的邮件正文内容" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "使用类似 KQL 的查询表达式搜索邮件。\r\n该工具支持通过灵活的查询表达式、分页、排序和字段选择来搜索邮件。\r\n\r\n注意:该工具只会返回邮件的ID和元信息,不会返回完整的邮件正文内容" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "使用类 KQL 查询表达式搜索邮件,仅返回邮件 ID 及元信息(不含正文)。\n\n支持的查询字段:\n date, size, tag, folderId, isRead, hasAttachments,\n subject, attachname, body, from, to\n\n常用文件夹 ID:1=已发送, 2=收件箱, 3=垃圾邮件, 5=草稿, 6=已删除\n\n字段说明:\n date ISO8601 日期时间,支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: date\u003e2025-06-01T00:00:00Z\n size 邮件大小(字节),支持 \u003e \u003c \u003e= \u003c= 比较运算符\n 示例: size\u003e1024\n folderId 文件夹 ID(整数),必须用数字,不能用文件夹名称\n 示例: folderId:2\n isRead 是否已读,布尔值 true/false\n 示例: isRead:false\n hasAttachments 是否有附件,布尔值 true/false\n 示例: hasAttachments:true\n subject 邮件主题,含空格须加双引号\n 示例: subject:周报 subject:\"项目 进展\"\n body 邮件正文,含空格须加双引号\n 示例: body:会议纪要 body:\"Q1 总结\"\n attachname 附件文件名,含空格须加双引号\n 示例: attachname:report.pdf\n from 发件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: from:alice@company.com from:\"张 三\" from:\"alice\u003ca@b.com\u003e\"\n to 收件人,支持纯邮件地址、纯名称、\"名称\u003c邮件地址\u003e\" 格式,含空格须加双引号\n 示例: to:bob@company.com to:\"李 四\" to:\"alice\u003ca@b.com\u003e\"\n\n示例查询:\n date\u003e2025-01-01T00:00:00Z AND (NOT folderId:3) AND (NOT folderId:6)\n (from:\"alice\") OR (to:\"alice\u003ca@b.com\u003e\" AND folderId:1)\n subject:\"周报\" AND hasAttachments:true\n\n返回字段:\n messages 邮件列表,每条包含邮件 ID 及元信息(不含正文)\n total 符合条件的总邮件数\n nextCursor 下一页游标,传入 --cursor 翻页;值为 \"$\" 表示已到达列表尾部\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -306696,22 +305444,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索邮件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索邮件 (KQL 语法)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索邮件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索邮件" + "source": "cobra_help", + "value": "搜索邮件 (KQL 语法)" }, "use_when": { "candidates": [ @@ -307161,7 +305909,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索邮件", + "title": "搜索邮件 (KQL 语法)", "use_when": [ "需要按主题、发件人、日期、附件或组合条件精确筛选时" ] @@ -307195,11 +305943,8 @@ ] ] }, - "description": "搜索账号", + "description": "按关键词或工号搜索邮箱用户,返回匹配的用户列表及分页游标。\n\n注意:仅企业邮箱(非 @dingtalk.com 个人邮箱)可使用此功能;\n使用个人邮箱(如 xxx@dingtalk.com)调用将因无权限而报错。\n\n搜索方式(二选一):\n --keyword 按姓名/关键词搜索(当未提供 --employee-no 时为必填)\n --employee-no 按工号精确搜索;提供工号时 keyword 不再必填\n\n返回字段:\n users 匹配的用户列表,每条包含用户 ID、邮箱地址、姓名、昵称、工号、职位、工作地\n nextCursor 下一页游标,传入 --cursor 翻页\n hasMore 是否还有更多数据\n\nuser 对象字段:\n id 用户 ID\n email 展示使用的邮件地址\n name 用户名(人名)\n nickname 用户昵称(或者花名)\n employeeNo 工号\n jobTitle 职位\n workLocation 工作地\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -307305,44 +306050,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索账号" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按关键词或工号搜索邮箱用户,返回匹配的用户列表及分页游标。\n\n注意:仅企业邮箱(非 @dingtalk.com 个人邮箱)可使用此功能;\n使用个人邮箱(如 xxx@dingtalk.com)调用将因无权限而报错。\n\n搜索方式(二选一):\n --keyword 按姓名/关键词搜索(当未提供 --employee-no 时为必填)\n --employee-no 按工号精确搜索;提供工号时 keyword 不再必填\n\n返回字段:\n users 匹配的用户列表,每条包含用户 ID、邮箱地址、姓名、昵称、工号、职位、工作地\n nextCursor 下一页游标,传入 --cursor 翻页\n hasMore 是否还有更多数据\n\nuser 对象字段:\n id 用户 ID\n email 展示使用的邮件地址\n name 用户名(人名)\n nickname 用户昵称(或者花名)\n employeeNo 工号\n jobTitle 职位\n workLocation 工作地\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索账号" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索账号" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按关键词或工号搜索邮箱用户,返回匹配的用户列表及分页游标。\n\n注意:仅企业邮箱(非 @dingtalk.com 个人邮箱)可使用此功能;\n使用个人邮箱(如 xxx@dingtalk.com)调用将因无权限而报错。\n\n搜索方式(二选一):\n --keyword 按姓名/关键词搜索(当未提供 --employee-no 时为必填)\n --employee-no 按工号精确搜索;提供工号时 keyword 不再必填\n\n返回字段:\n users 匹配的用户列表,每条包含用户 ID、邮箱地址、姓名、昵称、工号、职位、工作地\n nextCursor 下一页游标,传入 --cursor 翻页\n hasMore 是否还有更多数据\n\nuser 对象字段:\n id 用户 ID\n email 展示使用的邮件地址\n name 用户名(人名)\n nickname 用户昵称(或者花名)\n employeeNo 工号\n jobTitle 职位\n workLocation 工作地\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -307481,22 +306204,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索账号" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "搜索邮箱用户" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索账号" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索账号" + "source": "cobra_help", + "value": "搜索邮箱用户" }, "use_when": { "candidates": [ @@ -308061,7 +306784,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索账号", + "title": "搜索邮箱用户", "use_when": [ "需要查找他人的企业邮箱地址时" ] @@ -308088,11 +306811,8 @@ "cli_name": "send", "cli_path": "mail draft send", "confirmation": "not_required", - "description": "发送草稿箱中的邮件", + "description": "将草稿箱中已有的草稿发送出去。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -308190,44 +306910,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "发送草稿箱中的邮件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将草稿箱中已有的草稿发送出去。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "发送草稿箱中的邮件" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "发送草稿箱中的邮件" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将草稿箱中已有的草稿发送出去。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -308366,22 +307064,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "发送邮件草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "发送草稿" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "发送邮件草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "发送邮件草稿" + "source": "cobra_help", + "value": "发送草稿" }, "use_when": { "candidates": [ @@ -308642,7 +307340,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "发送邮件草稿", + "title": "发送草稿", "use_when": [ "已知草稿 messageId 且用户要求发送该草稿时" ] @@ -308671,11 +307369,8 @@ "cli_name": "send", "cli_path": "mail message send", "confirmation": "not_required", - "description": "使用指定的Email地址作为发件人发送一封邮件。", + "description": "发送一封邮件到指定收件人,支持添加普通附件和内联附件(如图片)。\n\n当指定 --attachment 或 --inline-attachment 时,自动执行以下流程:\n 1. 创建草稿\n 2. 为每个普通附件(isInline=false)创建上传会话并上传文件内容\n 3. 为每个内联附件(isInline=true,自动生成 contentId)创建上传会话并上传文件内容\n 4. 发送草稿\n\n内联附件说明:\n 使用 --inline-attachment 指定内联图片(支持 jpg/jpeg/png/gif/webp/bmp/svg),CLI 自动生成 contentId(格式:inline-{文件名}-{序号}@alimail.com)\n 在 --content 中使用占位符 [inline:文件名] 引用内联图片,CLI 自动将正文转为 HTML 并注入 \u003cimg\u003e 标签\n 若 content 中无对应占位符,内联图片会自动追加到正文末尾\n 注意:仅支持图片类型作为内联附件,视频、音频、PDF 等文件请改用 --attachment\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -308773,44 +307468,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "使用指定的Email地址作为发件人发送一封邮件。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "发送一封邮件到指定收件人,支持添加普通附件和内联附件(如图片)。\n\n当指定 --attachment 或 --inline-attachment 时,自动执行以下流程:\n 1. 创建草稿\n 2. 为每个普通附件(isInline=false)创建上传会话并上传文件内容\n 3. 为每个内联附件(isInline=true,自动生成 contentId)创建上传会话并上传文件内容\n 4. 发送草稿\n\n内联附件说明:\n 使用 --inline-attachment 指定内联图片(支持 jpg/jpeg/png/gif/webp/bmp/svg),CLI 自动生成 contentId(格式:inline-{文件名}-{序号}@alimail.com)\n 在 --content 中使用占位符 [inline:文件名] 引用内联图片,CLI 自动将正文转为 HTML 并注入 \u003cimg\u003e 标签\n 若 content 中无对应占位符,内联图片会自动追加到正文末尾\n 注意:仅支持图片类型作为内联附件,视频、音频、PDF 等文件请改用 --attachment\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "使用指定的Email地址作为发件人发送一封邮件。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "使用指定的Email地址作为发件人发送一封邮件。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "发送一封邮件到指定收件人,支持添加普通附件和内联附件(如图片)。\n\n当指定 --attachment 或 --inline-attachment 时,自动执行以下流程:\n 1. 创建草稿\n 2. 为每个普通附件(isInline=false)创建上传会话并上传文件内容\n 3. 为每个内联附件(isInline=true,自动生成 contentId)创建上传会话并上传文件内容\n 4. 发送草稿\n\n内联附件说明:\n 使用 --inline-attachment 指定内联图片(支持 jpg/jpeg/png/gif/webp/bmp/svg),CLI 自动生成 contentId(格式:inline-{文件名}-{序号}@alimail.com)\n 在 --content 中使用占位符 [inline:文件名] 引用内联图片,CLI 自动将正文转为 HTML 并注入 \u003cimg\u003e 标签\n 若 content 中无对应占位符,内联图片会自动追加到正文末尾\n 注意:仅支持图片类型作为内联附件,视频、音频、PDF 等文件请改用 --attachment\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -308955,21 +307628,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "发送邮件" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "发送邮件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "发送邮件" }, "use_when": { @@ -309032,10 +307705,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -309044,10 +307718,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -309092,7 +307767,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -309452,10 +308126,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -309464,10 +308139,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -309512,7 +308188,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -309783,11 +308458,8 @@ "cli_name": "update", "cli_path": "mail draft update", "confirmation": "not_required", - "description": "更新邮件草稿", + "description": "更新草稿箱中已有草稿的内容,支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿更新与附件上传,草稿保留在草稿箱(不发送)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -309885,44 +308557,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新邮件草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新草稿箱中已有草稿的内容,支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿更新与附件上传,草稿保留在草稿箱(不发送)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新邮件草稿" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新邮件草稿" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新草稿箱中已有草稿的内容,支持添加普通附件和内联图片。\n\n指定 --attachment 或 --inline-attachment 时,CLI 自动完成草稿更新与附件上传,草稿保留在草稿箱(不发送)。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -310061,22 +308711,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新邮件草稿" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新草稿" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新邮件草稿" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新邮件草稿" + "source": "cobra_help", + "value": "更新草稿" }, "use_when": { "candidates": [ @@ -310138,10 +308788,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "attachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -310150,10 +308801,11 @@ "value": "attachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "attachment_local" + "review_reason": "reviewed local attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -310198,7 +308850,6 @@ "value": "array" } }, - "property": "attachment_local", "required": false, "type": "array" }, @@ -310649,10 +309300,11 @@ "property": { "candidates": [ { - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "reviewed local inline-attachment preprocessing input", "selected": true, - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "source": "reviewed_mapping_exclusion", + "value": "" }, { "precedence": "inference", @@ -310661,10 +309313,11 @@ "value": "inlineAttachment" } ], - "precedence": "versioned_binding", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "versioned_parameter_binding", - "value": "inlineAttachment_local" + "review_reason": "reviewed local inline-attachment preprocessing input", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -310709,7 +309362,6 @@ "value": "array" } }, - "property": "inlineAttachment_local", "required": false, "type": "array" }, @@ -310929,7 +309581,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新邮件草稿", + "title": "更新草稿", "use_when": [ "已知草稿 messageId 并需要修改主题、正文或收件人时" ] @@ -310958,11 +309610,8 @@ "cli_name": "update", "cli_path": "mail folder update", "confirmation": "not_required", - "description": "该工具支持修改指定邮箱下邮件文件夹的名称。需要传入要更新的文件夹 ID 和新名称。文件夹 ID 可通过列出邮件文件夹获得,不要把文件夹名称当作 ID。", + "description": "更新指定邮箱下邮件文件夹的名称。\n\n注意:--id 需要填写要更新的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 更新结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -311060,44 +309709,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "该工具支持修改指定邮箱下邮件文件夹的名称。需要传入要更新的文件夹 ID 和新名称。文件夹 ID 可通过列出邮件文件夹获得,不要把文件夹名称当作 ID。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定邮箱下邮件文件夹的名称。\n\n注意:--id 需要填写要更新的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 更新结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "该工具支持修改指定邮箱下邮件文件夹的名称。需要传入要更新的文件夹 ID 和新名称。文件夹 ID 可通过列出邮件文件夹获得,不要把文件夹名称当作 ID。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "该工具支持修改指定邮箱下邮件文件夹的名称。需要传入要更新的文件夹 ID 和新名称。文件夹 ID 可通过列出邮件文件夹获得,不要把文件夹名称当作 ID。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定邮箱下邮件文件夹的名称。\n\n注意:--id 需要填写要更新的文件夹 ID,不是文件夹名称。文件夹 ID 可通过 dws mail folder list 获取。\n\n返回字段:\n success 是否成功\n result 更新结果,成功时为空对象\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -311242,21 +309869,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新邮件文件夹" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新邮件文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新邮件文件夹" }, "use_when": { @@ -311636,11 +310263,8 @@ "cli_name": "update", "cli_path": "mail contact update", "confirmation": "not_required", - "description": "修改用户邮箱联系人信息", + "description": "更新已有邮件联系人的信息。仅传入需要更新的字段即可。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -311738,44 +310362,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改用户邮箱联系人信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新已有邮件联系人的信息。仅传入需要更新的字段即可。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改用户邮箱联系人信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改用户邮箱联系人信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新已有邮件联系人的信息。仅传入需要更新的字段即可。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -311914,22 +310516,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_user_mail_contact" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新邮件联系人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_user_mail_contact" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_user_mail_contact" + "source": "cobra_help", + "value": "更新邮件联系人" }, "use_when": { "candidates": [ @@ -312633,7 +311235,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_user_mail_contact", + "title": "更新邮件联系人", "use_when": [ "已知 contactId 并需要改显示名或邮箱信息时" ] @@ -312672,11 +311274,8 @@ ] ] }, - "description": "更新用户邮件模板", + "description": "更新已有邮件模板的内容。仅传入需要更新的字段即可。\n\n注意: 邮箱服务端仅支持更新草稿模板 (创建时带 --is-draft);\n非草稿模板不可修改 (服务端返回 Invalid parameter),只能删除后重建。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作", "display": "邮箱 / 邮件收发", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -312782,44 +311381,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新用户邮件模板" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新已有邮件模板的内容。仅传入需要更新的字段即可。\n\n注意: 邮箱服务端仅支持更新草稿模板 (创建时带 --is-draft);\n非草稿模板不可修改 (服务端返回 Invalid parameter),只能删除后重建。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新用户邮件模板" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新用户邮件模板" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新已有邮件模板的内容。仅传入需要更新的字段即可。\n\n注意: 邮箱服务端仅支持更新草稿模板 (创建时带 --is-draft);\n非草稿模板不可修改 (服务端返回 Invalid parameter),只能删除后重建。\n\n错误说明:\n domain.notFound 该用户的邮箱不是由钉钉邮箱托管,无法完成操作" }, "effect": { "candidates": [ @@ -312958,22 +311535,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_user_message_template" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新邮件模板" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_user_message_template" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_user_message_template" + "source": "cobra_help", + "value": "更新邮件模板" }, "use_when": { "candidates": [ @@ -313906,7 +312483,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_user_message_template", + "title": "更新邮件模板", "use_when": [ "已知 templateId 并需要修改名称、主题、正文或收件人时" ] @@ -313933,11 +312510,8 @@ "cli_name": "add", "cli_path": "minutes permission add", "confirmation": "not_required", - "description": "批量给多个听记增加成员,并且设置成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。", + "description": "批量给多个听记增加成员,并设置成员的权限。\n\n权限类型 (--policy):\n 0 = 管理员\n 1 = 所有者\n 2 = 可编辑\n 3 = 可查看/下载\n 4 = 仅查看\n\n权限子模块 (--sub-resources,可选,逗号分隔):\n OrigContent = 原始内容\n Summary = 纪要\n Analysis = 分析\n Note = 笔记", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -314035,44 +312609,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量给多个听记增加成员,并且设置成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量给多个听记增加成员,并设置成员的权限。\n\n权限类型 (--policy):\n 0 = 管理员\n 1 = 所有者\n 2 = 可编辑\n 3 = 可查看/下载\n 4 = 仅查看\n\n权限子模块 (--sub-resources,可选,逗号分隔):\n OrigContent = 原始内容\n Summary = 纪要\n Analysis = 分析\n Note = 笔记" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量给多个听记增加成员,并且设置成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量给多个听记增加成员,并且设置成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量给多个听记增加成员,并设置成员的权限。\n\n权限类型 (--policy):\n 0 = 管理员\n 1 = 所有者\n 2 = 可编辑\n 3 = 可查看/下载\n 4 = 仅查看\n\n权限子模块 (--sub-resources,可选,逗号分隔):\n OrigContent = 原始内容\n Summary = 纪要\n Analysis = 分析\n Note = 笔记" }, "effect": { "candidates": [ @@ -314211,22 +312763,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_member_permission" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量添加听记成员并设置权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_member_permission" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_member_permission" + "source": "cobra_help", + "value": "批量添加听记成员并设置权限" }, "use_when": { "candidates": [ @@ -314916,7 +313468,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_member_permission", + "title": "批量添加听记成员并设置权限", "use_when": [ "当用户明确要求批量给多个听记增加成员,并设置成员的权限,且已确认目标对象和所需参数时使用。" ] @@ -314945,11 +313497,8 @@ "cli_name": "add", "cli_path": "minutes hot-word add", "confirmation": "not_required", - "description": "添加听记个人热词\r\n对于听记语音识别中,需要优化识别结果的专有名词、人名、以及其他用户需要添加热词的场景使用\r\n热词长度不超过10个汉字或5个英文单词", + "description": "添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率。\n支持一次添加多个热词(逗号分隔),每个热词长度不超过 10 个汉字或 5 个英文单词。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -315047,44 +313596,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加听记个人热词\r\n对于听记语音识别中,需要优化识别结果的专有名词、人名、以及其他用户需要添加热词的场景使用\r\n热词长度不超过10个汉字或5个英文单词" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率。\n支持一次添加多个热词(逗号分隔),每个热词长度不超过 10 个汉字或 5 个英文单词。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加听记个人热词\r\n对于听记语音识别中,需要优化识别结果的专有名词、人名、以及其他用户需要添加热词的场景使用\r\n热词长度不超过10个汉字或5个英文单词" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加听记个人热词\r\n对于听记语音识别中,需要优化识别结果的专有名词、人名、以及其他用户需要添加热词的场景使用\r\n热词长度不超过10个汉字或5个英文单词" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率。\n支持一次添加多个热词(逗号分隔),每个热词长度不超过 10 个汉字或 5 个英文单词。" }, "effect": { "candidates": [ @@ -315229,22 +313756,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_personal_hot_word" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加个人热词" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_personal_hot_word" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_personal_hot_word" + "source": "cobra_help", + "value": "添加个人热词" }, "use_when": { "candidates": [ @@ -315417,7 +313944,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_personal_hot_word", + "title": "添加个人热词", "use_when": [ "当用户明确要求添加听记个人热词,用于优化语音识别中专有名词、人名等的识别准确率,且已确认目标对象和所需参数时使用。" ] @@ -315446,11 +313973,8 @@ "cli_name": "batch", "cli_path": "minutes get batch", "confirmation": "not_required", - "description": "根据听记taskUuid列表批量查询听记详情。输入参数:taskUuid列表(string[],必填,每个元素为听记的唯一标识符,最少传入1个)。返回对应听记的详情列表,每条记录包含:听记标题、时长、参与人列表、创建时间、听记唯一标识taskUuid、听记状态。适用于已知特定听记taskUuid需批量获取详情的列表展示场景。", + "description": "根据 taskUuid 列表批量查询听记详情。\n返回字段:听记标题、时长、参与人列表、创建时间、taskUuid、听记状态。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -315548,44 +314072,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记taskUuid列表批量查询听记详情。输入参数:taskUuid列表(string[],必填,每个元素为听记的唯一标识符,最少传入1个)。返回对应听记的详情列表,每条记录包含:听记标题、时长、参与人列表、创建时间、听记唯一标识taskUuid、听记状态。适用于已知特定听记taskUuid需批量获取详情的列表展示场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据 taskUuid 列表批量查询听记详情。\n返回字段:听记标题、时长、参与人列表、创建时间、taskUuid、听记状态。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记taskUuid列表批量查询听记详情。输入参数:taskUuid列表(string[],必填,每个元素为听记的唯一标识符,最少传入1个)。返回对应听记的详情列表,每条记录包含:听记标题、时长、参与人列表、创建时间、听记唯一标识taskUuid、听记状态。适用于已知特定听记taskUuid需批量获取详情的列表展示场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记taskUuid列表批量查询听记详情。输入参数:taskUuid列表(string[],必填,每个元素为听记的唯一标识符,最少传入1个)。返回对应听记的详情列表,每条记录包含:听记标题、时长、参与人列表、创建时间、听记唯一标识taskUuid、听记状态。适用于已知特定听记taskUuid需批量获取详情的列表展示场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据 taskUuid 列表批量查询听记详情。\n返回字段:听记标题、时长、参与人列表、创建时间、taskUuid、听记状态。" }, "effect": { "candidates": [ @@ -315730,22 +314232,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "batch_get_minutes_details" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量查询听记详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "batch_get_minutes_details" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "batch_get_minutes_details" + "source": "cobra_help", + "value": "批量查询听记详情" }, "use_when": { "candidates": [ @@ -315884,7 +314386,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "batch_get_minutes_details", + "title": "批量查询听记详情", "use_when": [ "当用户需要根据 taskUuid 列表批量查询听记详情,并能提供命令所需的查询条件时使用。" ] @@ -315913,11 +314415,8 @@ "cli_name": "cancel", "cli_path": "minutes upload cancel", "confirmation": "not_required", - "description": "取消文件上传会话\r\n当需要取消create_upload_session创建的会话时使用该接口,传入要取消的会话ID", + "description": "取消 create 创建的上传会话,传入要取消的会话 ID。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -316015,44 +314514,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "取消文件上传会话\r\n当需要取消create_upload_session创建的会话时使用该接口,传入要取消的会话ID" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "取消 create 创建的上传会话,传入要取消的会话 ID。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "取消文件上传会话\r\n当需要取消create_upload_session创建的会话时使用该接口,传入要取消的会话ID" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "取消文件上传会话\r\n当需要取消create_upload_session创建的会话时使用该接口,传入要取消的会话ID" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "取消 create 创建的上传会话,传入要取消的会话 ID。" }, "effect": { "candidates": [ @@ -316197,22 +314674,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "cancel_upload_session" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "取消文件上传会话" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "cancel_upload_session" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "cancel_upload_session" + "source": "cobra_help", + "value": "取消文件上传会话" }, "use_when": { "candidates": [ @@ -316358,7 +314835,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "cancel_upload_session", + "title": "取消文件上传会话", "use_when": [ "当用户明确要求取消 create 创建的上传会话,传入要取消的会话 ID,且已确认目标对象和所需参数时使用。" ] @@ -316387,11 +314864,8 @@ "cli_name": "complete", "cli_path": "minutes upload complete", "confirmation": "not_required", - "description": "文件上传完成后,创建听记。\r\n必须在create_upload_session之后、预签名URL上传`curl -X PUT \"{presignedUrl}\" -T \"/path/to/file.mp4\"`完成后调用。\r\n调用流程参考create_upload_session介绍。\r\n幂等:同一sessionId重复调用直接返回已有的任务,不会重复创建。", + "description": "文件上传完成后,创建听记。\n必须在 create 之后、预签名 URL 上传完成后调用。\n调用流程:\n 1. dws minutes upload create ... → 获取 sessionId 和 presignedUrl\n 2. curl -X PUT \"\u003cpresignedUrl\u003e\" -T \"/path/to/file.mp4\"\n 3. dws minutes upload complete --session-id \u003csessionId\u003e\n\n幂等:同一 sessionId 重复调用直接返回已有的任务,不会重复创建。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -316489,44 +314963,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "文件上传完成后,创建听记。\r\n必须在create_upload_session之后、预签名URL上传`curl -X PUT \"{presignedUrl}\" -T \"/path/to/file.mp4\"`完成后调用。\r\n调用流程参考create_upload_session介绍。\r\n幂等:同一sessionId重复调用直接返回已有的任务,不会重复创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "文件上传完成后,创建听记。\n必须在 create 之后、预签名 URL 上传完成后调用。\n调用流程:\n 1. dws minutes upload create ... → 获取 sessionId 和 presignedUrl\n 2. curl -X PUT \"\u003cpresignedUrl\u003e\" -T \"/path/to/file.mp4\"\n 3. dws minutes upload complete --session-id \u003csessionId\u003e\n\n幂等:同一 sessionId 重复调用直接返回已有的任务,不会重复创建。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "文件上传完成后,创建听记。\r\n必须在create_upload_session之后、预签名URL上传`curl -X PUT \"{presignedUrl}\" -T \"/path/to/file.mp4\"`完成后调用。\r\n调用流程参考create_upload_session介绍。\r\n幂等:同一sessionId重复调用直接返回已有的任务,不会重复创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "文件上传完成后,创建听记。\r\n必须在create_upload_session之后、预签名URL上传`curl -X PUT \"{presignedUrl}\" -T \"/path/to/file.mp4\"`完成后调用。\r\n调用流程参考create_upload_session介绍。\r\n幂等:同一sessionId重复调用直接返回已有的任务,不会重复创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "文件上传完成后,创建听记。\n必须在 create 之后、预签名 URL 上传完成后调用。\n调用流程:\n 1. dws minutes upload create ... → 获取 sessionId 和 presignedUrl\n 2. curl -X PUT \"\u003cpresignedUrl\u003e\" -T \"/path/to/file.mp4\"\n 3. dws minutes upload complete --session-id \u003csessionId\u003e\n\n幂等:同一 sessionId 重复调用直接返回已有的任务,不会重复创建。" }, "effect": { "candidates": [ @@ -316671,22 +315123,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "complete_upload_session" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "完成文件上传并创建听记" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "complete_upload_session" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "complete_upload_session" + "source": "cobra_help", + "value": "完成文件上传并创建听记" }, "use_when": { "candidates": [ @@ -316832,7 +315284,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "complete_upload_session", + "title": "完成文件上传并创建听记", "use_when": [ "当用户明确要求文件上传完成后,创建听记,且已确认目标对象和所需参数时使用。" ] @@ -316861,11 +315313,8 @@ "cli_name": "create", "cli_path": "minutes mind-graph create", "confirmation": "not_required", - "description": "触发创建听记思维导图任务。触发成功后,你需要知道听记思维导图任务状态,每2s调用一次query_mind_graph_status,如果状态是“进行中”需要保持轮询。", + "description": "触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态。\n状态:0=进行中,1=成功,2=失败。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -316963,44 +315412,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "触发创建听记思维导图任务。触发成功后,你需要知道听记思维导图任务状态,每2s调用一次query_mind_graph_status,如果状态是“进行中”需要保持轮询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态。\n状态:0=进行中,1=成功,2=失败。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "触发创建听记思维导图任务。触发成功后,你需要知道听记思维导图任务状态,每2s调用一次query_mind_graph_status,如果状态是“进行中”需要保持轮询。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "触发创建听记思维导图任务。触发成功后,你需要知道听记思维导图任务状态,每2s调用一次query_mind_graph_status,如果状态是“进行中”需要保持轮询。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态。\n状态:0=进行中,1=成功,2=失败。" }, "effect": { "candidates": [ @@ -317145,22 +315572,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_mind_graph" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建思维导图" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_mind_graph" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_mind_graph" + "source": "cobra_help", + "value": "创建思维导图" }, "use_when": { "candidates": [ @@ -317312,7 +315739,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_mind_graph", + "title": "创建思维导图", "use_when": [ "当用户明确要求触发创建听记思维导图任务。触发成功后,可通过 query_mind_graph_status 轮询任务状态,且已确认目标对象和所需参数时使用。" ] @@ -317324,6 +315751,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.minutes.create_speaker_summary", "skills/mono/references/best_practices/10-minutes-speaker-match.md", @@ -317339,13 +315767,10 @@ "cli_name": "create", "cli_path": "minutes speaker summary create", "confirmation": "not_required", - "description": "触发创建发言人的段落总结任务,该任务将听记的发言人的所有撰写内容汇总总结,触发后需要继续调用查询接口去查询总结任务的结果", + "description": "触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结。\n触发后需调用 dws minutes speaker summary get 查询总结结果。\n--ids 和 --task-uuids 等价,均可使用。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", - "effect_source": "command-verb", + "effect": "write", + "effect_source": "agent-hint", "examples": [ "dws minutes speaker summary create --ids '\u003cuuid1,uuid2\u003e'" ], @@ -317427,72 +315852,66 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "not_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "触发创建发言人的段落总结任务,该任务将听记的发言人的所有撰写内容汇总总结,触发后需要继续调用查询接口去查询总结任务的结果" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结。\n触发后需调用 dws minutes speaker summary get 查询总结结果。\n--ids 和 --task-uuids 等价,均可使用。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "触发创建发言人的段落总结任务,该任务将听记的发言人的所有撰写内容汇总总结,触发后需要继续调用查询接口去查询总结任务的结果" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "触发创建发言人的段落总结任务,该任务将听记的发言人的所有撰写内容汇总总结,触发后需要继续调用查询接口去查询总结任务的结果" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结。\n触发后需调用 dws minutes speaker summary get 查询总结结果。\n--ids 和 --task-uuids 等价,均可使用。" }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "read" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", - "value": "read" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" }, "examples": { "candidates": [ @@ -317517,16 +315936,24 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "idempotent" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", - "value": "idempotent" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" }, "interface_mode": { "candidates": [ @@ -317592,6 +316019,13 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true } ], "precedence": "reviewed_manual", @@ -317603,36 +316037,44 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "low" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", - "value": "low" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" }, "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_speaker_summary" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "触发创建发言人段落总结任务" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_speaker_summary" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_speaker_summary" + "source": "cobra_help", + "value": "触发创建发言人段落总结任务" }, "use_when": { "candidates": [ @@ -317657,7 +316099,7 @@ }, "group": "speaker.summary", "has_parameters": true, - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "minutes", @@ -317797,9 +316239,9 @@ "primary_cli_path": "minutes speaker summary create", "product_id": "minutes", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", - "title": "create_speaker_summary", + "title": "触发创建发言人段落总结任务", "use_when": [ "当用户明确要求触发创建发言人的段落总结任务,将听记中每位发言人的所有发言内容汇总总结,且已确认目标对象和所需参数时使用。" ] @@ -317828,11 +316270,8 @@ "cli_name": "create", "cli_path": "minutes upload create", "confirmation": "not_required", - "description": "创建文件上传会话,获取预签名上传URL\r\n调用方拿到 URL 后,直接用HTTP PUT将文件上传到该URL\r\n必须与complete_upload_session配合使用\r\n1.调用create_upload_session获取预签名上传URL和上传ID\r\n2.HTTP PUT预签名上传URL上传文件(不带HEADER)\r\n3.调用complete_upload_session传入会话ID", + "description": "创建文件上传会话,获取预签名上传URL。\n调用方拿到 URL 后,直接用 HTTP PUT 将文件上传到该 URL。\n必须与 complete 配合使用:\n 1. 调用 create 获取预签名上传 URL 和上传 ID\n 2. HTTP PUT 预签名上传 URL 上传文件(不带 HEADER)\n 3. 调用 complete 传入会话 ID", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -317930,44 +316369,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建文件上传会话,获取预签名上传URL\r\n调用方拿到 URL 后,直接用HTTP PUT将文件上传到该URL\r\n必须与complete_upload_session配合使用\r\n1.调用create_upload_session获取预签名上传URL和上传ID\r\n2.HTTP PUT预签名上传URL上传文件(不带HEADER)\r\n3.调用complete_upload_session传入会话ID" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文件上传会话,获取预签名上传URL。\n调用方拿到 URL 后,直接用 HTTP PUT 将文件上传到该 URL。\n必须与 complete 配合使用:\n 1. 调用 create 获取预签名上传 URL 和上传 ID\n 2. HTTP PUT 预签名上传 URL 上传文件(不带 HEADER)\n 3. 调用 complete 传入会话 ID" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建文件上传会话,获取预签名上传URL\r\n调用方拿到 URL 后,直接用HTTP PUT将文件上传到该URL\r\n必须与complete_upload_session配合使用\r\n1.调用create_upload_session获取预签名上传URL和上传ID\r\n2.HTTP PUT预签名上传URL上传文件(不带HEADER)\r\n3.调用complete_upload_session传入会话ID" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建文件上传会话,获取预签名上传URL\r\n调用方拿到 URL 后,直接用HTTP PUT将文件上传到该URL\r\n必须与complete_upload_session配合使用\r\n1.调用create_upload_session获取预签名上传URL和上传ID\r\n2.HTTP PUT预签名上传URL上传文件(不带HEADER)\r\n3.调用complete_upload_session传入会话ID" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建文件上传会话,获取预签名上传URL。\n调用方拿到 URL 后,直接用 HTTP PUT 将文件上传到该 URL。\n必须与 complete 配合使用:\n 1. 调用 create 获取预签名上传 URL 和上传 ID\n 2. HTTP PUT 预签名上传 URL 上传文件(不带 HEADER)\n 3. 调用 complete 传入会话 ID" }, "effect": { "candidates": [ @@ -318112,22 +316529,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_upload_session" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建文件上传会话" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_upload_session" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_upload_session" + "source": "cobra_help", + "value": "创建文件上传会话" }, "use_when": { "candidates": [ @@ -318764,7 +317181,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_upload_session", + "title": "创建文件上传会话", "use_when": [ "当用户明确要求创建文件上传会话,获取预签名上传URL,且已确认目标对象和所需参数时使用。" ] @@ -318793,11 +317210,8 @@ "cli_name": "summary", "cli_path": "minutes get summary", "confirmation": "not_required", - "description": "根据听记唯一标识获取由AI生成的听记内容摘要。输入参数:目标听记的唯一标识符taskUuid。返回Markdown格式的摘要文本,内容由AI对听记转写原文进行结构化提炼生成,涵盖会议主题、核心结论、关键讨论点等。适用于快速了解听记核心内容、会议记录整理、摘要分享等场景。", + "description": "获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式。\n内容涵盖会议主题、核心结论、关键讨论点等。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -318895,44 +317309,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记唯一标识获取由AI生成的听记内容摘要。输入参数:目标听记的唯一标识符taskUuid。返回Markdown格式的摘要文本,内容由AI对听记转写原文进行结构化提炼生成,涵盖会议主题、核心结论、关键讨论点等。适用于快速了解听记核心内容、会议记录整理、摘要分享等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式。\n内容涵盖会议主题、核心结论、关键讨论点等。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记唯一标识获取由AI生成的听记内容摘要。输入参数:目标听记的唯一标识符taskUuid。返回Markdown格式的摘要文本,内容由AI对听记转写原文进行结构化提炼生成,涵盖会议主题、核心结论、关键讨论点等。适用于快速了解听记核心内容、会议记录整理、摘要分享等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记唯一标识获取由AI生成的听记内容摘要。输入参数:目标听记的唯一标识符taskUuid。返回Markdown格式的摘要文本,内容由AI对听记转写原文进行结构化提炼生成,涵盖会议主题、核心结论、关键讨论点等。适用于快速了解听记核心内容、会议记录整理、摘要分享等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式。\n内容涵盖会议主题、核心结论、关键讨论点等。" }, "effect": { "candidates": [ @@ -319077,22 +317469,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_minutes_ai_summary" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记 AI 摘要" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_minutes_ai_summary" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_minutes_ai_summary" + "source": "cobra_help", + "value": "获取听记 AI 摘要" }, "use_when": { "candidates": [ @@ -319250,7 +317642,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_minutes_ai_summary", + "title": "获取听记 AI 摘要", "use_when": [ "当用户需要获取由 AI 对听记转写原文进行结构化提炼生成的摘要,返回 Markdown 格式,并能提供命令所需的查询条件时使用。" ] @@ -319279,11 +317671,8 @@ "cli_name": "info", "cli_path": "minutes get info", "confirmation": "not_required", - "description": "根据听记唯一标识获取该听记的基础元数据信息。输入参数:听记的唯一标识符taskUuid。返回字段包括:创建人、开始时间、截止时间、听记标题、听记访问链接URL。适用于展示听记详情页头部信息、跳转听记原始链接、信息摘要展示等场景。", + "description": "获取指定听记的基础元数据信息。\n返回字段:创建人、开始时间、截止时间、听记标题、听记访问链接URL。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -319381,44 +317770,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记唯一标识获取该听记的基础元数据信息。输入参数:听记的唯一标识符taskUuid。返回字段包括:创建人、开始时间、截止时间、听记标题、听记访问链接URL。适用于展示听记详情页头部信息、跳转听记原始链接、信息摘要展示等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定听记的基础元数据信息。\n返回字段:创建人、开始时间、截止时间、听记标题、听记访问链接URL。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记唯一标识获取该听记的基础元数据信息。输入参数:听记的唯一标识符taskUuid。返回字段包括:创建人、开始时间、截止时间、听记标题、听记访问链接URL。适用于展示听记详情页头部信息、跳转听记原始链接、信息摘要展示等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记唯一标识获取该听记的基础元数据信息。输入参数:听记的唯一标识符taskUuid。返回字段包括:创建人、开始时间、截止时间、听记标题、听记访问链接URL。适用于展示听记详情页头部信息、跳转听记原始链接、信息摘要展示等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定听记的基础元数据信息。\n返回字段:创建人、开始时间、截止时间、听记标题、听记访问链接URL。" }, "effect": { "candidates": [ @@ -319563,22 +317930,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_minutes_basic_info" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记基础信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_minutes_basic_info" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_minutes_basic_info" + "source": "cobra_help", + "value": "获取听记基础信息" }, "use_when": { "candidates": [ @@ -319730,7 +318097,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_minutes_basic_info", + "title": "获取听记基础信息", "use_when": [ "当用户需要获取指定听记的基础元数据信息,并能提供命令所需的查询条件时使用。" ] @@ -319759,11 +318126,8 @@ "cli_name": "keywords", "cli_path": "minutes get keywords", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记的关键字列表。输入参数:目标听记的唯一标识符taskUuid。返回关键字列表,每个元素为一个从听记内容中提取的核心关键词。适用于快速了解听记主题、关键词检索、内容分类打标及听记摘要辅助展示等场景。", + "description": "获取听记关键字列表", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -319861,44 +318225,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记的关键字列表。输入参数:目标听记的唯一标识符taskUuid。返回关键字列表,每个元素为一个从听记内容中提取的核心关键词。适用于快速了解听记主题、关键词检索、内容分类打标及听记摘要辅助展示等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记关键字列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记的关键字列表。输入参数:目标听记的唯一标识符taskUuid。返回关键字列表,每个元素为一个从听记内容中提取的核心关键词。适用于快速了解听记主题、关键词检索、内容分类打标及听记摘要辅助展示等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记唯一标识查询该听记的关键字列表。输入参数:目标听记的唯一标识符taskUuid。返回关键字列表,每个元素为一个从听记内容中提取的核心关键词。适用于快速了解听记主题、关键词检索、内容分类打标及听记摘要辅助展示等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取听记关键字列表" }, "effect": { "candidates": [ @@ -320043,22 +318385,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_minutes_keywords" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记关键字列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_minutes_keywords" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_minutes_keywords" + "source": "cobra_help", + "value": "获取听记关键字列表" }, "use_when": { "candidates": [ @@ -320210,7 +318552,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_minutes_keywords", + "title": "获取听记关键字列表", "use_when": [ "当用户需要获取指定听记的关键字列表,并能提供命令所需的查询条件时使用。" ] @@ -320239,11 +318581,8 @@ "cli_name": "transcription", "cli_path": "minutes get transcription", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记的完整语音转写原文。输入参数:听记的唯一标识符 taskUuid。返回转写内容列表,每条记录包含:发言人信息、语音转写文本、对应时间戳。适用于用户回顾会议发言内容、按发言人检索原文、生成会议记录等场景。", + "description": "获取指定听记的语音转写原文。\n每条记录包含:发言人信息、转写文本、对应时间戳。\n\n当用户明确要求查看或分析转写原文时,应默认拉取全部原文(自动翻页),\n不需要用户手动指定\"第一页\"。如果用户意图不是专门看原文(如查列表、\n看摘要),则不应主动调用此命令。\n\n字符上限保护:循环拉取累积超过 12000 字符时,应暂停并询问用户\n是否继续拉取后续分页内容。\n\n--direction:\n 0 = 正序(时间递增,默认)\n 1 = 倒序(时间递减)", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -320341,44 +318680,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记的完整语音转写原文。输入参数:听记的唯一标识符 taskUuid。返回转写内容列表,每条记录包含:发言人信息、语音转写文本、对应时间戳。适用于用户回顾会议发言内容、按发言人检索原文、生成会议记录等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定听记的语音转写原文。\n每条记录包含:发言人信息、转写文本、对应时间戳。\n\n当用户明确要求查看或分析转写原文时,应默认拉取全部原文(自动翻页),\n不需要用户手动指定\"第一页\"。如果用户意图不是专门看原文(如查列表、\n看摘要),则不应主动调用此命令。\n\n字符上限保护:循环拉取累积超过 12000 字符时,应暂停并询问用户\n是否继续拉取后续分页内容。\n\n--direction:\n 0 = 正序(时间递增,默认)\n 1 = 倒序(时间递减)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记的完整语音转写原文。输入参数:听记的唯一标识符 taskUuid。返回转写内容列表,每条记录包含:发言人信息、语音转写文本、对应时间戳。适用于用户回顾会议发言内容、按发言人检索原文、生成会议记录等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记唯一标识查询该听记的完整语音转写原文。输入参数:听记的唯一标识符 taskUuid。返回转写内容列表,每条记录包含:发言人信息、语音转写文本、对应时间戳。适用于用户回顾会议发言内容、按发言人检索原文、生成会议记录等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定听记的语音转写原文。\n每条记录包含:发言人信息、转写文本、对应时间戳。\n\n当用户明确要求查看或分析转写原文时,应默认拉取全部原文(自动翻页),\n不需要用户手动指定\"第一页\"。如果用户意图不是专门看原文(如查列表、\n看摘要),则不应主动调用此命令。\n\n字符上限保护:循环拉取累积超过 12000 字符时,应暂停并询问用户\n是否继续拉取后续分页内容。\n\n--direction:\n 0 = 正序(时间递增,默认)\n 1 = 倒序(时间递减)" }, "effect": { "candidates": [ @@ -320523,22 +318840,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_minutes_transcription" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记语音转写原文" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_minutes_transcription" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_minutes_transcription" + "source": "cobra_help", + "value": "获取听记语音转写原文" }, "use_when": { "candidates": [ @@ -320585,6 +318902,12 @@ "source": "cobra_usage", "value": "分页 token (首页留空)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "游标,第一次查询可为空,之后每次带上一次的游标" + }, { "precedence": "default", "selected": false, @@ -320600,16 +318923,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -320654,7 +318983,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "游标,第一次查询可为空,之后每次带上一次的游标", + "property": "nextToken", "required": false, "type": "string" }, @@ -320878,7 +319208,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_minutes_transcription", + "title": "获取听记语音转写原文", "use_when": [ "当用户需要获取指定听记的语音转写原文,并能提供命令所需的查询条件时使用。" ] @@ -320905,11 +319235,8 @@ "cli_name": "get", "cli_path": "minutes speaker summary get", "confirmation": "not_required", - "description": "查询发言人的段落总结任务的结果,该任务将听记的发言人的所有撰写内容汇总总结返回,配合创建任务使用", + "description": "查询发言人段落总结任务的结果,返回每位发言人的发言汇总。\n需先调用 dws minutes speaker summary create 触发任务。\n--ids 和 --task-uuids 等价,均可使用。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -321007,44 +319334,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询发言人的段落总结任务的结果,该任务将听记的发言人的所有撰写内容汇总总结返回,配合创建任务使用" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询发言人段落总结任务的结果,返回每位发言人的发言汇总。\n需先调用 dws minutes speaker summary create 触发任务。\n--ids 和 --task-uuids 等价,均可使用。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询发言人的段落总结任务的结果,该任务将听记的发言人的所有撰写内容汇总总结返回,配合创建任务使用" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询发言人的段落总结任务的结果,该任务将听记的发言人的所有撰写内容汇总总结返回,配合创建任务使用" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询发言人段落总结任务的结果,返回每位发言人的发言汇总。\n需先调用 dws minutes speaker summary create 触发任务。\n--ids 和 --task-uuids 等价,均可使用。" }, "effect": { "candidates": [ @@ -321183,22 +319488,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_speaker_summary" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询发言人段落总结结果" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_speaker_summary" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_speaker_summary" + "source": "cobra_help", + "value": "查询发言人段落总结结果" }, "use_when": { "candidates": [ @@ -321365,103 +319670,90 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_speaker_summary", + "title": "查询发言人段落总结结果", "use_when": [ "当用户需要查询发言人段落总结任务的结果,返回每位发言人的发言汇总,并能提供命令所需的查询条件时使用。" ] }, - "minutes.list_by_keyword_and_time_range": { + "minutes.list_accessible_minutes": { "agent_metadata_source": "embedded-skill-metadata", "agent_source_refs": [ - "cobra-help:dws minutes list mine --help", + "cobra-help:dws minutes list all --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", - "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range", "skills/mono/references/best_practices/07-minutes.md", "skills/mono/references/products/minutes.md" ], - "agent_summary": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "agent_summary": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", - "aliases": [ - "minutes list all", - "minutes list shared" - ], "availability": "available", "avoid_when": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" ], - "canonical_path": "minutes.list_by_keyword_and_time_range", - "cli_name": "mine", - "cli_path": "minutes list mine", + "canonical_path": "minutes.list_accessible_minutes", + "cli_name": "all", + "cli_path": "minutes list all", "confirmation": "not_required", - "description": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。", + "description": "查询我有权限访问的所有听记列表(包括我创建的、他人共享给我的等所有有权限的听记),支持按关键字和时间范围筛选。\n时间范围和时间关键词为可选参数,不传则返回所有有权限的听记。\n--limit 为可选参数,不传时默认返回 10 条。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ - "dws minutes list mine --format json" + "dws minutes list all --format json" ], "field_provenance": { "agent_summary": { "candidates": [ { "precedence": "reviewed_manual", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", - "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。" + "value": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。" } ], "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", - "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。" + "value": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。" }, "availability": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "available" - }, - { - "precedence": "mcp_fallback", - "selected": false, - "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { "candidates": [ { "precedence": "reviewed_manual", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" ] } ], "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" ] }, "canonical_path": { @@ -321470,15 +319762,15 @@ "precedence": "command_registry", "selected": true, "source": "reviewed_command_registry", - "source_ref": "minutes list mine", - "value": "minutes.list_by_keyword_and_time_range" + "source_ref": "minutes list all", + "value": "minutes.list_accessible_minutes" } ], "precedence": "command_registry", "resolution": "registry_identity", "source": "reviewed_command_registry", - "source_ref": "minutes list mine", - "value": "minutes.list_by_keyword_and_time_range" + "source_ref": "minutes list all", + "value": "minutes.list_accessible_minutes" }, "confirmation": { "candidates": [ @@ -321497,44 +319789,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。" + "source": "cobra_help", + "value": "查询我有权限访问的所有听记列表(包括我创建的、他人共享给我的等所有有权限的听记),支持按关键字和时间范围筛选。\n时间范围和时间关键词为可选参数,不传则返回所有有权限的听记。\n--limit 为可选参数,不传时默认返回 10 条。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", - "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。" + "source": "mcp_metadata", + "value": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "source": "cobra_help", + "value": "查询我有权限访问的所有听记列表(包括我创建的、他人共享给我的等所有有权限的听记),支持按关键字和时间范围筛选。\n时间范围和时间关键词为可选参数,不传则返回所有有权限的听记。\n--limit 为可选参数,不传时默认返回 10 条。" }, "effect": { "candidates": [ @@ -321554,20 +319824,20 @@ "candidates": [ { "precedence": "reviewed_manual", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws minutes list mine --format json" + "dws minutes list all --format json" ] } ], "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws minutes list mine --format json" + "dws minutes list all --format json" ] }, "idempotency": { @@ -321588,39 +319858,35 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" - }, - { - "precedence": "mcp_fallback", - "selected": false, - "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "mcp" }, "interface_ref": { "candidates": [ { - "precedence": "mcp_fallback", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "minutes", "rpc_name": "list_by_keyword_and_time_range" } } ], - "precedence": "mcp_fallback", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": { "product_id": "minutes", "rpc_name": "list_by_keyword_and_time_range" @@ -321644,7 +319910,7 @@ "candidates": [ { "precedence": "reviewed_manual", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true @@ -321652,7 +319918,7 @@ ], "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, @@ -321673,41 +319939,41 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_by_keyword_and_time_range" + "source": "cobra_help", + "value": "查询我有权限访问的所有听记列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", - "value": "查询我创建的听记列表" + "source": "mcp_metadata", + "value": "list_by_keyword_and_time_range" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_by_keyword_and_time_range" + "source": "cobra_help", + "value": "查询我有权限访问的所有听记列表" }, "use_when": { "candidates": [ { "precedence": "reviewed_manual", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" ] } ], "precedence": "reviewed_manual", "resolution": "highest_precedence", - "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" ] } }, @@ -321721,7 +319987,7 @@ }, "is_alias": false, "metadata_source": "embedded-mcp-metadata", - "name": "list_by_keyword_and_time_range", + "name": "list_accessible_minutes", "parameter_count": 5, "parameters": { "cursor": { @@ -321735,6 +320001,12 @@ "source": "cobra_usage", "value": "分页 token (首页留空)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询下一次查询起始位置" + }, { "precedence": "default", "selected": false, @@ -321750,16 +320022,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -321804,7 +320082,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页查询下一次查询起始位置", + "property": "nextToken", "required": false, "type": "string" }, @@ -321819,6 +320098,12 @@ "source": "cobra_usage", "value": "结束时间 ISO-8601 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间结束值" + }, { "precedence": "default", "selected": false, @@ -321851,19 +320136,45 @@ "source": "usage_format_inference", "value": "date-time" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeEnd" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "end" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "end" + "source": "versioned_parameter_binding", + "value": "createTimeEnd" }, "required": { "candidates": [ @@ -321909,7 +320220,9 @@ } }, "format": "date-time", - "property": "end", + "interface_description": "时间结束值", + "interface_type": "number", + "property": "createTimeEnd", "required": false, "type": "string" }, @@ -321925,6 +320238,12 @@ "source": "cobra_usage", "value": "每页数据条数 (默认 10)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页数量" + }, { "precedence": "default", "selected": false, @@ -321940,16 +320259,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -322000,7 +320325,8 @@ "value": "number" } }, - "property": "limit", + "interface_description": "每页数量", + "property": "maxResults", "required": false, "type": "number" }, @@ -322015,6 +320341,12 @@ "source": "cobra_usage", "value": "关键字筛选 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词" + }, { "precedence": "default", "selected": false, @@ -322030,16 +320362,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ @@ -322084,7 +320422,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "搜索关键词", + "property": "keyword", "required": false, "type": "string" }, @@ -322099,6 +320438,12 @@ "source": "cobra_usage", "value": "开始时间 ISO-8601 (可选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间开始值" + }, { "precedence": "default", "selected": false, @@ -322131,19 +320476,45 @@ "source": "usage_format_inference", "value": "date-time" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeStart" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "start" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "start" + "source": "versioned_parameter_binding", + "value": "createTimeStart" }, "required": { "candidates": [ @@ -322189,7 +320560,931 @@ } }, "format": "date-time", - "property": "start", + "interface_description": "时间开始值", + "interface_type": "number", + "property": "createTimeStart", + "required": false, + "type": "string" + } + }, + "path": "minutes.list_accessible_minutes", + "primary_cli_path": "minutes list all", + "product_id": "minutes", + "reviewed": true, + "risk": "low", + "source": "reviewed_command_registry", + "title": "查询我有权限访问的所有听记列表", + "use_when": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ] + }, + "minutes.list_by_keyword_and_time_range": { + "agent_metadata_source": "embedded-skill-metadata", + "agent_source_refs": [ + "cobra-help:dws minutes list mine --help", + "internal/cli/schema_command_registry.json", + "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_manual_hints.json", + "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range", + "skills/mono/references/best_practices/07-minutes.md", + "skills/mono/references/products/minutes.md" + ], + "agent_summary": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "canonical_path": "minutes.list_by_keyword_and_time_range", + "cli_name": "mine", + "cli_path": "minutes list mine", + "confirmation": "not_required", + "description": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "display": "AI 听记 / 会议纪要", + "effect": "read", + "effect_source": "command-verb", + "examples": [ + "dws minutes list mine --format json" + ], + "field_provenance": { + "agent_summary": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。" + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。" + }, + "availability": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "available" + }, + { + "precedence": "mcp_fallback", + "selected": false, + "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "value": "available" + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "available" + }, + "avoid_when": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ] + }, + "canonical_path": { + "candidates": [ + { + "precedence": "command_registry", + "selected": true, + "source": "reviewed_command_registry", + "source_ref": "minutes list mine", + "value": "minutes.list_by_keyword_and_time_range" + } + ], + "precedence": "command_registry", + "resolution": "registry_identity", + "source": "reviewed_command_registry", + "source_ref": "minutes list mine", + "value": "minutes.list_by_keyword_and_time_range" + }, + "confirmation": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "risk-default", + "value": "not_required" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "risk-default", + "value": "not_required" + }, + "description": { + "candidates": [ + { + "precedence": "cobra_help", + "selected": true, + "source": "cobra_help", + "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。" + } + ], + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。" + }, + "effect": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "command-verb", + "value": "read" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "command-verb", + "value": "read" + }, + "examples": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "dws minutes list mine --format json" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "dws minutes list mine --format json" + ] + }, + "idempotency": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "effect-default", + "value": "idempotent" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "effect-default", + "value": "idempotent" + }, + "interface_mode": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" + }, + { + "precedence": "mcp_fallback", + "selected": false, + "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "value": "mcp" + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" + }, + "interface_ref": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + }, + { + "precedence": "mcp_fallback", + "selected": false, + "source": "internal/cli/schema_mcp_metadata.json#tools.minutes.list_by_keyword_and_time_range.interface_ref", + "value": "minutes.list_by_keyword_and_time_range" + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + }, + "metadata_source": { + "candidates": [ + { + "precedence": "derived_resolution", + "selected": true, + "source": "metadata_source_resolution", + "value": "embedded-mcp-metadata" + } + ], + "precedence": "derived_resolution", + "resolution": "highest_precedence", + "source": "metadata_source_resolution", + "value": "embedded-mcp-metadata" + }, + "reviewed": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": true + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": true + }, + "risk": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "effect-default", + "value": "low" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "effect-default", + "value": "low" + }, + "title": { + "candidates": [ + { + "precedence": "cobra_help", + "selected": true, + "source": "cobra_help", + "value": "查询我创建的听记列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_by_keyword_and_time_range" + } + ], + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询我创建的听记列表" + }, + "use_when": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + } + }, + "group": "list", + "has_parameters": true, + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "is_alias": false, + "metadata_source": "embedded-mcp-metadata", + "name": "list_by_keyword_and_time_range", + "parameter_count": 5, + "parameters": { + "cursor": { + "description": "分页 token (首页留空)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "分页 token (首页留空)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询下一次查询起始位置" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "分页 token (首页留空)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "cursor" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "interface_description": "分页查询下一次查询起始位置", + "property": "nextToken", + "required": false, + "type": "string" + }, + "end": { + "description": "结束时间 ISO-8601 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "结束时间 ISO-8601 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间结束值" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "结束时间 ISO-8601 (可选)" + }, + "format": { + "candidates": [ + { + "precedence": "inference", + "selected": true, + "source": "usage_format_inference", + "value": "date-time" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "inference", + "resolution": "highest_precedence", + "source": "usage_format_inference", + "value": "date-time" + }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeEnd" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "end" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "createTimeEnd" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "format": "date-time", + "interface_description": "时间结束值", + "interface_type": "number", + "property": "createTimeEnd", + "required": false, + "type": "string" + }, + "limit": { + "default": "10", + "description": "每页数据条数 (默认 10)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "每页数据条数 (默认 10)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页数量" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "每页数据条数 (默认 10)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "limit" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + "required": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_nonzero_default", + "value": false + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": false + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_nonzero_default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "number" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "number" + } + }, + "interface_description": "每页数量", + "property": "maxResults", + "required": false, + "type": "number" + }, + "query": { + "description": "关键字筛选 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "关键字筛选 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "关键字筛选 (可选)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "query" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "keyword" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "interface_description": "搜索关键词", + "property": "keyword", + "required": false, + "type": "string" + }, + "start": { + "description": "开始时间 ISO-8601 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "开始时间 ISO-8601 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间开始值" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "开始时间 ISO-8601 (可选)" + }, + "format": { + "candidates": [ + { + "precedence": "inference", + "selected": true, + "source": "usage_format_inference", + "value": "date-time" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "inference", + "resolution": "highest_precedence", + "source": "usage_format_inference", + "value": "date-time" + }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeStart" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "start" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "createTimeStart" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "format": "date-time", + "interface_description": "时间开始值", + "interface_type": "number", + "property": "createTimeStart", "required": false, "type": "string" } @@ -322200,9 +321495,9 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_by_keyword_and_time_range", + "title": "查询我创建的听记列表", "use_when": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" ] }, "minutes.list_minutes_todos": { @@ -322229,11 +321524,8 @@ "cli_name": "todos", "cli_path": "minutes get todos", "confirmation": "not_required", - "description": "根据听记唯一标识查询该听记中提取的待办事项列表。输入参数:目标听记的唯一标识符taskUuid。返回待办事项列表,每条记录包含:待办事项内容、待办唯一ID、参与人信息、待办时间。适用于会后跟进行动项、任务分配追踪、按人员或时间筛选待办等场景。", + "description": "查询指定听记中由系统提取的待办事项列表。\n每条记录包含:待办内容、待办唯一ID、参与人信息、待办时间。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -322331,44 +321623,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记中提取的待办事项列表。输入参数:目标听记的唯一标识符taskUuid。返回待办事项列表,每条记录包含:待办事项内容、待办唯一ID、参与人信息、待办时间。适用于会后跟进行动项、任务分配追踪、按人员或时间筛选待办等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定听记中由系统提取的待办事项列表。\n每条记录包含:待办内容、待办唯一ID、参与人信息、待办时间。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据听记唯一标识查询该听记中提取的待办事项列表。输入参数:目标听记的唯一标识符taskUuid。返回待办事项列表,每条记录包含:待办事项内容、待办唯一ID、参与人信息、待办时间。适用于会后跟进行动项、任务分配追踪、按人员或时间筛选待办等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据听记唯一标识查询该听记中提取的待办事项列表。输入参数:目标听记的唯一标识符taskUuid。返回待办事项列表,每条记录包含:待办事项内容、待办唯一ID、参与人信息、待办时间。适用于会后跟进行动项、任务分配追踪、按人员或时间筛选待办等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定听记中由系统提取的待办事项列表。\n每条记录包含:待办内容、待办唯一ID、参与人信息、待办时间。" }, "effect": { "candidates": [ @@ -322513,22 +321783,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_minutes_todos" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记中提取的待办事项" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_minutes_todos" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_minutes_todos" + "source": "cobra_help", + "value": "获取听记中提取的待办事项" }, "use_when": { "candidates": [ @@ -322680,7 +321950,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_minutes_todos", + "title": "获取听记中提取的待办事项", "use_when": [ "当用户需要查询指定听记中由系统提取的待办事项列表,并能提供命令所需的查询条件时使用。" ] @@ -322707,11 +321977,8 @@ "cli_name": "list", "cli_path": "minutes hot-word list", "confirmation": "not_required", - "description": "查询我的热词列表,返回个人的所有听记配置过的热词列表", + "description": "查询当前用户配置的所有听记热词列表。\n无需传入额外参数,系统自动识别当前用户身份。\n返回用户已添加的全部热词,适用于查看已有热词、去重检查等场景。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -322809,44 +322076,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询我的热词列表,返回个人的所有听记配置过的热词列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户配置的所有听记热词列表。\n无需传入额外参数,系统自动识别当前用户身份。\n返回用户已添加的全部热词,适用于查看已有热词、去重检查等场景。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询我的热词列表,返回个人的所有听记配置过的热词列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询我的热词列表,返回个人的所有听记配置过的热词列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户配置的所有听记热词列表。\n无需传入额外参数,系统自动识别当前用户身份。\n返回用户已添加的全部热词,适用于查看已有热词、去重检查等场景。" }, "effect": { "candidates": [ @@ -322985,22 +322230,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_my_hotwords" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询我的热词列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_my_hotwords" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_my_hotwords" + "source": "cobra_help", + "value": "查询我的热词列表" }, "use_when": { "candidates": [ @@ -323042,11 +322287,914 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_my_hotwords", + "title": "查询我的热词列表", "use_when": [ "当用户需要查询当前用户配置的所有听记热词列表,并能提供命令所需的查询条件时使用。" ] }, + "minutes.list_shared_minutes": { + "agent_metadata_source": "embedded-skill-metadata", + "agent_source_refs": [ + "cobra-help:dws minutes list shared --help", + "internal/cli/schema_command_registry.json", + "internal/cli/schema_hints/selection-review.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_manual_hints.json", + "skills/mono/references/best_practices/07-minutes.md", + "skills/mono/references/products/minutes.md" + ], + "agent_summary": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "agent_summary_source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "availability": "available", + "avoid_when": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "canonical_path": "minutes.list_shared_minutes", + "cli_name": "shared", + "cli_path": "minutes list shared", + "confirmation": "not_required", + "description": "查询他人共享给我的听记列表,支持分页,支持按关键字和时间范围筛选。", + "display": "AI 听记 / 会议纪要", + "effect": "read", + "effect_source": "command-verb", + "examples": [ + "dws minutes list shared --format json" + ], + "field_provenance": { + "agent_summary": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。" + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。" + }, + "availability": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "available" + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "available" + }, + "avoid_when": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ] + }, + "canonical_path": { + "candidates": [ + { + "precedence": "command_registry", + "selected": true, + "source": "reviewed_command_registry", + "source_ref": "minutes list shared", + "value": "minutes.list_shared_minutes" + } + ], + "precedence": "command_registry", + "resolution": "registry_identity", + "source": "reviewed_command_registry", + "source_ref": "minutes list shared", + "value": "minutes.list_shared_minutes" + }, + "confirmation": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "risk-default", + "value": "not_required" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "risk-default", + "value": "not_required" + }, + "description": { + "candidates": [ + { + "precedence": "cobra_help", + "selected": true, + "source": "cobra_help", + "value": "查询他人共享给我的听记列表,支持分页,支持按关键字和时间范围筛选。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。代替list_by_keyword_range。" + } + ], + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询他人共享给我的听记列表,支持分页,支持按关键字和时间范围筛选。" + }, + "effect": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "command-verb", + "value": "read" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "command-verb", + "value": "read" + }, + "examples": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "dws minutes list shared --format json" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "dws minutes list shared --format json" + ] + }, + "idempotency": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "effect-default", + "value": "idempotent" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "effect-default", + "value": "idempotent" + }, + "interface_mode": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "mcp" + }, + "interface_ref": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + }, + "metadata_source": { + "candidates": [ + { + "precedence": "derived_resolution", + "selected": true, + "source": "metadata_source_resolution", + "value": "embedded-mcp-metadata" + } + ], + "precedence": "derived_resolution", + "resolution": "highest_precedence", + "source": "metadata_source_resolution", + "value": "embedded-mcp-metadata" + }, + "reviewed": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": true + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": true + }, + "risk": { + "candidates": [ + { + "precedence": "inference_or_default", + "selected": true, + "source": "effect-default", + "value": "low" + } + ], + "precedence": "inference_or_default", + "resolution": "highest_precedence", + "source": "effect-default", + "value": "low" + }, + "title": { + "candidates": [ + { + "precedence": "cobra_help", + "selected": true, + "source": "cobra_help", + "value": "查询他人共享给我的听记列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_by_keyword_and_time_range" + } + ], + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询他人共享给我的听记列表" + }, + "use_when": { + "candidates": [ + { + "precedence": "reviewed_manual", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "selected": true, + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + } + ], + "precedence": "reviewed_manual", + "resolution": "highest_precedence", + "review_reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", + "value": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + } + }, + "group": "list", + "has_parameters": true, + "idempotency": "idempotent", + "interface_mode": "mcp", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + }, + "is_alias": false, + "metadata_source": "embedded-mcp-metadata", + "name": "list_shared_minutes", + "parameter_count": 5, + "parameters": { + "cursor": { + "description": "分页 token (首页留空)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "分页 token (首页留空)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询下一次查询起始位置" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "分页 token (首页留空)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "cursor" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "interface_description": "分页查询下一次查询起始位置", + "property": "nextToken", + "required": false, + "type": "string" + }, + "end": { + "description": "结束时间 ISO-8601 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "结束时间 ISO-8601 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间结束值" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "结束时间 ISO-8601 (可选)" + }, + "format": { + "candidates": [ + { + "precedence": "inference", + "selected": true, + "source": "usage_format_inference", + "value": "date-time" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "inference", + "resolution": "highest_precedence", + "source": "usage_format_inference", + "value": "date-time" + }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeEnd" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "end" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "createTimeEnd" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "format": "date-time", + "interface_description": "时间结束值", + "interface_type": "number", + "property": "createTimeEnd", + "required": false, + "type": "string" + }, + "limit": { + "default": "10", + "description": "每页数据条数 (默认 10)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "每页数据条数 (默认 10)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页数量" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "每页数据条数 (默认 10)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "limit" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + "required": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_nonzero_default", + "value": false + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": false + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_nonzero_default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "number" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "number" + } + }, + "interface_description": "每页数量", + "property": "maxResults", + "required": false, + "type": "number" + }, + "query": { + "description": "关键字筛选 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "关键字筛选 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "关键字筛选 (可选)" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "query" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "keyword" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "interface_description": "搜索关键词", + "property": "keyword", + "required": false, + "type": "string" + }, + "start": { + "description": "开始时间 ISO-8601 (可选)", + "field_provenance": { + "description": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_usage", + "value": "开始时间 ISO-8601 (可选)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "时间开始值" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_usage", + "value": "开始时间 ISO-8601 (可选)" + }, + "format": { + "candidates": [ + { + "precedence": "inference", + "selected": true, + "source": "usage_format_inference", + "value": "date-time" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "inference", + "resolution": "highest_precedence", + "source": "usage_format_inference", + "value": "date-time" + }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, + "property": { + "candidates": [ + { + "precedence": "versioned_binding", + "selected": true, + "source": "versioned_parameter_binding", + "value": "createTimeStart" + }, + { + "precedence": "inference", + "selected": false, + "source": "flag_name_inference", + "value": "start" + } + ], + "precedence": "versioned_binding", + "resolution": "highest_precedence", + "source": "versioned_parameter_binding", + "value": "createTimeStart" + }, + "required": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": false + } + ], + "precedence": "default", + "resolution": "fallback", + "source": "default", + "value": false + }, + "required_when": { + "candidates": [ + { + "precedence": "default", + "selected": true, + "source": "default", + "value": "" + } + ], + "precedence": "default", + "resolution": "highest_precedence", + "source": "default", + "value": "" + }, + "type": { + "candidates": [ + { + "precedence": "cobra_contract", + "selected": true, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "cobra_contract", + "resolution": "highest_precedence", + "source": "cobra_flag_type", + "value": "string" + } + }, + "format": "date-time", + "interface_description": "时间开始值", + "interface_type": "number", + "property": "createTimeStart", + "required": false, + "type": "string" + } + }, + "path": "minutes.list_shared_minutes", + "primary_cli_path": "minutes list shared", + "product_id": "minutes", + "reviewed": true, + "risk": "low", + "source": "reviewed_command_registry", + "title": "查询他人共享给我的听记列表", + "use_when": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + }, "minutes.query_mind_graph_status": { "agent_metadata_source": "embedded-skill-metadata", "agent_source_refs": [ @@ -323071,11 +323219,8 @@ "cli_name": "status", "cli_path": "minutes mind-graph status", "confirmation": "not_required", - "description": "查询思维导图任务状态,根据taskUuid查询对应思维导图状态。\r\n返回的结果里,任务状态(taskStatus)如下:\r\n0-进行中,1-成功,2-失败\r\n如果没有返回任务状态,也视为成功", + "description": "查询指定听记的思维导图生成状态。\n返回任务状态:0=进行中,1=成功,2=失败。如果没有返回任务状态,也视为成功。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -323173,44 +323318,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询思维导图任务状态,根据taskUuid查询对应思维导图状态。\r\n返回的结果里,任务状态(taskStatus)如下:\r\n0-进行中,1-成功,2-失败\r\n如果没有返回任务状态,也视为成功" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定听记的思维导图生成状态。\n返回任务状态:0=进行中,1=成功,2=失败。如果没有返回任务状态,也视为成功。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询思维导图任务状态,根据taskUuid查询对应思维导图状态。\r\n返回的结果里,任务状态(taskStatus)如下:\r\n0-进行中,1-成功,2-失败\r\n如果没有返回任务状态,也视为成功" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询思维导图任务状态,根据taskUuid查询对应思维导图状态。\r\n返回的结果里,任务状态(taskStatus)如下:\r\n0-进行中,1-成功,2-失败\r\n如果没有返回任务状态,也视为成功" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定听记的思维导图生成状态。\n返回任务状态:0=进行中,1=成功,2=失败。如果没有返回任务状态,也视为成功。" }, "effect": { "candidates": [ @@ -323355,22 +323478,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_mind_graph_status" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询思维导图状态" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_mind_graph_status" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_mind_graph_status" + "source": "cobra_help", + "value": "查询思维导图状态" }, "use_when": { "candidates": [ @@ -323522,7 +323645,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_mind_graph_status", + "title": "查询思维导图状态", "use_when": [ "当用户需要查询指定听记的思维导图生成状态,并能提供命令所需的查询条件时使用。" ] @@ -323549,11 +323672,8 @@ "cli_name": "audio", "cli_path": "minutes get audio", "confirmation": "not_required", - "description": "查询听记的音频/视频地址,入参为 taskUuid 和操作人 uid,操作人需拥有该听记的\"读\"权限及以上才会返回;支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。在返回地址前会过滤以下场景:听记已被删除、A1 无痕模式听记、临存过期的听记(媒体未准备好或临时存储已过期)。", + "description": "查询听记的音频/视频文件地址(OSS 链接)。\n操作人需拥有该听记的\"读\"权限及以上才会返回。\n支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。\n\n以下场景不返回地址:\n - 听记已被删除\n - A1 无痕模式听记\n - 临存过期的听记(媒体未准备好或临时存储已过期)", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -323651,44 +323771,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询听记的音频/视频地址,入参为 taskUuid 和操作人 uid,操作人需拥有该听记的\"读\"权限及以上才会返回;支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。在返回地址前会过滤以下场景:听记已被删除、A1 无痕模式听记、临存过期的听记(媒体未准备好或临时存储已过期)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询听记的音频/视频文件地址(OSS 链接)。\n操作人需拥有该听记的\"读\"权限及以上才会返回。\n支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。\n\n以下场景不返回地址:\n - 听记已被删除\n - A1 无痕模式听记\n - 临存过期的听记(媒体未准备好或临时存储已过期)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询听记的音频/视频地址,入参为 taskUuid 和操作人 uid,操作人需拥有该听记的\"读\"权限及以上才会返回;支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。在返回地址前会过滤以下场景:听记已被删除、A1 无痕模式听记、临存过期的听记(媒体未准备好或临时存储已过期)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询听记的音频/视频地址,入参为 taskUuid 和操作人 uid,操作人需拥有该听记的\"读\"权限及以上才会返回;支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。在返回地址前会过滤以下场景:听记已被删除、A1 无痕模式听记、临存过期的听记(媒体未准备好或临时存储已过期)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询听记的音频/视频文件地址(OSS 链接)。\n操作人需拥有该听记的\"读\"权限及以上才会返回。\n支持所有类型的听记(线上闪记、线下闪记、A1 硬件听记、上传文件听记等)。\n\n以下场景不返回地址:\n - 听记已被删除\n - A1 无痕模式听记\n - 临存过期的听记(媒体未准备好或临时存储已过期)" }, "effect": { "candidates": [ @@ -323827,22 +323925,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_minutes_audio_url" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取听记音频/视频地址" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_minutes_audio_url" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_minutes_audio_url" + "source": "cobra_help", + "value": "获取听记音频/视频地址" }, "use_when": { "candidates": [ @@ -323994,7 +324092,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_minutes_audio_url", + "title": "获取听记音频/视频地址", "use_when": [ "当用户需要查询听记的音频/视频文件地址(OSS 链接),并能提供命令所需的查询条件时使用。" ] @@ -324021,11 +324119,8 @@ "cli_name": "query", "cli_path": "minutes tag query", "confirmation": "not_required", - "description": "根据用户的标签或者分组信息来查询听记列表信息,用户的标签通过听记页面手动创建。", + "description": "根据用户的标签或分组 ID 查询该标签下的听记列表。\n标签/分组在听记页面手动创建,tagId 可通过 dws minutes tag list 获取。\n支持分页查询,使用 --limit 控制每页数量,--cursor 传入分页 token。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -324123,44 +324218,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据用户的标签或者分组信息来查询听记列表信息,用户的标签通过听记页面手动创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据用户的标签或分组 ID 查询该标签下的听记列表。\n标签/分组在听记页面手动创建,tagId 可通过 dws minutes tag list 获取。\n支持分页查询,使用 --limit 控制每页数量,--cursor 传入分页 token。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据用户的标签或者分组信息来查询听记列表信息,用户的标签通过听记页面手动创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据用户的标签或者分组信息来查询听记列表信息,用户的标签通过听记页面手动创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据用户的标签或分组 ID 查询该标签下的听记列表。\n标签/分组在听记页面手动创建,tagId 可通过 dws minutes tag list 获取。\n支持分页查询,使用 --limit 控制每页数量,--cursor 传入分页 token。" }, "effect": { "candidates": [ @@ -324299,22 +324372,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_minutes_by_tag_id" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据标签ID查询听记列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_minutes_by_tag_id" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_minutes_by_tag_id" + "source": "cobra_help", + "value": "根据标签ID查询听记列表" }, "use_when": { "candidates": [ @@ -324361,6 +324434,12 @@ "source": "cobra_usage", "value": "分页 token (首页留空)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "nextToken" + }, { "precedence": "default", "selected": false, @@ -324376,16 +324455,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -324430,7 +324515,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "nextToken", + "property": "nextToken", "required": false, "type": "string" }, @@ -324446,6 +324532,12 @@ "source": "cobra_usage", "value": "每页数据条数 (默认 10)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "maxResults" + }, { "precedence": "default", "selected": false, @@ -324464,7 +324556,7 @@ "precedence": "versioned_binding", "selected": true, "source": "versioned_parameter_binding", - "value": "size" + "value": "maxResults" }, { "precedence": "inference", @@ -324476,7 +324568,7 @@ "precedence": "versioned_binding", "resolution": "highest_precedence", "source": "versioned_parameter_binding", - "value": "size" + "value": "maxResults" }, "required": { "candidates": [ @@ -324527,7 +324619,8 @@ "value": "number" } }, - "property": "size", + "interface_description": "maxResults", + "property": "maxResults", "required": false, "type": "number" }, @@ -324641,7 +324734,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_minutes_by_tag_id", + "title": "根据标签ID查询听记列表", "use_when": [ "当用户需要根据用户的标签或分组 ID 查询该标签下的听记列表,并能提供命令所需的查询条件时使用。" ] @@ -324668,11 +324761,8 @@ "cli_name": "list", "cli_path": "minutes tag list", "confirmation": "not_required", - "description": "查询我的的听记的标签或者分组列表,标签或者分组在听记页面创建。", + "description": "查询当前用户的听记标签或分组列表。\n标签/分组在听记页面手动创建,此命令用于查看已有标签。\n无需传入额外参数,系统自动识别当前用户身份。\n返回所有标签/分组的列表,每条记录包含 tagId 和标签名称。\n获取到 tagId 后,可使用 dws minutes tag query --tag-id \u003ctagId\u003e 查询该标签下的听记列表。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -324770,44 +324860,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询我的的听记的标签或者分组列表,标签或者分组在听记页面创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询当前用户的听记标签或分组列表。\n标签/分组在听记页面手动创建,此命令用于查看已有标签。\n无需传入额外参数,系统自动识别当前用户身份。\n返回所有标签/分组的列表,每条记录包含 tagId 和标签名称。\n获取到 tagId 后,可使用 dws minutes tag query --tag-id \u003ctagId\u003e 查询该标签下的听记列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询我的的听记的标签或者分组列表,标签或者分组在听记页面创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询我的的听记的标签或者分组列表,标签或者分组在听记页面创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询当前用户的听记标签或分组列表。\n标签/分组在听记页面手动创建,此命令用于查看已有标签。\n无需传入额外参数,系统自动识别当前用户身份。\n返回所有标签/分组的列表,每条记录包含 tagId 和标签名称。\n获取到 tagId 后,可使用 dws minutes tag query --tag-id \u003ctagId\u003e 查询该标签下的听记列表。" }, "effect": { "candidates": [ @@ -324946,22 +325014,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_user_tag_list" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询我的听记标签/分组列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_user_tag_list" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_user_tag_list" + "source": "cobra_help", + "value": "查询我的听记标签/分组列表" }, "use_when": { "candidates": [ @@ -325003,7 +325071,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_user_tag_list", + "title": "查询我的听记标签/分组列表", "use_when": [ "当用户需要查询当前用户的听记标签或分组列表,并能提供命令所需的查询条件时使用。" ] @@ -325034,9 +325102,6 @@ "confirmation": "not_required", "description": "暂停听记录音", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -325063,7 +325128,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -325071,7 +325136,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -325128,39 +325193,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "暂停听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "暂停听记录音" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -325213,39 +325256,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -325262,7 +325305,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -325281,13 +325324,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -325313,13 +325349,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "暂停听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "暂停听记录音" @@ -325348,8 +325384,8 @@ "group": "record", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "record_pause", "parameter_count": 2, @@ -325476,16 +325512,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: minutes.record_pause has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sessionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sessionId" + "review_reason": "Reviewed unpinned adapter: minutes.record_pause has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -325530,7 +325574,6 @@ "value": "string" } }, - "property": "sessionId", "required": false, "type": "string" } @@ -325572,9 +325615,6 @@ "confirmation": "not_required", "description": "恢复听记录音", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -325601,7 +325641,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -325609,7 +325649,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -325666,39 +325706,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "恢复听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "恢复听记录音" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -325751,39 +325769,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -325800,7 +325818,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -325819,13 +325837,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -325851,13 +325862,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "恢复听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "恢复听记录音" @@ -325886,8 +325897,8 @@ "group": "record", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "record_resume", "parameter_count": 2, @@ -326014,16 +326025,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: minutes.record_resume has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sessionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sessionId" + "review_reason": "Reviewed unpinned adapter: minutes.record_resume has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -326068,7 +326087,6 @@ "value": "string" } }, - "property": "sessionId", "required": false, "type": "string" } @@ -326110,9 +326128,6 @@ "confirmation": "not_required", "description": "发起听记(开始录音)", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -326139,7 +326154,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -326147,7 +326162,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -326204,39 +326219,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "发起听记(开始录音)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "发起听记(开始录音)" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -326297,39 +326290,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -326346,7 +326339,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -326365,13 +326358,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -326397,13 +326383,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "发起听记(开始录音)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "发起听记(开始录音)" @@ -326432,8 +326418,8 @@ "group": "record", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "record_start", "parameter_count": 1, @@ -326464,16 +326450,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: minutes.record_start has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sessionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sessionId" + "review_reason": "Reviewed unpinned adapter: minutes.record_start has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -326518,7 +326512,6 @@ "value": "string" } }, - "property": "sessionId", "required": false, "type": "string" } @@ -326560,9 +326553,6 @@ "confirmation": "not_required", "description": "结束听记录音", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -326589,7 +326579,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -326597,7 +326587,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -326654,39 +326644,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "结束听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "结束听记录音" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -326747,39 +326715,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -326796,7 +326764,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -326815,13 +326783,6 @@ "selected": false, "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -326847,13 +326808,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "结束听记录音" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "结束听记录音" @@ -326882,8 +326843,8 @@ "group": "record", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "record_stop", "parameter_count": 2, @@ -327010,16 +326971,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: minutes.record_stop has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sessionId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sessionId" + "review_reason": "Reviewed unpinned adapter: minutes.record_stop has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -327064,7 +327033,6 @@ "value": "string" } }, - "property": "sessionId", "required": false, "type": "string" } @@ -327103,11 +327071,8 @@ "cli_name": "remove", "cli_path": "minutes permission remove", "confirmation": "user_required", - "description": "批量移除多个听记的成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。", + "description": "批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -327213,44 +327178,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量移除多个听记的成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量移除多个听记的成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量移除多个听记的成员的权限。权限类型为:0:管理员;1:所有者;2:可编辑;3:可查看/下载;4:仅查看。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限。" }, "effect": { "candidates": [ @@ -327405,22 +327348,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "remove_member_permission" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量移除听记成员权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "remove_member_permission" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "remove_member_permission" + "source": "cobra_help", + "value": "批量移除听记成员权限" }, "use_when": { "candidates": [ @@ -327705,7 +327648,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "remove_member_permission", + "title": "批量移除听记成员权限", "use_when": [ "当用户明确要求批量移除多个听记的成员权限。移除后,对应成员将失去对这些听记的访问权限,且已确认目标对象和所需参数时使用。" ] @@ -327734,11 +327677,8 @@ "cli_name": "replace-text", "cli_path": "minutes replace-text", "confirmation": "user_required", - "description": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换为目标文字", + "description": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换。\n区分大小写,精确匹配。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "skill-explicit", "examples": [ @@ -327838,44 +327778,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换为目标文字" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换。\n区分大小写,精确匹配。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换为目标文字" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换为目标文字" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换。\n区分大小写,精确匹配。" }, "effect": { "candidates": [ @@ -328024,22 +327942,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "replace_minutes_text" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查找替换段落和纪要中匹配的文字" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "replace_minutes_text" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "replace_minutes_text" + "source": "cobra_help", + "value": "查找替换段落和纪要中匹配的文字" }, "use_when": { "candidates": [ @@ -328408,7 +328326,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "replace_minutes_text", + "title": "查找替换段落和纪要中匹配的文字", "use_when": [ "当用户明确要求把听记中所有出现的原文字替换为目标文字,包括转写段落和纪要摘要中出现的原文字都会被替换,且已确认目标对象和所需参数时使用。" ] @@ -328436,11 +328354,8 @@ "cli_name": "replace", "cli_path": "minutes speaker replace", "confirmation": "not_required", - "description": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。", + "description": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人。\n支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -328538,44 +328453,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人。\n支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人。\n支持同时替换 nickName 和 subSpeakerNickname 两种匹配方式,并自动更新纪要、待办中的发言人信息。" }, "effect": { "candidates": [ @@ -328720,22 +328613,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "replace_speaker" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "替换发言人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "replace_speaker" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "replace_speaker" + "source": "cobra_help", + "value": "替换发言人" }, "use_when": { "candidates": [ @@ -329196,7 +329089,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "replace_speaker", + "title": "替换发言人", "use_when": [ "当用户明确要求批量替换听记转写中指定发言人,将源发言人(speakerNick)精确匹配的所有段落替换为目标发言人,且已确认目标对象和所需参数时使用。" ] @@ -329225,11 +329118,8 @@ "cli_name": "summary", "cli_path": "minutes update summary", "confirmation": "not_required", - "description": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。适用于用户手动编辑或 AI Agent 修改纪要的场景。", + "description": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。\n适用于用户手动编辑或 AI Agent 修改纪要的场景。\n\n修改纪要的完整流程(读取 -\u003e 修改 -\u003e 校验 -\u003e 写回):\n1. 先调用 get summary 获取当前纪要原文\n2. 修改时必须保留原文中所有 Markdown 图片,仅优化文本内容\n3. 写回前执行 Markdown 格式校验,确保结构合理、可渲染\n4. 调用 update summary 将修改后的完整内容写回听记", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -329327,44 +329217,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。适用于用户手动编辑或 AI Agent 修改纪要的场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。\n适用于用户手动编辑或 AI Agent 修改纪要的场景。\n\n修改纪要的完整流程(读取 -\u003e 修改 -\u003e 校验 -\u003e 写回):\n1. 先调用 get summary 获取当前纪要原文\n2. 修改时必须保留原文中所有 Markdown 图片,仅优化文本内容\n3. 写回前执行 Markdown 格式校验,确保结构合理、可渲染\n4. 调用 update summary 将修改后的完整内容写回听记" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。适用于用户手动编辑或 AI Agent 修改纪要的场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。适用于用户手动编辑或 AI Agent 修改纪要的场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成。\n适用于用户手动编辑或 AI Agent 修改纪要的场景。\n\n修改纪要的完整流程(读取 -\u003e 修改 -\u003e 校验 -\u003e 写回):\n1. 先调用 get summary 获取当前纪要原文\n2. 修改时必须保留原文中所有 Markdown 图片,仅优化文本内容\n3. 写回前执行 Markdown 格式校验,确保结构合理、可渲染\n4. 调用 update summary 将修改后的完整内容写回听记" }, "effect": { "candidates": [ @@ -329509,22 +329377,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_minutes_summary" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新纪要内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_minutes_summary" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_minutes_summary" + "source": "cobra_help", + "value": "更新纪要内容" }, "use_when": { "candidates": [ @@ -329785,7 +329653,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_minutes_summary", + "title": "更新纪要内容", "use_when": [ "当用户明确要求用传入的摘要文本全量覆盖听记的纪要内容,不触发 AI 重新生成,且已确认目标对象和所需参数时使用。" ] @@ -329814,11 +329682,8 @@ "cli_name": "title", "cli_path": "minutes update title", "confirmation": "not_required", - "description": "修改指定听记的标题名称。输入参数:taskUuid、newTitle 新的听记标题。操作成功返回更新结果状态。适用于用户对已有听记进行重命名、整理归档等场景。", + "description": "修改听记标题", "display": "AI 听记 / 会议纪要", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -329916,44 +329781,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改指定听记的标题名称。输入参数:taskUuid、newTitle 新的听记标题。操作成功返回更新结果状态。适用于用户对已有听记进行重命名、整理归档等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改听记标题" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改指定听记的标题名称。输入参数:taskUuid、newTitle 新的听记标题。操作成功返回更新结果状态。适用于用户对已有听记进行重命名、整理归档等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改指定听记的标题名称。输入参数:taskUuid、newTitle 新的听记标题。操作成功返回更新结果状态。适用于用户对已有听记进行重命名、整理归档等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "修改听记标题" }, "effect": { "candidates": [ @@ -330098,22 +329941,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "update_minutes_title" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改听记标题" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "update_minutes_title" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "update_minutes_title" + "source": "cobra_help", + "value": "修改听记标题" }, "use_when": { "candidates": [ @@ -330368,7 +330211,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "update_minutes_title", + "title": "修改听记标题", "use_when": [ "当用户明确要求修改指定听记的标题,且已确认目标对象和所需参数时使用。" ] @@ -330400,11 +330243,8 @@ "cli_name": "approve", "cli_path": "oa approval approve", "confirmation": "not_required", - "description": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。", + "description": "同意审批", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -330503,44 +330343,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "同意审批" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "同意审批" }, "effect": { "candidates": [ @@ -330687,22 +330505,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "approve_processInstance" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "同意审批" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "approve_processInstance" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "approve_processInstance" + "source": "cobra_help", + "value": "同意审批" }, "use_when": { "candidates": [ @@ -331069,7 +330887,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "approve_processInstance", + "title": "同意审批", "use_when": [ "需要同意审批时" ] @@ -331097,11 +330915,8 @@ "cli_name": "oa-comments", "cli_path": "oa approval oa-comments", "confirmation": "not_required", - "description": "用户添加审批评论", + "description": "对审批实例添加评论", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -331199,44 +331014,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用户添加审批评论" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对审批实例添加评论" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用户添加审批评论" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用户添加审批评论" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对审批实例添加评论" }, "effect": { "candidates": [ @@ -331375,22 +331168,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "dingflow_comments" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对审批实例添加评论" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "dingflow_comments" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "dingflow_comments" + "source": "cobra_help", + "value": "对审批实例添加评论" }, "use_when": { "candidates": [ @@ -331437,6 +331230,12 @@ "source": "cobra_usage", "value": "评论内容 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "text" + }, { "precedence": "default", "selected": false, @@ -331452,22 +331251,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "text" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "content" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "content" + "source": "versioned_parameter_binding", + "value": "text" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -331478,9 +331289,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -331512,7 +331323,8 @@ "value": "string" } }, - "property": "content", + "interface_description": "text", + "property": "text", "required": true, "type": "string" }, @@ -331632,7 +331444,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "dingflow_comments", + "title": "对审批实例添加评论", "use_when": [ "需要为审批实例添加评论时" ] @@ -331660,11 +331472,8 @@ "cli_name": "list-executed", "cli_path": "oa approval list-executed", "confirmation": "not_required", - "description": "获取员工已处理任务列表", + "description": "获取当前用户已经处理过的审批单列表", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -331762,44 +331571,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取员工已处理任务列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户已经处理过的审批单列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取员工已处理任务列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取员工已处理任务列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户已经处理过的审批单列表" }, "effect": { "candidates": [ @@ -331938,22 +331725,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_done_tasks" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户已经处理过的审批单列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_done_tasks" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_done_tasks" + "source": "cobra_help", + "value": "获取当前用户已经处理过的审批单列表" }, "use_when": { "candidates": [ @@ -332349,7 +332136,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_done_tasks", + "title": "获取当前用户已经处理过的审批单列表", "use_when": [ "需要查看当前用户已经处理过的审批单时" ] @@ -332377,11 +332164,8 @@ "cli_name": "list-cc", "cli_path": "oa approval list-cc", "confirmation": "not_required", - "description": "获取抄送用户的列表", + "description": "获取抄送当前用户的审批单列表", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -332479,44 +332263,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取抄送用户的列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取抄送当前用户的审批单列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取抄送用户的列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取抄送用户的列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取抄送当前用户的审批单列表" }, "effect": { "candidates": [ @@ -332655,22 +332417,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_noticed_instances" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取抄送当前用户的审批单列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_noticed_instances" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_noticed_instances" + "source": "cobra_help", + "value": "获取抄送当前用户的审批单列表" }, "use_when": { "candidates": [ @@ -333066,7 +332828,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_noticed_instances", + "title": "获取抄送当前用户的审批单列表", "use_when": [ "需要查看抄送给当前用户的审批单时" ] @@ -333097,11 +332859,8 @@ "cli_name": "detail", "cli_path": "oa approval detail", "confirmation": "not_required", - "description": "获取指定审批实例的详情信息", + "description": "获取审批实例详情", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -333199,44 +332958,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定审批实例的详情信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取审批实例详情" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定审批实例的详情信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定审批实例的详情信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取审批实例详情" }, "effect": { "candidates": [ @@ -333381,22 +333118,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_processInstance_detail" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取审批实例详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_processInstance_detail" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_processInstance_detail" + "source": "cobra_help", + "value": "获取审批实例详情" }, "use_when": { "candidates": [ @@ -333548,7 +333285,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_processInstance_detail", + "title": "获取审批实例详情", "use_when": [ "已知审批实例 ID,需要查看表单与当前状态详情时" ] @@ -333579,11 +333316,8 @@ "cli_name": "records", "cli_path": "oa approval records", "confirmation": "not_required", - "description": "获取某个审批实例的审批操作记录信息,获取的是该审批实例有哪些人做了什么操作,以及操作结果是什么", + "description": "获取审批操作记录", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -333681,44 +333415,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取某个审批实例的审批操作记录信息,获取的是该审批实例有哪些人做了什么操作,以及操作结果是什么" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取审批操作记录" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取某个审批实例的审批操作记录信息,获取的是该审批实例有哪些人做了什么操作,以及操作结果是什么" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取某个审批实例的审批操作记录信息,获取的是该审批实例有哪些人做了什么操作,以及操作结果是什么" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取审批操作记录" }, "effect": { "candidates": [ @@ -333863,22 +333575,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_processInstance_records" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取审批操作记录" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_processInstance_records" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_processInstance_records" + "source": "cobra_help", + "value": "获取审批操作记录" }, "use_when": { "candidates": [ @@ -334030,7 +333742,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_processInstance_records", + "title": "获取审批操作记录", "use_when": [ "已知审批实例 ID,需要查看审批操作历史时" ] @@ -334058,11 +333770,8 @@ "cli_name": "list-submitted", "cli_path": "oa approval list-submitted", "confirmation": "not_required", - "description": "获取已提交实例列表", + "description": "获取当前用户已发起的审批单列表", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -334160,44 +333869,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取已提交实例列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户已发起的审批单列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取已提交实例列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取已提交实例列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户已发起的审批单列表" }, "effect": { "candidates": [ @@ -334336,22 +334023,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_submitted_instances" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户已发起的审批单列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_submitted_instances" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_submitted_instances" + "source": "cobra_help", + "value": "获取当前用户已发起的审批单列表" }, "use_when": { "candidates": [ @@ -334747,7 +334434,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_submitted_instances", + "title": "获取当前用户已发起的审批单列表", "use_when": [ "需要查看当前用户已发起的审批单时" ] @@ -334779,11 +334466,8 @@ "cli_name": "list-initiated", "cli_path": "oa approval list-initiated", "confirmation": "not_required", - "description": "查询当前用户已发起的审批实例列表,查询的信息包含审批实例Id、审批实例发起时间、审批实例当前状态等基础信息", + "description": "查询审批模板下已发起的审批记录", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -334881,44 +334565,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前用户已发起的审批实例列表,查询的信息包含审批实例Id、审批实例发起时间、审批实例当前状态等基础信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询审批模板下已发起的审批记录" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前用户已发起的审批实例列表,查询的信息包含审批实例Id、审批实例发起时间、审批实例当前状态等基础信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前用户已发起的审批实例列表,查询的信息包含审批实例Id、审批实例发起时间、审批实例当前状态等基础信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询审批模板下已发起的审批记录" }, "effect": { "candidates": [ @@ -335063,22 +334725,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_initiated_instances" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询审批模板下已发起的审批记录" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_initiated_instances" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_initiated_instances" + "source": "cobra_help", + "value": "查询审批模板下已发起的审批记录" }, "use_when": { "candidates": [ @@ -335126,6 +334788,12 @@ "source": "cobra_usage", "value": "分页游标,首次传 0" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询的分页游标,如果是首次查询,该参数传0,非首次调用,传上次返回的nextToken" + }, { "precedence": "default", "selected": false, @@ -335138,19 +334806,45 @@ "source": "cobra_usage", "value": "分页游标,首次传 0" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nextToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "nextToken" }, "required": { "candidates": [ @@ -335160,6 +334854,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -335201,7 +334901,9 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页查询的分页游标,如果是首次查询,该参数传0,非首次调用,传上次返回的nextToken", + "interface_type": "number", + "property": "nextToken", "required": false, "type": "string" }, @@ -335368,6 +335070,12 @@ "source": "cobra_usage", "value": "每页大小,最大 20" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页查询的每页大小,最大值20" + }, { "precedence": "default", "selected": false, @@ -335380,19 +335088,45 @@ "source": "cobra_usage", "value": "每页大小,最大 20" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -335402,6 +335136,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -335443,7 +335183,9 @@ "value": "string" } }, - "property": "limit", + "interface_description": "分页查询的每页大小,最大值20", + "interface_type": "number", + "property": "maxResults", "required": false, "type": "string" }, @@ -335708,7 +335450,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_initiated_instances", + "title": "查询审批模板下已发起的审批记录", "use_when": [ "已知审批模板 processCode,需要按时间查询其发起记录时" ] @@ -335740,11 +335482,8 @@ "cli_name": "list-pending", "cli_path": "oa approval list-pending", "confirmation": "not_required", - "description": "查询当前用户待处理的审批单列表,返回每条审批单的名称、唯一编码(如审批实例 ID)、处理跳转链接(用于一键进入审批页面)等关键信息。结果仅包含用户作为审批人且尚未处理的审批事项,适用于工作台待办集成、审批提醒等场景。", + "description": "查询待我处理的审批", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -335842,44 +335581,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前用户待处理的审批单列表,返回每条审批单的名称、唯一编码(如审批实例 ID)、处理跳转链接(用于一键进入审批页面)等关键信息。结果仅包含用户作为审批人且尚未处理的审批事项,适用于工作台待办集成、审批提醒等场景。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待我处理的审批" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前用户待处理的审批单列表,返回每条审批单的名称、唯一编码(如审批实例 ID)、处理跳转链接(用于一键进入审批页面)等关键信息。结果仅包含用户作为审批人且尚未处理的审批事项,适用于工作台待办集成、审批提醒等场景。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前用户待处理的审批单列表,返回每条审批单的名称、唯一编码(如审批实例 ID)、处理跳转链接(用于一键进入审批页面)等关键信息。结果仅包含用户作为审批人且尚未处理的审批事项,适用于工作台待办集成、审批提醒等场景。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询待我处理的审批" }, "effect": { "candidates": [ @@ -336024,22 +335741,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_pending_approvals" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待我处理的审批" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_pending_approvals" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_pending_approvals" + "source": "cobra_help", + "value": "查询待我处理的审批" }, "use_when": { "candidates": [ @@ -336711,7 +336428,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_pending_approvals", + "title": "查询待我处理的审批", "use_when": [ "需要查看当前用户待处理的审批单列表时" ] @@ -336742,11 +336459,8 @@ "cli_name": "tasks", "cli_path": "oa approval tasks", "confirmation": "not_required", - "description": "查询待我审批的任务Id,获取任务Id之后,可以执行同意、拒绝审批单操作。", + "description": "查询待我审批的任务 ID", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -336844,44 +336558,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询待我审批的任务Id,获取任务Id之后,可以执行同意、拒绝审批单操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待我审批的任务 ID" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询待我审批的任务Id,获取任务Id之后,可以执行同意、拒绝审批单操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询待我审批的任务Id,获取任务Id之后,可以执行同意、拒绝审批单操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询待我审批的任务 ID" }, "effect": { "candidates": [ @@ -337026,22 +336718,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "query_pending_tasks" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待我审批的任务 ID" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "query_pending_tasks" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "query_pending_tasks" + "source": "cobra_help", + "value": "查询待我审批的任务 ID" }, "use_when": { "candidates": [ @@ -337193,7 +336885,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "query_pending_tasks", + "title": "查询待我审批的任务 ID", "use_when": [ "已知审批实例 ID,需要取得当前用户待办 taskId 时" ] @@ -337224,11 +336916,8 @@ "cli_name": "list-forms", "cli_path": "oa approval list-forms", "confirmation": "not_required", - "description": "获取当前用户可见的审批表单列表,可获取审批表单的processCode。", + "description": "获取当前用户可见的审批表单列表", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -337326,44 +337015,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户可见的审批表单列表,可获取审批表单的processCode。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户可见的审批表单列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户可见的审批表单列表,可获取审批表单的processCode。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户可见的审批表单列表,可获取审批表单的processCode。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户可见的审批表单列表" }, "effect": { "candidates": [ @@ -337508,22 +337175,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_user_visible_process" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户可见的审批表单列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_user_visible_process" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_user_visible_process" + "source": "cobra_help", + "value": "获取当前用户可见的审批表单列表" }, "use_when": { "candidates": [ @@ -337822,7 +337489,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_user_visible_process", + "title": "获取当前用户可见的审批表单列表", "use_when": [ "需要查看当前用户可发起或可见的审批表单时" ] @@ -337850,11 +337517,8 @@ "cli_name": "oa-cc-noticer", "cli_path": "oa approval oa-cc-noticer", "confirmation": "not_required", - "description": "抄送审批人", + "description": "对审批实例进行抄送", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -337953,44 +337617,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "抄送审批人" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对审批实例进行抄送" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "抄送审批人" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "抄送审批人" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对审批实例进行抄送" }, "effect": { "candidates": [ @@ -338131,22 +337773,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "oa_cc_noticer" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对审批实例进行抄送" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "oa_cc_noticer" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "oa_cc_noticer" + "source": "cobra_help", + "value": "对审批实例进行抄送" }, "use_when": { "candidates": [ @@ -338393,6 +338035,12 @@ "source": "cobra_usage", "value": "抄送用户 ID 列表,多个用逗号分隔 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "userList" + }, { "precedence": "default", "selected": false, @@ -338405,25 +338053,57 @@ "source": "cobra_usage", "value": "抄送用户 ID 列表,多个用逗号分隔 (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userList" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userList" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -338434,9 +338114,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -338468,7 +338148,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "userList", + "interface_type": "array", + "property": "userList", "required": true, "type": "string" } @@ -338479,7 +338161,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "oa_cc_noticer", + "title": "对审批实例进行抄送", "use_when": [ "需要为审批实例添加抄送人时" ] @@ -338507,11 +338189,8 @@ "cli_name": "redirect-task", "cli_path": "oa approval redirect-task", "confirmation": "not_required", - "description": "转交审批任务", + "description": "转交审批任务给其他人", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -338610,44 +338289,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "转交审批任务" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转交审批任务给其他人" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "转交审批任务" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "转交审批任务" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "转交审批任务给其他人" }, "effect": { "candidates": [ @@ -338788,22 +338445,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "redirect_task" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "转交审批任务给其他人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "redirect_task" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "redirect_task" + "source": "cobra_help", + "value": "转交审批任务给其他人" }, "use_when": { "candidates": [ @@ -339143,7 +338800,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "redirect_task", + "title": "转交审批任务给其他人", "use_when": [ "需要转交审批任务时" ] @@ -339176,11 +338833,8 @@ "cli_name": "reject", "cli_path": "oa approval reject", "confirmation": "user_required", - "description": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。", + "description": "拒绝审批", "display": "OA 审批 / 同意 / 拒绝 / 撤销", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "skill-explicit", "examples": [ @@ -339280,44 +338934,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拒绝审批" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "处理某个需要我处理的实例任务,拒绝审批实例任务,所需要的参数processInstanceId可以从list_pending_approvals工具获取。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "拒绝审批" }, "effect": { "candidates": [ @@ -339466,22 +339098,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "reject_processInstance" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "拒绝审批" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "reject_processInstance" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "reject_processInstance" + "source": "cobra_help", + "value": "拒绝审批" }, "use_when": { "candidates": [ @@ -339848,7 +339480,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "reject_processInstance", + "title": "拒绝审批", "use_when": [ "用户明确要求拒绝审批时" ] @@ -339881,7 +339513,7 @@ "cli_name": "revoke", "cli_path": "oa approval revoke", "confirmation": "user_required", - "description": "撤销当前用户已经发起的审批实例,需要的参数processInstanceId可以从", + "description": "撤销已发起的审批", "display": "OA 审批 / 同意 / 拒绝 / 撤销", "effect": "write", "effect_source": "skill-explicit", @@ -339988,22 +339620,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "撤销当前用户已经发起的审批实例,需要的参数processInstanceId可以从" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "撤销已发起的审批" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "撤销当前用户已经发起的审批实例,需要的参数processInstanceId可以从" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "撤销当前用户已经发起的审批实例,需要的参数processInstanceId可以从" + "source": "cobra_help", + "value": "撤销已发起的审批" }, "effect": { "candidates": [ @@ -340159,22 +339791,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "revoke_processInstance" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "撤销已发起的审批" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "revoke_processInstance" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "revoke_processInstance" + "source": "cobra_help", + "value": "撤销已发起的审批" }, "use_when": { "candidates": [ @@ -340417,7 +340049,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "revoke_processInstance", + "title": "撤销已发起的审批", "use_when": [ "用户明确要求撤销已发起的审批时" ] @@ -340457,11 +340089,8 @@ ] ] }, - "description": "按可信上下文为当前用户执行 PAT 批量授权,支持 dryRun 和 pending flow。", + "description": "授予指定 scope 的操作权限。\n\nscope 格式: \u003cproduct\u003e.\u003centity\u003e:\u003cpermission\u003e\n 例: aitable.record:query chat.message:list calendar.event:get\n\ngrantType 规则:\n once 一次性,执行一次后自动失效\n session 当前会话有效,需要 --session-id\n permanent 永久有效(默认)\n\n批量授权:\n dws pat chmod 支持一次传多个 scope 直接批量授予。\n 也支持 --products / --product 按产品编码批量展开 scope 模板,\n --domains / --domain 按产品域批量展开 scope 模板,\n --recommend 使用服务端推荐 scope 集合。\n 使用产品 / 域 / 推荐集合时,CLI 会先生成 batch plan,确认\n selected / skipped / pending,再对 selected scopes 执行 batch grant;\n --dry-run 只返回授权计划,不写入授权。真正执行批量授权必须显式\n 添加 --yes;未加 --yes 时 CLI 会阻断并提示 agent 先确认。\n\nagentCode 配置:\n 可通过 --agentCode 或 DINGTALK_DWS_AGENTCODE\n 指定;未传 agentCode 时,CLI 会省略该字段并由服务端默认兜底。", "display": "行为授权管理", - "dry_run": { - "preview_kind": "request" - }, "effect": "write", "effect_source": "skill-comment", "examples": [ @@ -340568,44 +340197,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "按可信上下文为当前用户执行 PAT 批量授权,支持 dryRun 和 pending flow。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "授予指定 scope 的操作权限。\n\nscope 格式: \u003cproduct\u003e.\u003centity\u003e:\u003cpermission\u003e\n 例: aitable.record:query chat.message:list calendar.event:get\n\ngrantType 规则:\n once 一次性,执行一次后自动失效\n session 当前会话有效,需要 --session-id\n permanent 永久有效(默认)\n\n批量授权:\n dws pat chmod 支持一次传多个 scope 直接批量授予。\n 也支持 --products / --product 按产品编码批量展开 scope 模板,\n --domains / --domain 按产品域批量展开 scope 模板,\n --recommend 使用服务端推荐 scope 集合。\n 使用产品 / 域 / 推荐集合时,CLI 会先生成 batch plan,确认\n selected / skipped / pending,再对 selected scopes 执行 batch grant;\n --dry-run 只返回授权计划,不写入授权。真正执行批量授权必须显式\n 添加 --yes;未加 --yes 时 CLI 会阻断并提示 agent 先确认。\n\nagentCode 配置:\n 可通过 --agentCode 或 DINGTALK_DWS_AGENTCODE\n 指定;未传 agentCode 时,CLI 会省略该字段并由服务端默认兜底。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "按可信上下文为当前用户执行 PAT 批量授权,支持 dryRun 和 pending flow。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按可信上下文为当前用户执行 PAT 批量授权,支持 dryRun 和 pending flow。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "request" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "授予指定 scope 的操作权限。\n\nscope 格式: \u003cproduct\u003e.\u003centity\u003e:\u003cpermission\u003e\n 例: aitable.record:query chat.message:list calendar.event:get\n\ngrantType 规则:\n once 一次性,执行一次后自动失效\n session 当前会话有效,需要 --session-id\n permanent 永久有效(默认)\n\n批量授权:\n dws pat chmod 支持一次传多个 scope 直接批量授予。\n 也支持 --products / --product 按产品编码批量展开 scope 模板,\n --domains / --domain 按产品域批量展开 scope 模板,\n --recommend 使用服务端推荐 scope 集合。\n 使用产品 / 域 / 推荐集合时,CLI 会先生成 batch plan,确认\n selected / skipped / pending,再对 selected scopes 执行 batch grant;\n --dry-run 只返回授权计划,不写入授权。真正执行批量授权必须显式\n 添加 --yes;未加 --yes 时 CLI 会阻断并提示 agent 先确认。\n\nagentCode 配置:\n 可通过 --agentCode 或 DINGTALK_DWS_AGENTCODE\n 指定;未传 agentCode 时,CLI 会省略该字段并由服务端默认兜底。" }, "effect": { "candidates": [ @@ -340762,22 +340369,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量授权" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "授予指定权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量授权" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量授权" + "source": "cobra_help", + "value": "授予指定权限" }, "use_when": { "candidates": [ @@ -340928,16 +340535,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate/two-stage wrapper: --domain is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "domain" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "domain" + "review_reason": "aggregate/two-stage wrapper: --domain is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -340988,7 +340603,6 @@ "value": "array" } }, - "property": "domain", "required": false, "type": "array" }, @@ -341018,16 +340632,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate/two-stage wrapper: --domains is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "domains" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "domains" + "review_reason": "aggregate/two-stage wrapper: --domains is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -341078,7 +340700,6 @@ "value": "array" } }, - "property": "domains", "required": false, "type": "array" }, @@ -341242,16 +340863,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate/two-stage wrapper: --product is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "product" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "product" + "review_reason": "aggregate/two-stage wrapper: --product is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -341302,7 +340931,6 @@ "value": "array" } }, - "property": "product", "required": false, "type": "array" }, @@ -341332,16 +340960,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "aggregate/two-stage wrapper: --products is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "products" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "products" + "review_reason": "aggregate/two-stage wrapper: --products is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -341392,7 +341028,6 @@ "value": "array" } }, - "property": "products", "required": false, "type": "array" }, @@ -341422,16 +341057,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "two-stage conditional wrapper: --recommend is sent to pat.batch_plan, and pat.batch_grant receives only the plan-selected scopes; it is not a pat.batch_grant RPC property", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "recommend" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "recommend" + "review_reason": "two-stage conditional wrapper: --recommend is sent to pat.batch_plan, and pat.batch_grant receives only the plan-selected scopes; it is not a pat.batch_grant RPC property", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -341482,7 +341125,6 @@ "value": "boolean" } }, - "property": "recommend", "required": false, "type": "boolean" }, @@ -341600,7 +341242,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "批量授权", + "title": "授予指定权限", "use_when": [ "需要预览或授予一次性、会话或永久 PAT 行为 scope 时" ] @@ -341721,13 +341363,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "配置 PAT 授权时是否打开浏览器" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "配置 PAT 授权时是否打开浏览器" @@ -341878,13 +341520,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "配置 PAT 授权时是否打开浏览器" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "配置 PAT 授权时是否打开浏览器" @@ -342177,11 +341819,8 @@ ] ] }, - "description": "创建日志", + "description": "按模版提交一份日报。--contents 为 JSON 数组,每项需含 key、sort、content、contentType、type,\n与远程 create_report 一致;可先通过 report template list / template get 取得 templateId 与控件定义。\n\n长内容(含中文换行 / Markdown)建议走 --contents-file 避免 shell 引号问题;\n也可用 --contents - 从 stdin 读取。\n提交成功后会自动反查详情,并在返回中追加 dingtalkOpenUrl / dingtalkOpenMarkdownLink 跳转链接字段。", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -342288,44 +341927,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建日志" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按模版提交一份日报。--contents 为 JSON 数组,每项需含 key、sort、content、contentType、type,\n与远程 create_report 一致;可先通过 report template list / template get 取得 templateId 与控件定义。\n\n长内容(含中文换行 / Markdown)建议走 --contents-file 避免 shell 引号问题;\n也可用 --contents - 从 stdin 读取。\n提交成功后会自动反查详情,并在返回中追加 dingtalkOpenUrl / dingtalkOpenMarkdownLink 跳转链接字段。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建日志" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建日志" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "按模版提交一份日报。--contents 为 JSON 数组,每项需含 key、sort、content、contentType、type,\n与远程 create_report 一致;可先通过 report template list / template get 取得 templateId 与控件定义。\n\n长内容(含中文换行 / Markdown)建议走 --contents-file 避免 shell 引号问题;\n也可用 --contents - 从 stdin 读取。\n提交成功后会自动反查详情,并在返回中追加 dingtalkOpenUrl / dingtalkOpenMarkdownLink 跳转链接字段。" }, "effect": { "candidates": [ @@ -342472,22 +342089,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_report" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "提交一份新日报(按模版)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_report" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_report" + "source": "cobra_help", + "value": "提交一份新日报(按模版)" }, "use_when": { "candidates": [ @@ -342721,16 +342338,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local JSON file input used to populate contents", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "contentsFile" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "contentsFile" + "review_reason": "local JSON file input used to populate contents", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -342781,7 +342406,6 @@ "value": "string" } }, - "property": "contentsFile", "required": false, "type": "string" }, @@ -343216,7 +342840,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_report", + "title": "提交一份新日报(按模版)", "use_when": [ "已读取模板字段定义,需要按模板提交日报或周报时" ] @@ -343247,11 +342871,8 @@ "cli_name": "list", "cli_path": "report template list", "confirmation": "not_required", - "description": "获取当前员工可使用的日志模版信息,包含日志模板的名称、模板Id等", + "description": "获取当前用户可用的日志模版列表", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -343349,44 +342970,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前员工可使用的日志模版信息,包含日志模板的名称、模板Id等" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户可用的日志模版列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前员工可使用的日志模版信息,包含日志模板的名称、模板Id等" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前员工可使用的日志模版信息,包含日志模板的名称、模板Id等" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户可用的日志模版列表" }, "effect": { "candidates": [ @@ -343531,22 +343130,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_available_report_templates" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户可用的日志模版列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_available_report_templates" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_available_report_templates" + "source": "cobra_help", + "value": "获取当前用户可用的日志模版列表" }, "use_when": { "candidates": [ @@ -343588,7 +343187,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_available_report_templates", + "title": "获取当前用户可用的日志模版列表", "use_when": [ "提交日志前,需要先列出当前用户可用模板时" ] @@ -343621,11 +343220,8 @@ "cli_name": "list", "cli_path": "report inbox list", "confirmation": "not_required", - "description": "查询当前人收到的日志列表", + "description": "列出我收到的日报", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -343723,44 +343319,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前人收到的日志列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出我收到的日报" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前人收到的日志列表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前人收到的日志列表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出我收到的日报" }, "effect": { "candidates": [ @@ -343905,22 +343479,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前人收到的日志列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出我收到的日报" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前人收到的日志列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前人收到的日志列表" + "source": "cobra_help", + "value": "列出我收到的日报" }, "use_when": { "candidates": [ @@ -344605,7 +344179,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查询当前人收到的日志列表", + "title": "列出我收到的日报", "use_when": [ "需要列出别人发给当前用户的日志时" ] @@ -344639,11 +344213,8 @@ "cli_name": "get", "cli_path": "report entry get", "confirmation": "not_required", - "description": "获取指定一篇日志的详情信息", + "description": "读取单份日报正文(含字段明细 + 钉钉跳转链接)", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -344741,44 +344312,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定一篇日志的详情信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单份日报正文(含字段明细 + 钉钉跳转链接)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定一篇日志的详情信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定一篇日志的详情信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "读取单份日报正文(含字段明细 + 钉钉跳转链接)" }, "effect": { "candidates": [ @@ -344923,22 +344472,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_report_entry_details" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单份日报正文(含字段明细 + 钉钉跳转链接)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_report_entry_details" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_report_entry_details" + "source": "cobra_help", + "value": "读取单份日报正文(含字段明细 + 钉钉跳转链接)" }, "use_when": { "candidates": [ @@ -345090,7 +344639,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_report_entry_details", + "title": "读取单份日报正文(含字段明细 + 钉钉跳转链接)", "use_when": [ "已知 reportId,需要读取单份日志正文和钉钉跳转链接时" ] @@ -345124,11 +344673,8 @@ "cli_name": "stats", "cli_path": "report entry stats", "confirmation": "not_required", - "description": "获取日志统计数据,包括评论数量、点赞数量、已读数等", + "description": "读取单份日报的已读统计", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -345226,44 +344772,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取日志统计数据,包括评论数量、点赞数量、已读数等" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单份日报的已读统计" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取日志统计数据,包括评论数量、点赞数量、已读数等" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取日志统计数据,包括评论数量、点赞数量、已读数等" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "读取单份日报的已读统计" }, "effect": { "candidates": [ @@ -345408,22 +344932,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定日志的统计数据" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单份日报的已读统计" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定日志的统计数据" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定日志的统计数据" + "source": "cobra_help", + "value": "读取单份日报的已读统计" }, "use_when": { "candidates": [ @@ -345575,7 +345099,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取指定日志的统计数据", + "title": "读取单份日报的已读统计", "use_when": [ "已知 reportId,需要查看该日志已读统计时" ] @@ -345609,11 +345133,8 @@ "cli_name": "list", "cli_path": "report outbox list", "confirmation": "not_required", - "description": "查询当前人创建的日志详情列表,包含日志的内容、日志名称、创建时间、访问地址等信息", + "description": "列出我发出的日报", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -345712,44 +345233,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询当前人创建的日志详情列表,包含日志的内容、日志名称、创建时间、访问地址等信息" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出我发出的日报" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询当前人创建的日志详情列表,包含日志的内容、日志名称、创建时间、访问地址等信息" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询当前人创建的日志详情列表,包含日志的内容、日志名称、创建时间、访问地址等信息" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出我发出的日报" }, "effect": { "candidates": [ @@ -345896,22 +345395,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_send_report_list" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出我发出的日报" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_send_report_list" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_send_report_list" + "source": "cobra_help", + "value": "列出我发出的日报" }, "use_when": { "candidates": [ @@ -346868,7 +346367,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_send_report_list", + "title": "列出我发出的日报", "use_when": [ "需要列出当前用户已发出的日志时" ] @@ -346902,11 +346401,8 @@ "cli_name": "get", "cli_path": "report template get", "confirmation": "not_required", - "description": "获取当前员工可使用的日志模版详情信息,包括日志模板Id、日志模板内字段的名称、字段类型、字段排序等", + "description": "读取单个日志模版的字段定义", "display": "钉钉日志(OA 周报应用 / 日志模版填报)", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -347004,44 +346500,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前员工可使用的日志模版详情信息,包括日志模板Id、日志模板内字段的名称、字段类型、字段排序等" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单个日志模版的字段定义" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前员工可使用的日志模版详情信息,包括日志模板Id、日志模板内字段的名称、字段类型、字段排序等" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前员工可使用的日志模版详情信息,包括日志模板Id、日志模板内字段的名称、字段类型、字段排序等" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "读取单个日志模版的字段定义" }, "effect": { "candidates": [ @@ -347186,22 +346660,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_template_details_by_name" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取单个日志模版的字段定义" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_template_details_by_name" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_template_details_by_name" + "source": "cobra_help", + "value": "读取单个日志模版的字段定义" }, "use_when": { "candidates": [ @@ -347353,7 +346827,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_template_details_by_name", + "title": "读取单个日志模版的字段定义", "use_when": [ "已知模板名称,需要读取字段定义以准备提交日志时" ] @@ -347379,11 +346853,8 @@ "cli_name": "add-dimension", "cli_path": "sheet add-dimension", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表末尾追加空行或空列。\r\n\r\n参数说明:\r\n- dimension:维度类型,ROWS 表示追加行,COLUMNS 表示追加列\r\n- length:追加数量,必须为正整数", + "description": "在钉钉表格的指定工作表末尾追加空行或空列。\n\n参数说明:\n --dimension 维度类型,ROWS 表示追加行,COLUMNS 表示追加列\n --length 追加数量,正整数(\u003e= 1),最多 5000", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -347481,44 +346952,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表末尾追加空行或空列。\r\n\r\n参数说明:\r\n- dimension:维度类型,ROWS 表示追加行,COLUMNS 表示追加列\r\n- length:追加数量,必须为正整数" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格的指定工作表末尾追加空行或空列。\n\n参数说明:\n --dimension 维度类型,ROWS 表示追加行,COLUMNS 表示追加列\n --length 追加数量,正整数(\u003e= 1),最多 5000" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表末尾追加空行或空列。\r\n\r\n参数说明:\r\n- dimension:维度类型,ROWS 表示追加行,COLUMNS 表示追加列\r\n- length:追加数量,必须为正整数" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格的指定工作表末尾追加空行或空列。\r\n\r\n参数说明:\r\n- dimension:维度类型,ROWS 表示追加行,COLUMNS 表示追加列\r\n- length:追加数量,必须为正整数" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格的指定工作表末尾追加空行或空列。\n\n参数说明:\n --dimension 维度类型,ROWS 表示追加行,COLUMNS 表示追加列\n --length 追加数量,正整数(\u003e= 1),最多 5000" }, "effect": { "candidates": [ @@ -347657,22 +347106,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "追加行列" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在末尾追加空行或空列" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "追加行列" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "追加行列" + "source": "cobra_help", + "value": "在末尾追加空行或空列" }, "use_when": { "candidates": [ @@ -347975,6 +347424,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -347990,22 +347445,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -348016,9 +347483,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -348050,7 +347517,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -348164,7 +347632,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "追加行列", + "title": "在末尾追加空行或空列", "use_when": [ "当用户明确要求在钉钉表格的指定工作表末尾追加空行或空列,且已确认目标对象和所需参数时使用。" ] @@ -348191,11 +347659,8 @@ "cli_name": "append", "cli_path": "sheet append", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表末尾追加若干行数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 values 传入要追加的数据。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\r\n如果工作表为空,数据将从第一行开始写入。\r\n\r\nvalues 为二维数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\r\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\r\n\r\n返回追加数据所在的单元格范围(A1 表示法)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可追加。不支持跨组织操作。", + "description": "在钉钉电子表格的指定工作表末尾追加若干行数据。\n\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\n如果工作表为空,数据将从第一行开始写入。\n\n--values 为二维 JSON 数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -348293,44 +347758,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表末尾追加若干行数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 values 传入要追加的数据。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\r\n如果工作表为空,数据将从第一行开始写入。\r\n\r\nvalues 为二维数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\r\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\r\n\r\n返回追加数据所在的单元格范围(A1 表示法)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可追加。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉电子表格的指定工作表末尾追加若干行数据。\n\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\n如果工作表为空,数据将从第一行开始写入。\n\n--values 为二维 JSON 数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表末尾追加若干行数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 values 传入要追加的数据。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\r\n如果工作表为空,数据将从第一行开始写入。\r\n\r\nvalues 为二维数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\r\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\r\n\r\n返回追加数据所在的单元格范围(A1 表示法)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可追加。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉电子表格的指定工作表末尾追加若干行数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 values 传入要追加的数据。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\r\n如果工作表为空,数据将从第一行开始写入。\r\n\r\nvalues 为二维数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\r\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\r\n\r\n返回追加数据所在的单元格范围(A1 表示法)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可追加。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉电子表格的指定工作表末尾追加若干行数据。\n\n系统会自动定位到工作表中最后一行有数据的位置,在其下方插入新行数据。\n如果工作表为空,数据将从第一行开始写入。\n\n--values 为二维 JSON 数组,外层数组的每个元素代表一行,内层数组的每个元素代表该行中的一个单元格值。\n追加的数据列数应与工作表已有数据的列数保持一致,以确保数据对齐。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -348469,22 +347912,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "追加行" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在工作表末尾追加数据" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "追加行" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "追加行" + "source": "cobra_help", + "value": "在工作表末尾追加数据" }, "use_when": { "candidates": [ @@ -348530,6 +347973,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -348545,22 +347994,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -348571,9 +348032,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -348605,7 +348066,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -348843,7 +348305,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "追加行", + "title": "在工作表末尾追加数据", "use_when": [ "当用户明确要求在钉钉电子表格的指定工作表末尾追加若干行数据,且已确认目标对象和所需参数时使用。" ] @@ -348854,6 +348316,8 @@ "cobra-help:dws sheet batch-update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-batch-operations.md" @@ -348867,13 +348331,10 @@ "canonical_path": "sheet.batch_update", "cli_name": "batch-update", "cli_path": "sheet batch-update", - "confirmation": "not_required", - "description": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md", + "confirmation": "user_required", + "description": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n由于子操作可包含清除、删除等破坏性操作,真实执行必须获得用户确认后加 --yes。\n使用 --dry-run 可预览翻译后的完整请求,不需要 --yes,也不会调用远程接口。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", + "effect": "destructive", "effect_source": "agent-hint", "examples": [ "dws sheet batch-update --node NODE_ID --operations '[\n{\"toolName\":\"range clear\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B3\",\"type\":\"content\"}},\n{\"toolName\":\"range update\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1\",\"values\":[[{\"type\":\"text\",\"text\":\"hello\"}]]}},\n{\"toolName\":\"merge-cells\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B1\",\"merge-type\":\"mergeAll\"}}\n]'" @@ -348898,15 +348359,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -348948,10 +348411,17 @@ "confirmation": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "not_required" + "value": "user_required" }, { "precedence": "inference_or_default", @@ -348960,54 +348430,40 @@ "value": "not_required" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", - "value": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md" + "value": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n由于子操作可包含清除、删除等破坏性操作,真实执行必须获得用户确认后加 --yes。\n使用 --dry-run 可预览翻译后的完整请求,不需要 --yes,也不会调用远程接口。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", - "value": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "value": "将多个写操作打包为一次原子请求执行。\n\n默认严格事务模式:任一子操作失败则整批回滚。\n传 --continue-on-error 切换为宽松模式(遇失败继续执行)。\n由于子操作可包含清除、删除等破坏性操作,真实执行必须获得用户确认后加 --yes。\n使用 --dry-run 可预览翻译后的完整请求,不需要 --yes,也不会调用远程接口。\n\ntoolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。\nCLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。\n\n支持的 CLI 命令名:\n range clear / range update / merge-cells / unmerge-cells / update-dimension\n range fill / range copy-to / add-dimension / delete-dimension / move-dimension\n group-dimension / ungroup-dimension\n set-dropdown / delete-dropdown / csv-put / delete-float-image\n\n注意:batch-update 中 group-dimension 适合默认展开分组;需要 --group-state fold 时请使用独立\ndws sheet group-dimension 命令。\n\n--operations 是 JSON 数组,每项包含:\n toolName CLI 命令名(如 \"range clear\", \"range update\")\n input 该命令的入参(不含 --node),键用 flag 名去掉 --\n\n完整映射表见:\n dingtalk-workspace/references/products/sheet/sheet-batch-operations.md" }, "effect": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "write" + "value": "destructive" }, { "precedence": "inference_or_default", @@ -349016,10 +348472,11 @@ "value": "write" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "write" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" }, "examples": { "candidates": [ @@ -349044,8 +348501,15 @@ "idempotency": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "unknown" }, @@ -349056,53 +348520,58 @@ "value": "unknown" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -349114,6 +348583,13 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true + }, { "precedence": "unreviewed_explicit", "selected": false, @@ -349130,10 +348606,17 @@ "risk": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "medium" + "value": "high" }, { "precedence": "inference_or_default", @@ -349142,21 +348625,22 @@ "value": "medium" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "medium" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "批量执行多个写操作(原子事务)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "批量执行多个写操作(原子事务)" @@ -349184,8 +348668,8 @@ }, "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "batch_update", "parameter_count": 3, @@ -349216,16 +348700,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --continue-on-error is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "continueOnError" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "continueOnError" + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --continue-on-error is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -349276,7 +348768,6 @@ "value": "boolean" } }, - "property": "continueOnError", "required": false, "type": "boolean" }, @@ -349306,16 +348797,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -349366,12 +348865,12 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, "operations": { "description": "操作数组 JSON (必填,每项 {toolName, input})", + "example": "[{\"toolName\":\"range clear\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B2\",\"type\":\"content\"}}]", "field_provenance": { "description": { "candidates": [ @@ -349393,19 +348892,67 @@ "source": "cobra_usage", "value": "操作数组 JSON (必填,每项 {toolName, input})" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "[{\"toolName\":\"range clear\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B2\",\"type\":\"content\"}}]" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "[{\"toolName\":\"range clear\",\"input\":{\"sheet-id\":\"Sheet1\",\"range\":\"A1:B2\",\"type\":\"content\"}}]" + }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "json" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --operations is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "operations" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "operations" + "review_reason": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --operations is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -349456,7 +349003,7 @@ "value": "string" } }, - "property": "operations", + "format": "json", "required": true, "type": "string" } @@ -349465,7 +349012,7 @@ "primary_cli_path": "sheet batch-update", "product_id": "sheet", "reviewed": true, - "risk": "medium", + "risk": "high", "source": "reviewed_command_registry", "title": "批量执行多个写操作(原子事务)", "use_when": [ @@ -349478,6 +349025,7 @@ "cobra-help:dws sheet chart create --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -349494,9 +349042,6 @@ "confirmation": "not_required", "description": "在钉钉电子表格的指定工作表中创建一个浮动图表。\n\n--properties 为 JSON 格式,包含 position(锚点位置)、dimensions(尺寸)、chart(图表配置)三个必填字段,\n以及可选的 offset(偏移量)。支持 stdin heredoc 和 @file 两种传入方式。\n\nchart.type 支持: column(柱形图)、bar(条形图)、columnStacked(堆积柱形图)、barStacked(堆积条形图)、\nline(折线图)、lineStacked(堆积折线图)、area(面积图)、areaStacked(堆积面积图)、\nareaPercentStacked(百分比堆积面积图)、pie(饼图)、doughnut(环形图)、scatter(散点图)、\nradar(雷达图)。\nchart.series[].value / chart.series[].name / chart.category 使用 A1 区域表示法(如 \"A2:B10\"),\n不指定 sheet 前缀时默认使用 --sheet-id 的值。\nposition.col 使用列字母表示法(如 \"A\"、\"AA\"),不支持数字形式。\n\n创建成功后返回新图表的完整信息,包含系统分配的 chart-id。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -349522,15 +349067,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -349592,39 +349139,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "在钉钉电子表格的指定工作表中创建一个浮动图表。\n\n--properties 为 JSON 格式,包含 position(锚点位置)、dimensions(尺寸)、chart(图表配置)三个必填字段,\n以及可选的 offset(偏移量)。支持 stdin heredoc 和 @file 两种传入方式。\n\nchart.type 支持: column(柱形图)、bar(条形图)、columnStacked(堆积柱形图)、barStacked(堆积条形图)、\nline(折线图)、lineStacked(堆积折线图)、area(面积图)、areaStacked(堆积面积图)、\nareaPercentStacked(百分比堆积面积图)、pie(饼图)、doughnut(环形图)、scatter(散点图)、\nradar(雷达图)。\nchart.series[].value / chart.series[].name / chart.category 使用 A1 区域表示法(如 \"A2:B10\"),\n不指定 sheet 前缀时默认使用 --sheet-id 的值。\nposition.col 使用列字母表示法(如 \"A\"、\"AA\"),不支持数字形式。\n\n创建成功后返回新图表的完整信息,包含系统分配的 chart-id。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "在钉钉电子表格的指定工作表中创建一个浮动图表。\n\n--properties 为 JSON 格式,包含 position(锚点位置)、dimensions(尺寸)、chart(图表配置)三个必填字段,\n以及可选的 offset(偏移量)。支持 stdin heredoc 和 @file 两种传入方式。\n\nchart.type 支持: column(柱形图)、bar(条形图)、columnStacked(堆积柱形图)、barStacked(堆积条形图)、\nline(折线图)、lineStacked(堆积折线图)、area(面积图)、areaStacked(堆积面积图)、\nareaPercentStacked(百分比堆积面积图)、pie(饼图)、doughnut(环形图)、scatter(散点图)、\nradar(雷达图)。\nchart.series[].value / chart.series[].name / chart.category 使用 A1 区域表示法(如 \"A2:B10\"),\n不指定 sheet 前缀时默认使用 --sheet-id 的值。\nposition.col 使用列字母表示法(如 \"A\"、\"AA\"),不支持数字形式。\n\n创建成功后返回新图表的完整信息,包含系统分配的 chart-id。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -349688,45 +349213,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -349774,13 +349303,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建浮动图表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建浮动图表" @@ -349809,8 +349338,8 @@ "group": "chart", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "chart_create", "parameter_count": 3, @@ -349841,16 +349370,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -349901,12 +349438,12 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, "properties": { "description": "图表完整配置 JSON (必填,含 position/dimensions/chart)", + "example": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}", "field_provenance": { "description": { "candidates": [ @@ -349928,19 +349465,67 @@ "source": "cobra_usage", "value": "图表完整配置 JSON (必填,含 position/dimensions/chart)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}" + }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "json" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "properties" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "properties" + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -349991,7 +349576,7 @@ "value": "string" } }, - "property": "properties", + "format": "json", "required": true, "type": "string" }, @@ -350021,16 +349606,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -350081,7 +349674,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -350103,6 +349695,7 @@ "cobra-help:dws sheet chart delete --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", @@ -350145,15 +349738,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -350196,7 +349791,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -350216,20 +349811,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除钉钉电子表格中指定的浮动图表。\n\n注意: 这是一个危险操作,删除后图表不可恢复。执行前需要确认,或传入 --yes 跳过确认。\nchart-id 可通过 chart list 获取。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除钉钉电子表格中指定的浮动图表。\n\n注意: 这是一个危险操作,删除后图表不可恢复。执行前需要确认,或传入 --yes 跳过确认。\nchart-id 可通过 chart list 获取。" @@ -350238,7 +349833,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -350258,7 +349853,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -350286,7 +349881,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -350306,52 +349901,56 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -350365,7 +349964,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -350387,7 +349986,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -350407,20 +350006,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "删除浮动图表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "删除浮动图表" @@ -350449,8 +350048,8 @@ "group": "chart", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "chart_delete", "parameter_count": 3, @@ -350481,16 +350080,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "chartId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "chartId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -350541,7 +350148,6 @@ "value": "string" } }, - "property": "chartId", "required": true, "type": "string" }, @@ -350571,16 +350177,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -350631,7 +350245,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -350661,16 +350274,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -350721,7 +350342,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -350743,6 +350363,7 @@ "cobra-help:dws sheet chart list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -350759,9 +350380,6 @@ "confirmation": "not_required", "description": "获取钉钉电子表格指定工作表中的浮动图表。\n\n支持两种模式:\n1. 列出全部图表:不传 --chart-id,返回该工作表中所有浮动图表的列表。\n2. 获取单个图表:传入 --chart-id,返回该图表的详细信息。\n\n返回内容包含每个图表的 ID、锚点位置、尺寸坐标以及完整图表配置(类型、数据系列、分类轴、标题、图例、坐标轴等)。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -350787,15 +350405,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -350857,39 +350477,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取钉钉电子表格指定工作表中的浮动图表。\n\n支持两种模式:\n1. 列出全部图表:不传 --chart-id,返回该工作表中所有浮动图表的列表。\n2. 获取单个图表:传入 --chart-id,返回该图表的详细信息。\n\n返回内容包含每个图表的 ID、锚点位置、尺寸坐标以及完整图表配置(类型、数据系列、分类轴、标题、图例、坐标轴等)。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取钉钉电子表格指定工作表中的浮动图表。\n\n支持两种模式:\n1. 列出全部图表:不传 --chart-id,返回该工作表中所有浮动图表的列表。\n2. 获取单个图表:传入 --chart-id,返回该图表的详细信息。\n\n返回内容包含每个图表的 ID、锚点位置、尺寸坐标以及完整图表配置(类型、数据系列、分类轴、标题、图例、坐标轴等)。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -350953,45 +350551,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -351039,13 +350641,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取浮动图表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取浮动图表" @@ -351074,8 +350676,8 @@ "group": "chart", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "chart_list", "parameter_count": 3, @@ -351106,16 +350708,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "chartId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "chartId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351160,7 +350770,6 @@ "value": "string" } }, - "property": "chartId", "required": false, "type": "string" }, @@ -351190,16 +350799,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351250,7 +350867,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -351280,16 +350896,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351340,7 +350964,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -351362,6 +350985,7 @@ "cobra-help:dws sheet chart update --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-chart.md" @@ -351378,9 +351002,6 @@ "confirmation": "not_required", "description": "更新钉钉电子表格中指定浮动图表的配置。\n\n注意:本接口采用 PUT 语义(完整覆盖),非增量更新。\n建议先通过 chart list(传入 --chart-id)获取当前配置,修改后整体传入。\n如果只需修改部分字段(如仅修改标题),仍需传入完整的 chart 配置以避免其他字段被清空。\n\n--properties 结构与 chart create 完全相同。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -351406,15 +351027,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -351476,39 +351099,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新钉钉电子表格中指定浮动图表的配置。\n\n注意:本接口采用 PUT 语义(完整覆盖),非增量更新。\n建议先通过 chart list(传入 --chart-id)获取当前配置,修改后整体传入。\n如果只需修改部分字段(如仅修改标题),仍需传入完整的 chart 配置以避免其他字段被清空。\n\n--properties 结构与 chart create 完全相同。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新钉钉电子表格中指定浮动图表的配置。\n\n注意:本接口采用 PUT 语义(完整覆盖),非增量更新。\n建议先通过 chart list(传入 --chart-id)获取当前配置,修改后整体传入。\n如果只需修改部分字段(如仅修改标题),仍需传入完整的 chart 配置以避免其他字段被清空。\n\n--properties 结构与 chart create 完全相同。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -351572,45 +351173,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -351658,13 +351263,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新浮动图表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新浮动图表" @@ -351693,8 +351298,8 @@ "group": "chart", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "chart_update", "parameter_count": 4, @@ -351725,16 +351330,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "chartId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "chartId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351785,7 +351398,6 @@ "value": "string" } }, - "property": "chartId", "required": true, "type": "string" }, @@ -351815,16 +351427,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351875,12 +351495,12 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, "properties": { "description": "图表完整配置 JSON (必填,PUT 语义整体覆盖)", + "example": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}", "field_provenance": { "description": { "candidates": [ @@ -351902,19 +351522,67 @@ "source": "cobra_usage", "value": "图表完整配置 JSON (必填,PUT 语义整体覆盖)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "{\"position\":{\"row\":0,\"col\":\"A\"},\"dimensions\":{\"width\":600,\"height\":400},\"chart\":{\"type\":\"column\",\"series\":[{\"value\":[\"B2:B10\"]}],\"category\":[\"A2:A10\"]}}" + }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "json" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "properties" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "properties" + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -351965,7 +351633,7 @@ "value": "string" } }, - "property": "properties", + "format": "json", "required": true, "type": "string" }, @@ -351995,16 +351663,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -352055,7 +351731,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -352078,6 +351753,7 @@ "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.sheet.clear_range", "skills/mono/references/products/sheet.md", @@ -352093,14 +351769,11 @@ "canonical_path": "sheet.clear_range", "cli_name": "clear", "cli_path": "sheet range clear", - "confirmation": "not_required", - "description": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。", + "confirmation": "user_required", + "description": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。\n\n清除类型 (--type):\n content 仅清除单元格的值,保留格式(默认)\n format 仅清除格式,保留值\n all 清除值和格式\n\n范围格式使用 A1 表示法:\n --range A1:B3 清除 A1 到 B3 的矩形区域\n --range A1 清除单个单元格\n --range A:C 清除整列范围\n\n该操作会删除内容或格式;必须先获得用户确认,再追加 --yes 执行。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "write", - "effect_source": "command-verb", + "effect": "destructive", + "effect_source": "agent-hint", "examples": [ "dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range A1:B3" ], @@ -352182,72 +351855,66 @@ "confirmation": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "risk-default", "value": "not_required" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "risk-default", - "value": "not_required" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "user_required" }, "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。" + "source": "cobra_help", + "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。\n\n清除类型 (--type):\n content 仅清除单元格的值,保留格式(默认)\n format 仅清除格式,保留值\n all 清除值和格式\n\n范围格式使用 A1 表示法:\n --range A1:B3 清除 A1 到 B3 的矩形区域\n --range A1 清除单个单元格\n --range A:C 清除整列范围\n\n该操作会删除内容或格式;必须先获得用户确认,再追加 --yes 执行。" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", - "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。\n\n清除类型 (--type):\n content 仅清除单元格的值,保留格式(默认)\n format 仅清除格式,保留值\n all 清除值和格式\n\n范围格式使用 A1 表示法:\n --range A1:B3 清除 A1 到 B3 的矩形区域\n --range A1 清除单个单元格\n --range A:C 清除整列范围" + "source": "mcp_metadata", + "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "source": "cobra_help", + "value": "清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部。\n\n清除类型 (--type):\n content 仅清除单元格的值,保留格式(默认)\n format 仅清除格式,保留值\n all 清除值和格式\n\n范围格式使用 A1 表示法:\n --range A1:B3 清除 A1 到 B3 的矩形区域\n --range A1 清除单个单元格\n --range A:C 清除整列范围\n\n该操作会删除内容或格式;必须先获得用户确认,再追加 --yes 执行。" }, "effect": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "command-verb", "value": "write" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "command-verb", - "value": "write" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "destructive" }, "examples": { "candidates": [ @@ -352272,15 +351939,23 @@ "idempotency": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "unknown" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, "interface_mode": { @@ -352347,6 +352022,13 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true + }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true } ], "precedence": "reviewed_manual", @@ -352358,36 +352040,44 @@ "risk": { "candidates": [ { - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" + }, + { + "precedence": "inference_or_default", + "selected": false, "source": "effect-default", "value": "medium" } ], - "precedence": "inference_or_default", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "effect-default", - "value": "medium" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "high" }, "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除区域" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "清除工作表指定区域" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "清除区域" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除区域" + "source": "cobra_help", + "value": "清除工作表指定区域" }, "use_when": { "candidates": [ @@ -352434,6 +352124,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -352449,22 +352145,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -352475,9 +352183,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -352509,7 +352217,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -352842,9 +352551,9 @@ "primary_cli_path": "sheet range clear", "product_id": "sheet", "reviewed": true, - "risk": "medium", + "risk": "high", "source": "reviewed_command_registry", - "title": "清除区域", + "title": "清除工作表指定区域", "use_when": [ "当用户明确要求清除钉钉电子表格中指定工作表指定范围的单元格内容、格式或全部,且已确认目标对象和所需参数时使用。" ] @@ -352870,11 +352579,8 @@ "cli_name": "copy", "cli_path": "sheet copy", "confirmation": "not_required", - "description": "复制钉钉电子表格中的指定工作表,在同一表格中创建一个副本,可同时指定副本的目标位置。", + "description": "复制指定工作表,在同一表格中创建一个副本。\n\n复制操作会将源工作表的所有内容(包括数据、格式、公式等)完整复制到新工作表中。\n\n可选参数:\n --name 指定副本名称;不传时系统自动生成(通常为\"源名称 副本\")。\n 名称与已有工作表重复时系统会自动重命名。\n --index 指定副本位置(0-based);不传时放在源工作表之后。\n 传 --index 时,CLI 会先复制,再追加一次位置更新,把副本移动到目标索引。\n\nname 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -352972,44 +352678,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "复制钉钉电子表格中的指定工作表,在同一表格中创建一个副本,可同时指定副本的目标位置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制指定工作表,在同一表格中创建一个副本。\n\n复制操作会将源工作表的所有内容(包括数据、格式、公式等)完整复制到新工作表中。\n\n可选参数:\n --name 指定副本名称;不传时系统自动生成(通常为\"源名称 副本\")。\n 名称与已有工作表重复时系统会自动重命名。\n --index 指定副本位置(0-based);不传时放在源工作表之后。\n 传 --index 时,CLI 会先复制,再追加一次位置更新,把副本移动到目标索引。\n\nname 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "复制钉钉电子表格中的指定工作表,在同一表格中创建一个副本,可同时指定副本的目标位置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "复制钉钉电子表格中的指定工作表,在同一表格中创建一个副本,可同时指定副本的目标位置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "复制指定工作表,在同一表格中创建一个副本。\n\n复制操作会将源工作表的所有内容(包括数据、格式、公式等)完整复制到新工作表中。\n\n可选参数:\n --name 指定副本名称;不传时系统自动生成(通常为\"源名称 副本\")。\n 名称与已有工作表重复时系统会自动重命名。\n --index 指定副本位置(0-based);不传时放在源工作表之后。\n 传 --index 时,CLI 会先复制,再追加一次位置更新,把副本移动到目标索引。\n\nname 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符。" }, "effect": { "candidates": [ @@ -353148,21 +352832,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "复制工作表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "复制工作表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "复制工作表" }, "use_when": { @@ -353321,6 +353005,12 @@ "source": "cobra_usage", "value": "副本名称,最长 100 字符 (不传则系统自动生成)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "副本名称" + }, { "precedence": "default", "selected": false, @@ -353336,16 +353026,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "title" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "title" }, "required": { "candidates": [ @@ -353390,7 +353086,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "副本名称", + "property": "title", "required": false, "type": "string" }, @@ -353405,6 +353102,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID(必填)。支持两种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;" + }, { "precedence": "default", "selected": false, @@ -353420,22 +353123,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -353446,9 +353161,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -353480,7 +353195,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID(必填)。支持两种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;", + "property": "nodeId", "required": true, "type": "string" }, @@ -353713,11 +353429,8 @@ "cli_name": "create", "cli_path": "sheet cond-format create", "confirmation": "not_required", - "description": "在指定工作表中创建一条条件格式规则。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\r\n每条规则需要指定:应用范围(ranges)、条件类型及参数、命中时的单元格样式(cellStyle)。", + "description": "在钉钉电子表格的指定工作表中创建一条条件格式规则。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\n每条规则需要指定:应用范围(--ranges)、条件类型及参数(--condition)、命中时的单元格样式(--cell-style)。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--ranges 为 JSON 数组,A1 表示法,如 '[\"A1:E10\"]'。\n--condition 为 JSON 对象,包含条件类型及参数。每条规则只能选择一种条件类型。\n--cell-style 为 JSON 对象,指定条件命中时的样式。\n--data-bar-style 为 JSON 对象,仅数据条类型时使用。\n\n支持的条件类型(condition JSON 的 key,每次只能选一种):\n numberCondition 数值比较\n operator: equal/not-equal/greater/greater-equal/less/less-equal/between/not-between\n value1: 比较值(字符串,必填)\n value2: 第二比较值(字符串,仅 between/not-between 时必填)\n textCondition 文本匹配\n operator: contains/not-contains/starts-with/ends-with\n value: 匹配文本\n emptyCondition 空值判断(operator: is-empty/is-not-empty)\n errorCondition 错误值判断(operator: error/no-error)\n duplicateCondition 重复/唯一值(operator: duplicate/unique)\n formulaCondition 自定义公式(formula: \"=A1\u003e100\")\n rankCondition 排名(value: 数量, isPercent: 是否百分比, isBottom: 是否倒数)\n averageCondition 高于/低于平均值(isAbove: 是否高于, andEqual: 是否含等于)\n stdevCondition 标准差(value: 倍数, isAbove: 方向, andEqual: 是否含等于)\n dataBarCondition 数据条\n minPoint/maxPoint: { type: auto/maxmin/number/percent/percentile/formula, value: 端点值 }\n iconSetCondition 图标集\n iconSet: 数组,每项含 criteria({ type, value, gtOrEqual }) 和 icon({ type: \"id\", value: 图标ID })\n showIconOnly: 是否仅显示图标\n colorScaleCondition 色阶\n criterias: 数组(2或3项),每项含 { type: maxmin/number/percent/percentile/formula, value, color }\n\n--cell-style JSON 字段:\n backgroundColor 背景色(十六进制如 #FFCDD2)\n fontColor 字体颜色(十六进制如 #B71C1C)\n bold 是否加粗(布尔)\n italic 是否斜体(布尔)\n strikethrough 是否删除线(布尔)\n\n--data-bar-style JSON 字段(仅 dataBarCondition 时使用):\n fill 填充颜色数组 [正数颜色, 负数颜色],如 [\"#4CAF50\",\"#F44336\"]\n isGradient 是否渐变填充(布尔,默认 false)\n\n注意事项:\n - 创建后必须用 cond-format list 验证规则是否生效\n - 中文\"标红/高亮/染色\"默认指 backgroundColor,\"字体红\"才是 fontColor\n - 日期/空值公式必须防空:=AND(E1\u003c\u003e\"\", E1\u003c=TODAY()) 而非 =E1\u003c=TODAY()\n - 公式中用相对引用(如 =E1\u003c=TODAY())使公式随行变化,绝对引用只比较一个格\n - 创建前建议先 range read 读 3-5 行数据确认列对应关系", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -353823,44 +353536,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定工作表中创建一条条件格式规则。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\r\n每条规则需要指定:应用范围(ranges)、条件类型及参数、命中时的单元格样式(cellStyle)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉电子表格的指定工作表中创建一条条件格式规则。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\n每条规则需要指定:应用范围(--ranges)、条件类型及参数(--condition)、命中时的单元格样式(--cell-style)。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--ranges 为 JSON 数组,A1 表示法,如 '[\"A1:E10\"]'。\n--condition 为 JSON 对象,包含条件类型及参数。每条规则只能选择一种条件类型。\n--cell-style 为 JSON 对象,指定条件命中时的样式。\n--data-bar-style 为 JSON 对象,仅数据条类型时使用。\n\n支持的条件类型(condition JSON 的 key,每次只能选一种):\n numberCondition 数值比较\n operator: equal/not-equal/greater/greater-equal/less/less-equal/between/not-between\n value1: 比较值(字符串,必填)\n value2: 第二比较值(字符串,仅 between/not-between 时必填)\n textCondition 文本匹配\n operator: contains/not-contains/starts-with/ends-with\n value: 匹配文本\n emptyCondition 空值判断(operator: is-empty/is-not-empty)\n errorCondition 错误值判断(operator: error/no-error)\n duplicateCondition 重复/唯一值(operator: duplicate/unique)\n formulaCondition 自定义公式(formula: \"=A1\u003e100\")\n rankCondition 排名(value: 数量, isPercent: 是否百分比, isBottom: 是否倒数)\n averageCondition 高于/低于平均值(isAbove: 是否高于, andEqual: 是否含等于)\n stdevCondition 标准差(value: 倍数, isAbove: 方向, andEqual: 是否含等于)\n dataBarCondition 数据条\n minPoint/maxPoint: { type: auto/maxmin/number/percent/percentile/formula, value: 端点值 }\n iconSetCondition 图标集\n iconSet: 数组,每项含 criteria({ type, value, gtOrEqual }) 和 icon({ type: \"id\", value: 图标ID })\n showIconOnly: 是否仅显示图标\n colorScaleCondition 色阶\n criterias: 数组(2或3项),每项含 { type: maxmin/number/percent/percentile/formula, value, color }\n\n--cell-style JSON 字段:\n backgroundColor 背景色(十六进制如 #FFCDD2)\n fontColor 字体颜色(十六进制如 #B71C1C)\n bold 是否加粗(布尔)\n italic 是否斜体(布尔)\n strikethrough 是否删除线(布尔)\n\n--data-bar-style JSON 字段(仅 dataBarCondition 时使用):\n fill 填充颜色数组 [正数颜色, 负数颜色],如 [\"#4CAF50\",\"#F44336\"]\n isGradient 是否渐变填充(布尔,默认 false)\n\n注意事项:\n - 创建后必须用 cond-format list 验证规则是否生效\n - 中文\"标红/高亮/染色\"默认指 backgroundColor,\"字体红\"才是 fontColor\n - 日期/空值公式必须防空:=AND(E1\u003c\u003e\"\", E1\u003c=TODAY()) 而非 =E1\u003c=TODAY()\n - 公式中用相对引用(如 =E1\u003c=TODAY())使公式随行变化,绝对引用只比较一个格\n - 创建前建议先 range read 读 3-5 行数据确认列对应关系" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定工作表中创建一条条件格式规则。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\r\n每条规则需要指定:应用范围(ranges)、条件类型及参数、命中时的单元格样式(cellStyle)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定工作表中创建一条条件格式规则。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\r\n每条规则需要指定:应用范围(ranges)、条件类型及参数、命中时的单元格样式(cellStyle)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉电子表格的指定工作表中创建一条条件格式规则。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式。\n每条规则需要指定:应用范围(--ranges)、条件类型及参数(--condition)、命中时的单元格样式(--cell-style)。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--ranges 为 JSON 数组,A1 表示法,如 '[\"A1:E10\"]'。\n--condition 为 JSON 对象,包含条件类型及参数。每条规则只能选择一种条件类型。\n--cell-style 为 JSON 对象,指定条件命中时的样式。\n--data-bar-style 为 JSON 对象,仅数据条类型时使用。\n\n支持的条件类型(condition JSON 的 key,每次只能选一种):\n numberCondition 数值比较\n operator: equal/not-equal/greater/greater-equal/less/less-equal/between/not-between\n value1: 比较值(字符串,必填)\n value2: 第二比较值(字符串,仅 between/not-between 时必填)\n textCondition 文本匹配\n operator: contains/not-contains/starts-with/ends-with\n value: 匹配文本\n emptyCondition 空值判断(operator: is-empty/is-not-empty)\n errorCondition 错误值判断(operator: error/no-error)\n duplicateCondition 重复/唯一值(operator: duplicate/unique)\n formulaCondition 自定义公式(formula: \"=A1\u003e100\")\n rankCondition 排名(value: 数量, isPercent: 是否百分比, isBottom: 是否倒数)\n averageCondition 高于/低于平均值(isAbove: 是否高于, andEqual: 是否含等于)\n stdevCondition 标准差(value: 倍数, isAbove: 方向, andEqual: 是否含等于)\n dataBarCondition 数据条\n minPoint/maxPoint: { type: auto/maxmin/number/percent/percentile/formula, value: 端点值 }\n iconSetCondition 图标集\n iconSet: 数组,每项含 criteria({ type, value, gtOrEqual }) 和 icon({ type: \"id\", value: 图标ID })\n showIconOnly: 是否仅显示图标\n colorScaleCondition 色阶\n criterias: 数组(2或3项),每项含 { type: maxmin/number/percent/percentile/formula, value, color }\n\n--cell-style JSON 字段:\n backgroundColor 背景色(十六进制如 #FFCDD2)\n fontColor 字体颜色(十六进制如 #B71C1C)\n bold 是否加粗(布尔)\n italic 是否斜体(布尔)\n strikethrough 是否删除线(布尔)\n\n--data-bar-style JSON 字段(仅 dataBarCondition 时使用):\n fill 填充颜色数组 [正数颜色, 负数颜色],如 [\"#4CAF50\",\"#F44336\"]\n isGradient 是否渐变填充(布尔,默认 false)\n\n注意事项:\n - 创建后必须用 cond-format list 验证规则是否生效\n - 中文\"标红/高亮/染色\"默认指 backgroundColor,\"字体红\"才是 fontColor\n - 日期/空值公式必须防空:=AND(E1\u003c\u003e\"\", E1\u003c=TODAY()) 而非 =E1\u003c=TODAY()\n - 公式中用相对引用(如 =E1\u003c=TODAY())使公式随行变化,绝对引用只比较一个格\n - 创建前建议先 range read 读 3-5 行数据确认列对应关系" }, "effect": { "candidates": [ @@ -354030,21 +353721,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建条件格式规则" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建条件格式规则" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建条件格式规则" }, "use_when": { @@ -354302,16 +353993,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "condition" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "condition" + "review_reason": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -354363,7 +354062,6 @@ } }, "format": "json", - "property": "condition", "required": true, "type": "string" }, @@ -354511,6 +354209,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -354526,22 +354230,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -354552,9 +354268,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -354586,7 +354302,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -354900,11 +354617,8 @@ "cli_name": "create", "cli_path": "sheet filter create", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中创建筛选。\r\n创建筛选后,工作表的指定范围将出现筛选下拉箭头,用户可通过 set_filter_criteria 设置具体的筛选条件。\r\n每个工作表只能有一个筛选,如果已存在筛选则会报错。", + "description": "在工作表中创建全局筛选。\n\n每个工作表只能有一个全局筛选,已存在时会报错。\n--range 必须包含表头行(如 A1:E100),不能只包含数据行。\n--criteria 可选,不传则仅创建空筛选框架,后续可通过 filter update 设置条件。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -355010,44 +354724,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中创建筛选。\r\n创建筛选后,工作表的指定范围将出现筛选下拉箭头,用户可通过 set_filter_criteria 设置具体的筛选条件。\r\n每个工作表只能有一个筛选,如果已存在筛选则会报错。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在工作表中创建全局筛选。\n\n每个工作表只能有一个全局筛选,已存在时会报错。\n--range 必须包含表头行(如 A1:E100),不能只包含数据行。\n--criteria 可选,不传则仅创建空筛选框架,后续可通过 filter update 设置条件。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中创建筛选。\r\n创建筛选后,工作表的指定范围将出现筛选下拉箭头,用户可通过 set_filter_criteria 设置具体的筛选条件。\r\n每个工作表只能有一个筛选,如果已存在筛选则会报错。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉电子表格的指定工作表中创建筛选。\r\n创建筛选后,工作表的指定范围将出现筛选下拉箭头,用户可通过 set_filter_criteria 设置具体的筛选条件。\r\n每个工作表只能有一个筛选,如果已存在筛选则会报错。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在工作表中创建全局筛选。\n\n每个工作表只能有一个全局筛选,已存在时会报错。\n--range 必须包含表头行(如 A1:E100),不能只包含数据行。\n--criteria 可选,不传则仅创建空筛选框架,后续可通过 filter update 设置条件。" }, "effect": { "candidates": [ @@ -355217,22 +354909,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建筛选" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建全局筛选" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建筛选" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建筛选" + "source": "cobra_help", + "value": "创建全局筛选" }, "use_when": { "candidates": [ @@ -355391,6 +355083,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -355406,22 +355104,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -355432,9 +355142,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -355466,7 +355176,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -355704,7 +355415,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建筛选", + "title": "创建全局筛选", "use_when": [ "当用户明确要求在工作表中创建全局筛选,且已确认目标对象和所需参数时使用。" ] @@ -355732,11 +355443,8 @@ "cli_name": "create", "cli_path": "sheet filter-view create", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中创建一个筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式。创建后可通过 set_filter_view_criteria 设置具体的筛选条件。\r\n同一工作表可以创建多个筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可创建。不支持跨组织操作。", + "description": "在钉钉电子表格的指定工作表中创建一个筛选视图。\n\n用途:为指定数据区域创建一个可命名的个人化筛选视图,可选同时设置筛选条件。\n场景:用户需要针对某个数据区域建立固定的筛选视角(如\"高绩效员工\"\"研发部数据\"),方便反复查看。\n区分:\n - 与全局筛选不同,筛选视图是个人化的,不影响其他用户看到的数据。\n - 如果只需创建视图不设条件,后续可通过 update-criteria 单独设置。\n - 如果要一步到位,可通过 --criteria 在创建时直接设置筛选条件。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n同一工作表可以创建多个筛选视图。\n\n--criteria 为可选的 JSON 数组,每个元素包含 column(列偏移量,从 0 开始)和筛选条件字段。\n筛选条件支持三种类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -355842,44 +355550,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中创建一个筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式。创建后可通过 set_filter_view_criteria 设置具体的筛选条件。\r\n同一工作表可以创建多个筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可创建。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉电子表格的指定工作表中创建一个筛选视图。\n\n用途:为指定数据区域创建一个可命名的个人化筛选视图,可选同时设置筛选条件。\n场景:用户需要针对某个数据区域建立固定的筛选视角(如\"高绩效员工\"\"研发部数据\"),方便反复查看。\n区分:\n - 与全局筛选不同,筛选视图是个人化的,不影响其他用户看到的数据。\n - 如果只需创建视图不设条件,后续可通过 update-criteria 单独设置。\n - 如果要一步到位,可通过 --criteria 在创建时直接设置筛选条件。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n同一工作表可以创建多个筛选视图。\n\n--criteria 为可选的 JSON 数组,每个元素包含 column(列偏移量,从 0 开始)和筛选条件字段。\n筛选条件支持三种类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中创建一个筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式。创建后可通过 set_filter_view_criteria 设置具体的筛选条件。\r\n同一工作表可以创建多个筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可创建。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉电子表格的指定工作表中创建一个筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式。创建后可通过 set_filter_view_criteria 设置具体的筛选条件。\r\n同一工作表可以创建多个筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可创建。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉电子表格的指定工作表中创建一个筛选视图。\n\n用途:为指定数据区域创建一个可命名的个人化筛选视图,可选同时设置筛选条件。\n场景:用户需要针对某个数据区域建立固定的筛选视角(如\"高绩效员工\"\"研发部数据\"),方便反复查看。\n区分:\n - 与全局筛选不同,筛选视图是个人化的,不影响其他用户看到的数据。\n - 如果只需创建视图不设条件,后续可通过 update-criteria 单独设置。\n - 如果要一步到位,可通过 --criteria 在创建时直接设置筛选条件。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n同一工作表可以创建多个筛选视图。\n\n--criteria 为可选的 JSON 数组,每个元素包含 column(列偏移量,从 0 开始)和筛选条件字段。\n筛选条件支持三种类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色" }, "effect": { "candidates": [ @@ -356049,21 +355735,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建筛选视图" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建筛选视图" }, "use_when": { @@ -356326,6 +356012,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -356341,22 +356033,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -356367,9 +356071,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -356401,7 +356105,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -356665,11 +356370,8 @@ "cli_name": "create-float-image", "cli_path": "sheet create-float-image", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中插入一张浮动图片。", + "description": "在钉钉表格的指定工作表上创建一个浮动图片。\n\n浮动图片悬浮于单元格之上,不占用单元格内容,可自由定位和调整大小。\n\n使用流程:\n 1. 先通过 media-upload 上传本地图片获取 resourceUrl\n 2. 再通过 create-float-image 将图片以浮动方式放置到工作表上\n\n--range 指定浮动图片锚定的单元格位置,使用 A1 表示法(如 A1、B3)。\n--width / --height 为必填,单位像素,必须为正整数。\n--offset-x / --offset-y 可选,表示相对锚点单元格左上角的偏移量(像素),默认 0。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -356767,44 +356469,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中插入一张浮动图片。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格的指定工作表上创建一个浮动图片。\n\n浮动图片悬浮于单元格之上,不占用单元格内容,可自由定位和调整大小。\n\n使用流程:\n 1. 先通过 media-upload 上传本地图片获取 resourceUrl\n 2. 再通过 create-float-image 将图片以浮动方式放置到工作表上\n\n--range 指定浮动图片锚定的单元格位置,使用 A1 表示法(如 A1、B3)。\n--width / --height 为必填,单位像素,必须为正整数。\n--offset-x / --offset-y 可选,表示相对锚点单元格左上角的偏移量(像素),默认 0。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中插入一张浮动图片。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉电子表格的指定工作表中插入一张浮动图片。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格的指定工作表上创建一个浮动图片。\n\n浮动图片悬浮于单元格之上,不占用单元格内容,可自由定位和调整大小。\n\n使用流程:\n 1. 先通过 media-upload 上传本地图片获取 resourceUrl\n 2. 再通过 create-float-image 将图片以浮动方式放置到工作表上\n\n--range 指定浮动图片锚定的单元格位置,使用 A1 表示法(如 A1、B3)。\n--width / --height 为必填,单位像素,必须为正整数。\n--offset-x / --offset-y 可选,表示相对锚点单元格左上角的偏移量(像素),默认 0。" }, "effect": { "candidates": [ @@ -356943,22 +356623,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "插入浮动图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建浮动图片" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "插入浮动图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "插入浮动图片" + "source": "cobra_help", + "value": "创建浮动图片" }, "use_when": { "candidates": [ @@ -357128,6 +356808,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -357143,22 +356829,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -357169,9 +356867,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -357203,7 +356901,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -357904,7 +357603,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "插入浮动图片", + "title": "创建浮动图片", "use_when": [ "当用户明确要求在指定工作表上创建一个浮动图片,且已确认目标对象和所需参数时使用。" ] @@ -357931,9 +357630,6 @@ "confirmation": "not_required", "description": "在指定数据源区域上创建原生透视表。\n\n--source 必须使用带工作表前缀的 A1 范围,例如 \"'Sheet1'!A1:D100\"。\n--properties 为 JSON 对象或 @file,values 至少一项;可包含 rows、columns、filters、collapse 和总计显示选项。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -357960,7 +357656,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -357968,7 +357664,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -358020,7 +357716,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" @@ -358034,51 +357730,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "在指定数据源区域上创建原生透视表。\n\n--source 必须使用带工作表前缀的 A1 范围,例如 \"'Sheet1'!A1:D100\"。\n--properties 为 JSON 对象或 @file,values 至少一项;可包含 rows、columns、filters、collapse 和总计显示选项。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "在指定数据源区域上创建原生透视表。\n\n--source 必须使用带工作表前缀的 A1 范围,例如 \"'Sheet1'!A1:D100\"。\n--properties 为 JSON 对象或 @file,values 至少一项;可包含 rows、columns、filters、collapse 和总计显示选项。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -358092,7 +357766,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -358120,7 +357794,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "non_idempotent" @@ -358134,7 +357808,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "non_idempotent" }, @@ -358142,39 +357816,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -358182,7 +357856,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -358197,14 +357871,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -358220,7 +357887,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" @@ -358234,20 +357901,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "创建透视表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "创建透视表" @@ -358276,8 +357943,8 @@ "group": "pivot-table", "has_parameters": true, "idempotency": "non_idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "create_pivot_table", "parameter_count": 5, @@ -358380,6 +358047,7 @@ }, "properties": { "description": "透视表配置 JSON 或 @文件路径 (必填)", + "example": "{\"values\":[{\"field\":\"Amount\",\"summarize_by\":\"sum\"}]}", "field_provenance": { "description": { "candidates": [ @@ -358401,6 +358069,46 @@ "source": "cobra_usage", "value": "透视表配置 JSON 或 @文件路径 (必填)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "{\"values\":[{\"field\":\"Amount\",\"summarize_by\":\"sum\"}]}" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "{\"values\":[{\"field\":\"Amount\",\"summarize_by\":\"sum\"}]}" + }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "json" + }, "interface_type": { "candidates": [ { @@ -358426,16 +358134,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "properties" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "properties" + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -358486,8 +358202,8 @@ "value": "string" } }, + "format": "json", "interface_type": "object", - "property": "properties", "required": true, "type": "string" }, @@ -358537,16 +358253,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "source" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "source" + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -358598,7 +358322,6 @@ } }, "format": "a1-range", - "property": "source", "required": true, "type": "string" }, @@ -358648,16 +358371,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-position is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "targetPosition" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "targetPosition" + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-position is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -358703,7 +358434,6 @@ } }, "format": "a1-range", - "property": "targetPosition", "required": false, "type": "string" }, @@ -358733,16 +358463,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "targetSheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "targetSheetId" + "review_reason": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -358787,7 +358525,6 @@ "value": "string" } }, - "property": "targetSheetId", "required": false, "type": "string" } @@ -358826,11 +358563,8 @@ "cli_name": "new", "cli_path": "sheet new", "confirmation": "not_required", - "description": "在钉钉表格中创建一个新的工作表。\r\n通过 nodeId 定位表格文件,在该表格中新增一个工作表。\r\n当指定的工作表名称与已有名称重复时,系统会自动重命名为合法值。", + "description": "在指定钉钉表格中新建一个工作表。\n当指定名称与已有工作表重复时,系统会自动重命名为合法值。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -358928,44 +358662,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格中创建一个新的工作表。\r\n通过 nodeId 定位表格文件,在该表格中新增一个工作表。\r\n当指定的工作表名称与已有名称重复时,系统会自动重命名为合法值。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定钉钉表格中新建一个工作表。\n当指定名称与已有工作表重复时,系统会自动重命名为合法值。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格中创建一个新的工作表。\r\n通过 nodeId 定位表格文件,在该表格中新增一个工作表。\r\n当指定的工作表名称与已有名称重复时,系统会自动重命名为合法值。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格中创建一个新的工作表。\r\n通过 nodeId 定位表格文件,在该表格中新增一个工作表。\r\n当指定的工作表名称与已有名称重复时,系统会自动重命名为合法值。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定钉钉表格中新建一个工作表。\n当指定名称与已有工作表重复时,系统会自动重命名为合法值。" }, "effect": { "candidates": [ @@ -359110,21 +358822,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "新建工作表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "新建工作表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "新建工作表" }, "use_when": { @@ -359280,6 +358992,12 @@ "source": "cobra_usage", "value": "表格文档 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -359295,16 +359013,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -359314,6 +359038,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -359361,7 +359091,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" } @@ -359403,11 +359134,8 @@ "cli_name": "create", "cli_path": "sheet create", "confirmation": "not_required", - "description": "创建一篇新的钉钉在线表格。\r\n支持创建空表格。\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", + "description": "创建一篇新的钉钉在线电子表格,支持创建空表格。\n\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -359505,44 +359233,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建一篇新的钉钉在线表格。\r\n支持创建空表格。\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一篇新的钉钉在线电子表格,支持创建空表格。\n\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建一篇新的钉钉在线表格。\r\n支持创建空表格。\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建一篇新的钉钉在线表格。\r\n支持创建空表格。\r\n支持三种创建位置:\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 指定 workspaceId(知识库 ID)但不传 folderId:在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一篇新的钉钉在线电子表格,支持创建空表格。\n\n创建位置优先级: --folder \u003e --workspace \u003e 默认 (我的文档根目录)" }, "effect": { "candidates": [ @@ -359687,22 +359393,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "新建钉钉表格" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建钉钉表格文档" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "新建钉钉表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "新建钉钉表格" + "source": "cobra_help", + "value": "创建钉钉表格文档" }, "use_when": { "candidates": [ @@ -359748,6 +359454,12 @@ "source": "cobra_usage", "value": "目标文件夹 ID 或 URL" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。" + }, { "precedence": "default", "selected": false, @@ -359763,16 +359475,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -359817,7 +359535,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。", + "property": "folderId", "required": false, "type": "string" }, @@ -359941,6 +359660,12 @@ "source": "cobra_usage", "value": "目标知识库 ID" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -359956,16 +359681,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -360010,7 +359741,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的 ID。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": false, "type": "string" } @@ -360021,7 +359753,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "新建钉钉表格", + "title": "创建钉钉表格文档", "use_when": [ "当用户明确要求创建一篇新的钉钉在线电子表格,支持创建空表格,且已确认目标对象和所需参数时使用。" ] @@ -360050,7 +359782,7 @@ "cli_name": "delete", "cli_path": "sheet cond-format delete", "confirmation": "user_required", - "description": "删除指定工作表中的一条条件格式规则。", + "description": "删除钉钉电子表格中指定工作表的一条条件格式规则。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位要删除的规则。\n删除成功后该规则将从工作表中移除,被该规则影响的单元格将不再应用对应的条件格式样式。\n如果规则已不存在,操作仍然返回成功。\n\n⚠️ 危险操作:删除不可恢复。必须先向用户确认,用户同意后才加 --yes 执行。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。", "display": "钉钉表格管理", "effect": "destructive", "effect_source": "agent-hint", @@ -360164,22 +359896,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除指定工作表中的一条条件格式规则。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除钉钉电子表格中指定工作表的一条条件格式规则。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位要删除的规则。\n删除成功后该规则将从工作表中移除,被该规则影响的单元格将不再应用对应的条件格式样式。\n如果规则已不存在,操作仍然返回成功。\n\n⚠️ 危险操作:删除不可恢复。必须先向用户确认,用户同意后才加 --yes 执行。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除指定工作表中的一条条件格式规则。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除指定工作表中的一条条件格式规则。" + "source": "cobra_help", + "value": "删除钉钉电子表格中指定工作表的一条条件格式规则。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位要删除的规则。\n删除成功后该规则将从工作表中移除,被该规则影响的单元格将不再应用对应的条件格式样式。\n如果规则已不存在,操作仍然返回成功。\n\n⚠️ 危险操作:删除不可恢复。必须先向用户确认,用户同意后才加 --yes 执行。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。" }, "effect": { "candidates": [ @@ -360363,21 +360095,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除条件格式规则" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除条件格式规则" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除条件格式规则" }, "use_when": { @@ -360425,6 +360157,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。" + }, { "precedence": "default", "selected": false, @@ -360440,22 +360178,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -360466,9 +360216,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -360500,7 +360250,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。", + "property": "nodeId", "required": true, "type": "string" }, @@ -360736,16 +360487,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local confirmation control", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "yes" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "yes" + "review_reason": "local confirmation control", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -360790,7 +360549,6 @@ "value": "boolean" } }, - "property": "yes", "required": false, "type": "boolean" } @@ -360828,11 +360586,8 @@ "cli_name": "delete-dimension", "cli_path": "sheet delete-dimension", "confirmation": "user_required", - "description": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。", + "description": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始删除\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示从 A 列开始删除、\"AB\" 表示从 AB 列开始删除\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n删除后后续的行/列会向前移动填补空位;若需要仅清空内容但保留行/列占位,请使用 clear_range 工具。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -360938,44 +360693,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始删除\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示从 A 列开始删除、\"AB\" 表示从 AB 列开始删除\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n删除后后续的行/列会向前移动填补空位;若需要仅清空内容但保留行/列占位,请使用 clear_range 工具。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格指定工作表中,从指定位置起删除若干连续的行或列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始删除\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示从 A 列开始删除、\"AB\" 表示从 AB 列开始删除\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n删除后后续的行/列会向前移动填补空位;若需要仅清空内容但保留行/列占位,请使用 clear_range 工具。" }, "effect": { "candidates": [ @@ -361130,21 +360863,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定位置的行或列" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除指定位置的行或列" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除指定位置的行或列" }, "use_when": { @@ -361469,6 +361202,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -361484,22 +361223,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -361510,9 +361261,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -361544,7 +361295,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -361831,11 +361583,8 @@ "cli_name": "delete-dropdown", "cli_path": "sheet delete-dropdown", "confirmation": "user_required", - "description": "删除钉钉表格指定单元格范围内的下拉列表配置。", + "description": "删除钉钉表格指定单元格范围内的下拉列表配置。\n\n删除后,单元格将恢复为普通文本格式,已填写的单元格值不会被清除。\n如果目标范围不存在下拉列表,操作仍然返回成功。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -361948,44 +361697,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除钉钉表格指定单元格范围内的下拉列表配置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除钉钉表格指定单元格范围内的下拉列表配置。\n\n删除后,单元格将恢复为普通文本格式,已填写的单元格值不会被清除。\n如果目标范围不存在下拉列表,操作仍然返回成功。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除钉钉表格指定单元格范围内的下拉列表配置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除钉钉表格指定单元格范围内的下拉列表配置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除钉钉表格指定单元格范围内的下拉列表配置。\n\n删除后,单元格将恢复为普通文本格式,已填写的单元格值不会被清除。\n如果目标范围不存在下拉列表,操作仍然返回成功。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -362169,21 +361896,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除下拉列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除下拉列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除下拉列表" }, "use_when": { @@ -362230,6 +361957,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -362245,22 +361978,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -362271,9 +362016,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -362305,7 +362050,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -362572,11 +362318,8 @@ "cli_name": "delete", "cli_path": "sheet filter delete", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定工作表的筛选。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n删除筛选后,工作表中的筛选下拉箭头和所有筛选条件将被移除,所有被隐藏的行将重新显示。\r\n如果工作表没有筛选,调用此接口会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。", + "description": "删除工作表的全局筛选。\n\n删除后所有筛选条件丢失,所有被隐藏的行将重新显示。此操作不可恢复。\n工作表没有筛选时调用会报错。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -362689,44 +362432,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定工作表的筛选。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n删除筛选后,工作表中的筛选下拉箭头和所有筛选条件将被移除,所有被隐藏的行将重新显示。\r\n如果工作表没有筛选,调用此接口会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除工作表的全局筛选。\n\n删除后所有筛选条件丢失,所有被隐藏的行将重新显示。此操作不可恢复。\n工作表没有筛选时调用会报错。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定工作表的筛选。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n删除筛选后,工作表中的筛选下拉箭头和所有筛选条件将被移除,所有被隐藏的行将重新显示。\r\n如果工作表没有筛选,调用此接口会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除钉钉电子表格中指定工作表的筛选。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n删除筛选后,工作表中的筛选下拉箭头和所有筛选条件将被移除,所有被隐藏的行将重新显示。\r\n如果工作表没有筛选,调用此接口会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除工作表的全局筛选。\n\n删除后所有筛选条件丢失,所有被隐藏的行将重新显示。此操作不可恢复。\n工作表没有筛选时调用会报错。" }, "effect": { "candidates": [ @@ -362910,22 +362631,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除筛选" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除全局筛选" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除筛选" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除筛选" + "source": "cobra_help", + "value": "删除全局筛选" }, "use_when": { "candidates": [ @@ -362972,6 +362693,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -362987,22 +362714,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -363013,9 +362752,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -363047,7 +362786,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -363161,7 +362901,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除筛选", + "title": "删除全局筛选", "use_when": [ "当用户明确要求删除工作表的全局筛选,且已确认目标对象和所需参数时使用。" ] @@ -363190,11 +362930,8 @@ "cli_name": "delete", "cli_path": "sheet filter-view delete", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定工作表的筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n删除筛选视图后,该视图及其所有筛选条件将被永久移除。此操作不影响全局筛选或其他筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。", + "description": "删除钉钉电子表格中指定工作表的筛选视图。\n\n用途:永久删除一个不再需要的筛选视图及其所有筛选条件。\n场景:筛选视图已过时或不再需要时,清理无用的视图。\n区分:\n - delete 删除整个筛选视图(包括所有列的条件),操作不可恢复\n - delete-criteria 只删除某一列的筛选条件,视图本身保留\n - 此操作不影响全局筛选或其他筛选视图,也不影响原始数据\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -363307,44 +363044,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定工作表的筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n删除筛选视图后,该视图及其所有筛选条件将被永久移除。此操作不影响全局筛选或其他筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除钉钉电子表格中指定工作表的筛选视图。\n\n用途:永久删除一个不再需要的筛选视图及其所有筛选条件。\n场景:筛选视图已过时或不再需要时,清理无用的视图。\n区分:\n - delete 删除整个筛选视图(包括所有列的条件),操作不可恢复\n - delete-criteria 只删除某一列的筛选条件,视图本身保留\n - 此操作不影响全局筛选或其他筛选视图,也不影响原始数据\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定工作表的筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n删除筛选视图后,该视图及其所有筛选条件将被永久移除。此操作不影响全局筛选或其他筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除钉钉电子表格中指定工作表的筛选视图。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n删除筛选视图后,该视图及其所有筛选条件将被永久移除。此操作不影响全局筛选或其他筛选视图。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可删除。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除钉钉电子表格中指定工作表的筛选视图。\n\n用途:永久删除一个不再需要的筛选视图及其所有筛选条件。\n场景:筛选视图已过时或不再需要时,清理无用的视图。\n区分:\n - delete 删除整个筛选视图(包括所有列的条件),操作不可恢复\n - delete-criteria 只删除某一列的筛选条件,视图本身保留\n - 此操作不影响全局筛选或其他筛选视图,也不影响原始数据\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" }, "effect": { "candidates": [ @@ -363528,21 +363243,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除筛选视图" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除筛选视图" }, "use_when": { @@ -363693,6 +363408,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -363708,22 +363429,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -363734,9 +363467,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -363768,7 +363501,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -363909,11 +363643,8 @@ "cli_name": "delete-float-image", "cli_path": "sheet delete-float-image", "confirmation": "user_required", - "description": "删除钉钉电子表格中指定的浮动图片。", + "description": "删除钉钉表格指定工作表中的浮动图片。\n\n操作不可恢复,删除后图片将从工作表中移除。\nfloatImageId 可通过 list-float-images 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -364019,44 +363750,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定的浮动图片。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除钉钉表格指定工作表中的浮动图片。\n\n操作不可恢复,删除后图片将从工作表中移除。\nfloatImageId 可通过 list-float-images 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除钉钉电子表格中指定的浮动图片。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除钉钉电子表格中指定的浮动图片。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除钉钉表格指定工作表中的浮动图片。\n\n操作不可恢复,删除后图片将从工作表中移除。\nfloatImageId 可通过 list-float-images 获取。" }, "effect": { "candidates": [ @@ -364211,21 +363920,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除浮动图片" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除浮动图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除浮动图片" }, "use_when": { @@ -364375,6 +364084,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -364390,22 +364105,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -364416,9 +364143,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -364450,7 +364177,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -364617,7 +364345,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -364625,7 +364353,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -364669,7 +364397,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" @@ -364683,20 +364411,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "user_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 删除透视表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 删除透视表" @@ -364705,7 +364433,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" @@ -364719,7 +364447,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "destructive" }, @@ -364747,7 +364475,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" @@ -364761,7 +364489,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "unknown" }, @@ -364769,39 +364497,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -364809,7 +364537,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -364824,14 +364552,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -364847,7 +364568,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" @@ -364861,20 +364582,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "high" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "[危险] 删除透视表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "[危险] 删除透视表" @@ -364903,8 +364624,8 @@ "group": "pivot-table", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "delete_pivot_table", "parameter_count": 3, @@ -365031,16 +364752,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pivotTableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pivotTableId" + "review_reason": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -365091,7 +364820,6 @@ "value": "string" } }, - "property": "pivotTableId", "required": true, "type": "string" }, @@ -365121,16 +364849,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -365181,7 +364917,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -365219,11 +364954,8 @@ "cli_name": "delete-sheet", "cli_path": "sheet delete-sheet", "confirmation": "user_required", - "description": "删除钉钉电子表格中的指定工作表", + "description": "删除指定的工作表。此操作不可逆,删除后工作表及其所有数据将无法恢复。\n\n约束:\n - 不能删除隐藏的工作表(需先取消隐藏再删除)\n - 不能删除最后一个可见工作表(至少保留一个可见工作表)", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -365329,44 +365061,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除钉钉电子表格中的指定工作表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除指定的工作表。此操作不可逆,删除后工作表及其所有数据将无法恢复。\n\n约束:\n - 不能删除隐藏的工作表(需先取消隐藏再删除)\n - 不能删除最后一个可见工作表(至少保留一个可见工作表)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除钉钉电子表格中的指定工作表" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除钉钉电子表格中的指定工作表" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除指定的工作表。此操作不可逆,删除后工作表及其所有数据将无法恢复。\n\n约束:\n - 不能删除隐藏的工作表(需先取消隐藏再删除)\n - 不能删除最后一个可见工作表(至少保留一个可见工作表)" }, "effect": { "candidates": [ @@ -365521,21 +365231,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除工作表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除工作表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除工作表" }, "use_when": { @@ -365582,6 +365292,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -365597,22 +365313,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -365623,9 +365351,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -365657,7 +365385,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -365798,11 +365527,8 @@ "cli_name": "fill", "cli_path": "sheet range fill", "confirmation": "not_required", - "description": "基于源数据范围自动填充到目标范围。", + "description": "基于源数据范围自动填充到目标范围。\n\n目标范围须与源范围在行或列维度对齐(不支持对角填充)。\n\n填充类型 (--fill-type):\n 不传 自动检测(根据源数据智能判断:数值序列递增、日期递增、文本复制等)\n copy 复制内容和格式\n onlystyle 仅格式\n withoutstyle 仅值无格式", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -365900,44 +365626,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "基于源数据范围自动填充到目标范围。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "基于源数据范围自动填充到目标范围。\n\n目标范围须与源范围在行或列维度对齐(不支持对角填充)。\n\n填充类型 (--fill-type):\n 不传 自动检测(根据源数据智能判断:数值序列递增、日期递增、文本复制等)\n copy 复制内容和格式\n onlystyle 仅格式\n withoutstyle 仅值无格式" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "基于源数据范围自动填充到目标范围。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "基于源数据范围自动填充到目标范围。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "基于源数据范围自动填充到目标范围。\n\n目标范围须与源范围在行或列维度对齐(不支持对角填充)。\n\n填充类型 (--fill-type):\n 不传 自动检测(根据源数据智能判断:数值序列递增、日期递增、文本复制等)\n copy 复制内容和格式\n onlystyle 仅格式\n withoutstyle 仅值无格式" }, "effect": { "candidates": [ @@ -366076,22 +365780,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "区域自动填充" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "自动填充工作表指定区域" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "区域自动填充" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "区域自动填充" + "source": "cobra_help", + "value": "自动填充工作表指定区域" }, "use_when": { "candidates": [ @@ -366229,6 +365933,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -366244,22 +365954,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -366270,9 +365992,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -366304,7 +366026,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -366546,6 +366269,12 @@ "source": "cobra_usage", "value": "目标填充范围,A1 表示法 (必填,如 A6:A20)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "填充目标范围(必填),使用 A1 表示法。例如 \"A6:A20\"。须与源范围在行或列维度对齐(不支持对角填充)。" + }, { "precedence": "default", "selected": false, @@ -366581,22 +366310,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "destinationRange" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "targetRange" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "targetRange" + "source": "versioned_parameter_binding", + "value": "destinationRange" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -366607,9 +366348,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -366642,7 +366383,8 @@ } }, "format": "a1-range", - "property": "targetRange", + "interface_description": "填充目标范围(必填),使用 A1 表示法。例如 \"A6:A20\"。须与源范围在行或列维度对齐(不支持对角填充)。", + "property": "destinationRange", "required": true, "type": "string" } @@ -366653,7 +366395,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "区域自动填充", + "title": "自动填充工作表指定区域", "use_when": [ "当用户明确要求基于源数据范围自动填充到目标范围,且已确认目标对象和所需参数时使用。" ] @@ -366682,11 +366424,8 @@ "cli_name": "clear-criteria", "cli_path": "sheet filter clear-criteria", "confirmation": "not_required", - "description": "清除钉钉电子表格中指定工作表筛选的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示(前提是其他列的条件也不隐藏该行)。\r\n此操作仅清除指定列的条件,不会删除整个筛选。如需删除整个筛选,请使用 delete_filter。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "清除筛选中某一列的筛选条件。\n\n清除后该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示。\n仅清除指定列的条件,不删除整个筛选。如需删除整个筛选,使用 filter delete。\n指定列没有设置筛选条件时调用不会报错(幂等)。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -366792,44 +366531,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表筛选的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示(前提是其他列的条件也不隐藏该行)。\r\n此操作仅清除指定列的条件,不会删除整个筛选。如需删除整个筛选,请使用 delete_filter。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "清除筛选中某一列的筛选条件。\n\n清除后该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示。\n仅清除指定列的条件,不删除整个筛选。如需删除整个筛选,使用 filter delete。\n指定列没有设置筛选条件时调用不会报错(幂等)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表筛选的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示(前提是其他列的条件也不隐藏该行)。\r\n此操作仅清除指定列的条件,不会删除整个筛选。如需删除整个筛选,请使用 delete_filter。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "清除钉钉电子表格中指定工作表筛选的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示(前提是其他列的条件也不隐藏该行)。\r\n此操作仅清除指定列的条件,不会删除整个筛选。如需删除整个筛选,请使用 delete_filter。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "清除筛选中某一列的筛选条件。\n\n清除后该列不再参与筛选计算,之前被该列条件隐藏的行将重新显示。\n仅清除指定列的条件,不删除整个筛选。如需删除整个筛选,使用 filter delete。\n指定列没有设置筛选条件时调用不会报错(幂等)。" }, "effect": { "candidates": [ @@ -367007,22 +366724,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除筛选条件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "清除单列筛选条件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "清除筛选条件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除筛选条件" + "source": "cobra_help", + "value": "清除单列筛选条件" }, "use_when": { "candidates": [ @@ -367193,6 +366910,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -367208,22 +366931,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -367234,9 +366969,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -367268,7 +367003,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -367382,7 +367118,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "清除筛选条件", + "title": "清除单列筛选条件", "use_when": [ "当用户需要清除筛选中某一列的筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -367412,11 +367148,8 @@ "cli_name": "delete-criteria", "cli_path": "sheet filter-view delete-criteria", "confirmation": "user_required", - "description": "清除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:移除筛选视图中指定列的筛选条件,使该列不再参与过滤。\n场景:之前通过 update-criteria 设置了某列的筛选条件,现在需要取消该列的筛选以显示全部数据。\n区分:\n - delete-criteria 只删除指定列的条件,筛选视图本身和其他列的条件保持不变\n - filter-view delete 会删除整个筛选视图(包括所有列的条件)\n - 如果指定列没有设置筛选条件,调用此命令不会报错(幂等操作)\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -367529,44 +367262,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:移除筛选视图中指定列的筛选条件,使该列不再参与过滤。\n场景:之前通过 update-criteria 设置了某列的筛选条件,现在需要取消该列的筛选以显示全部数据。\n区分:\n - delete-criteria 只删除指定列的条件,筛选视图本身和其他列的条件保持不变\n - filter-view delete 会删除整个筛选视图(包括所有列的条件)\n - 如果指定列没有设置筛选条件,调用此命令不会报错(幂等操作)\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "清除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:移除筛选视图中指定列的筛选条件,使该列不再参与过滤。\n场景:之前通过 update-criteria 设置了某列的筛选条件,现在需要取消该列的筛选以显示全部数据。\n区分:\n - delete-criteria 只删除指定列的条件,筛选视图本身和其他列的条件保持不变\n - filter-view delete 会删除整个筛选视图(包括所有列的条件)\n - 如果指定列没有设置筛选条件,调用此命令不会报错(幂等操作)\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。" }, "effect": { "candidates": [ @@ -367758,22 +367469,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "清除筛选视图列条件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除筛选视图列条件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "清除筛选视图列条件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "清除筛选视图列条件" + "source": "cobra_help", + "value": "删除筛选视图列条件" }, "use_when": { "candidates": [ @@ -368047,6 +367758,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -368062,22 +367779,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -368088,9 +367817,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -368122,7 +367851,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -368236,7 +367966,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "清除筛选视图列条件", + "title": "删除筛选视图列条件", "use_when": [ "当用户需要删除钉钉电子表格中指定工作表筛选视图的某一列的筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -368265,7 +367995,7 @@ "cli_name": "get-criteria", "cli_path": "sheet filter-view get-criteria", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取钉钉电子表格中指定筛选视图某一列的筛选条件详情。\n\n用途:查看某个筛选视图中指定列当前设置的筛选条件。\n场景:在修改某列条件前,先查看其当前配置是否符合预期。\n实现:内部调用 get_filter_views 获取视图详情,提取指定列的条件返回。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n如果该列没有设置筛选条件,返回错误提示。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "display": "钉钉表格管理", "dry_run": { "preview_kind": "plan" @@ -368369,22 +368099,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉电子表格中指定筛选视图某一列的筛选条件详情。\n\n用途:查看某个筛选视图中指定列当前设置的筛选条件。\n场景:在修改某列条件前,先查看其当前配置是否符合预期。\n实现:内部调用 get_filter_views 获取视图详情,提取指定列的条件返回。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n如果该列没有设置筛选条件,返回错误提示。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" + "source": "cobra_help", + "value": "获取钉钉电子表格中指定筛选视图某一列的筛选条件详情。\n\n用途:查看某个筛选视图中指定列当前设置的筛选条件。\n场景:在修改某列条件前,先查看其当前配置是否符合预期。\n实现:内部调用 get_filter_views 获取视图详情,提取指定列的条件返回。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n如果该列没有设置筛选条件,返回错误提示。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" }, "dry_run": { "candidates": [ @@ -368586,22 +368316,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取筛选视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取单列筛选条件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取筛选视图" + "source": "cobra_help", + "value": "获取单列筛选条件" }, "use_when": { "candidates": [ @@ -368663,16 +368393,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local post-filter over get_filter_views response", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "column" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "column" + "review_reason": "local post-filter over get_filter_views response", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -368723,7 +368461,6 @@ "value": "integer" } }, - "property": "column", "required": true, "type": "integer" }, @@ -368753,16 +368490,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local post-filter over get_filter_views response", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterViewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterViewId" + "review_reason": "local post-filter over get_filter_views response", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -368813,7 +368558,6 @@ "value": "string" } }, - "property": "filterViewId", "required": true, "type": "string" }, @@ -368828,6 +368572,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -368843,22 +368593,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -368869,9 +368631,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -368903,7 +368665,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -369017,7 +368780,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取筛选视图", + "title": "获取单列筛选条件", "use_when": [ "当用户需要获取钉钉电子表格中指定筛选视图某一列的筛选条件详情,并能提供命令所需的查询条件时使用。" ] @@ -369046,7 +368809,7 @@ "cli_name": "info", "cli_path": "sheet filter-view info", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息。\n\n用途:查看指定筛选视图的名称、范围和筛选条件等完整信息。\n场景:在修改或删除筛选视图前,先查看其当前配置;或确认 update-criteria 后条件是否生效。\n实现:内部调用 get_filter_views 获取全部列表,按 --filter-view-id 过滤出目标视图返回。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "display": "钉钉表格管理", "dry_run": { "preview_kind": "plan" @@ -369150,22 +368913,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息。\n\n用途:查看指定筛选视图的名称、范围和筛选条件等完整信息。\n场景:在修改或删除筛选视图前,先查看其当前配置;或确认 update-criteria 后条件是否生效。\n实现:内部调用 get_filter_views 获取全部列表,按 --filter-view-id 过滤出目标视图返回。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" + "source": "cobra_help", + "value": "获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息。\n\n用途:查看指定筛选视图的名称、范围和筛选条件等完整信息。\n场景:在修改或删除筛选视图前,先查看其当前配置;或确认 update-criteria 后条件是否生效。\n实现:内部调用 get_filter_views 获取全部列表,按 --filter-view-id 过滤出目标视图返回。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" }, "dry_run": { "candidates": [ @@ -369367,22 +369130,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取筛选视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取单个筛选视图详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取筛选视图" + "source": "cobra_help", + "value": "获取单个筛选视图详情" }, "use_when": { "candidates": [ @@ -369444,16 +369207,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local post-filter over get_filter_views response", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterViewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterViewId" + "review_reason": "local post-filter over get_filter_views response", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -369504,7 +369275,6 @@ "value": "string" } }, - "property": "filterViewId", "required": true, "type": "string" }, @@ -369519,6 +369289,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -369534,22 +369310,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -369560,9 +369348,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -369594,7 +369382,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -369708,7 +369497,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取筛选视图", + "title": "获取单个筛选视图详情", "use_when": [ "当用户需要获取钉钉电子表格中指定工作表的某一个筛选视图的详细信息,并能提供命令所需的查询条件时使用。" ] @@ -369737,7 +369526,7 @@ "cli_name": "list-criteria", "cli_path": "sheet filter-view list-criteria", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "列出钉钉电子表格中指定筛选视图的所有列筛选条件。\n\n用途:查看某个筛选视图当前已设置了哪些列的筛选条件,包括每列的条件类型和具体规则。\n场景:在管理筛选条件(修改/删除特定列条件)前,先了解当前视图设置了哪些条件。\n实现:内部调用 get_filter_views 获取视图详情,提取其中的 criteria 字段返回。\n\n如果该视图没有设置任何筛选条件,返回空对象 {}。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。", "display": "钉钉表格管理", "dry_run": { "preview_kind": "plan" @@ -369841,22 +369630,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出钉钉电子表格中指定筛选视图的所有列筛选条件。\n\n用途:查看某个筛选视图当前已设置了哪些列的筛选条件,包括每列的条件类型和具体规则。\n场景:在管理筛选条件(修改/删除特定列条件)前,先了解当前视图设置了哪些条件。\n实现:内部调用 get_filter_views 获取视图详情,提取其中的 criteria 字段返回。\n\n如果该视图没有设置任何筛选条件,返回空对象 {}。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" + "source": "cobra_help", + "value": "列出钉钉电子表格中指定筛选视图的所有列筛选条件。\n\n用途:查看某个筛选视图当前已设置了哪些列的筛选条件,包括每列的条件类型和具体规则。\n场景:在管理筛选条件(修改/删除特定列条件)前,先了解当前视图设置了哪些条件。\n实现:内部调用 get_filter_views 获取视图详情,提取其中的 criteria 字段返回。\n\n如果该视图没有设置任何筛选条件,返回空对象 {}。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。" }, "dry_run": { "candidates": [ @@ -370058,22 +369847,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取筛选视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出筛选视图所有列条件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取筛选视图" + "source": "cobra_help", + "value": "列出筛选视图所有列条件" }, "use_when": { "candidates": [ @@ -370135,16 +369924,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local post-filter over get_filter_views response", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterViewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterViewId" + "review_reason": "local post-filter over get_filter_views response", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -370195,7 +369992,6 @@ "value": "string" } }, - "property": "filterViewId", "required": true, "type": "string" }, @@ -370210,6 +370006,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -370225,22 +370027,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -370251,9 +370065,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -370285,7 +370099,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -370399,7 +370214,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取筛选视图", + "title": "列出筛选视图所有列条件", "use_when": [ "当用户需要列出钉钉电子表格中指定筛选视图的所有列筛选条件,并能提供命令所需的查询条件时使用。" ] @@ -370431,9 +370246,6 @@ "confirmation": "not_required", "description": "更新钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:为筛选视图的指定列创建或更新筛选条件,控制该列哪些数据行可见。\n场景:\n - 只显示某些特定值的行(如\"只看研发部\")→ 使用 filterType: values\n - 按数值条件筛选(如\"绩效 ≥ 85\")→ 使用 filterType: condition + operator: greater-equal\n - 按文本条件筛选(如\"名称包含关键字\")→ 使用 filterType: condition + operator: contains\n区分:\n - update-criteria 精确控制单列条件,适合逐列设置不同的筛选逻辑\n - filter-view update --criteria 可以批量更新多列条件,适合一次性设置多列\n - delete-criteria 是 update-criteria 的逆操作,删除指定列的条件\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n--filter-criteria 为该列的筛选条件 JSON 对象,支持三种筛选类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值(最多 2 个)\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色\n\ncondition 类型支持的 operator(必须使用 kebab-case 格式):\n equal, not-equal, contains, not-contains,\n starts-with, not-starts-with, ends-with, not-ends-with,\n greater, greater-equal, less, less-equal\n\n多条件之间通过 conditionOperator 指定逻辑关系:\"and\"(且,默认)或 \"or\"(或)。\n\n更新条件后会立即在该筛选视图中生效。筛选视图的条件仅影响当前视图,不影响全局筛选或其他筛选视图。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -370460,7 +370272,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -370468,7 +370280,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -370533,39 +370345,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:为筛选视图的指定列创建或更新筛选条件,控制该列哪些数据行可见。\n场景:\n - 只显示某些特定值的行(如\"只看研发部\")→ 使用 filterType: values\n - 按数值条件筛选(如\"绩效 ≥ 85\")→ 使用 filterType: condition + operator: greater-equal\n - 按文本条件筛选(如\"名称包含关键字\")→ 使用 filterType: condition + operator: contains\n区分:\n - update-criteria 精确控制单列条件,适合逐列设置不同的筛选逻辑\n - filter-view update --criteria 可以批量更新多列条件,适合一次性设置多列\n - delete-criteria 是 update-criteria 的逆操作,删除指定列的条件\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n--filter-criteria 为该列的筛选条件 JSON 对象,支持三种筛选类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值(最多 2 个)\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色\n\ncondition 类型支持的 operator(必须使用 kebab-case 格式):\n equal, not-equal, contains, not-contains,\n starts-with, not-starts-with, ends-with, not-ends-with,\n greater, greater-equal, less, less-equal\n\n多条件之间通过 conditionOperator 指定逻辑关系:\"and\"(且,默认)或 \"or\"(或)。\n\n更新条件后会立即在该筛选视图中生效。筛选视图的条件仅影响当前视图,不影响全局筛选或其他筛选视图。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新钉钉电子表格中指定工作表筛选视图的某一列的筛选条件。\n\n用途:为筛选视图的指定列创建或更新筛选条件,控制该列哪些数据行可见。\n场景:\n - 只显示某些特定值的行(如\"只看研发部\")→ 使用 filterType: values\n - 按数值条件筛选(如\"绩效 ≥ 85\")→ 使用 filterType: condition + operator: greater-equal\n - 按文本条件筛选(如\"名称包含关键字\")→ 使用 filterType: condition + operator: contains\n区分:\n - update-criteria 精确控制单列条件,适合逐列设置不同的筛选逻辑\n - filter-view update --criteria 可以批量更新多列条件,适合一次性设置多列\n - delete-criteria 是 update-criteria 的逆操作,删除指定列的条件\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图,通过 --column 指定目标列。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n--column 为列偏移量(从 0 开始),相对于筛选视图范围首列。\n例如筛选视图范围为 B1:E10,则 --column 0 代表 B 列,--column 1 代表 C 列。\n\n--filter-criteria 为该列的筛选条件 JSON 对象,支持三种筛选类型:\n values 按值筛选,通过 visibleValues 指定允许显示的值列表\n condition 按条件筛选,通过 conditions 指定条件运算符和比较值(最多 2 个)\n color 按颜色筛选,通过 backgroundColor 或 fontColor 指定颜色\n\ncondition 类型支持的 operator(必须使用 kebab-case 格式):\n equal, not-equal, contains, not-contains,\n starts-with, not-starts-with, ends-with, not-ends-with,\n greater, greater-equal, less, less-equal\n\n多条件之间通过 conditionOperator 指定逻辑关系:\"and\"(且,默认)或 \"or\"(或)。\n\n更新条件后会立即在该筛选视图中生效。筛选视图的条件仅影响当前视图,不影响全局筛选或其他筛选视图。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -370641,39 +370431,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -370690,7 +370480,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -370710,13 +370500,6 @@ "source": "internal/cli/schema_hints/catalog-completeness.json", "value": true }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, { "precedence": "reviewed_explicit", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", @@ -370756,13 +370539,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新筛选视图列条件" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新筛选视图列条件" @@ -370791,8 +370574,8 @@ "group": "filter-view", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "filter_view_update_criteria", "parameter_count": 5, @@ -370823,16 +370606,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --column is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "column" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "column" + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --column is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -370883,7 +370674,6 @@ "value": "integer" } }, - "property": "column", "required": true, "type": "integer" }, @@ -370913,16 +370703,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-criteria is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterCriteria" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterCriteria" + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-criteria is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -370973,7 +370771,6 @@ "value": "string" } }, - "property": "filterCriteria", "required": true, "type": "string" }, @@ -371003,16 +370800,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-view-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterViewId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterViewId" + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-view-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -371063,7 +370868,6 @@ "value": "string" } }, - "property": "filterViewId", "required": true, "type": "string" }, @@ -371093,16 +370897,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -371153,7 +370965,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -371183,16 +370994,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -371243,7 +371062,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -371280,11 +371098,8 @@ "cli_name": "find", "cli_path": "sheet find", "confirmation": "not_required", - "description": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 text 指定查找内容。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n支持多种查找模式:\r\n- 默认模式:在单元格值中进行子字符串匹配(区分大小写)\r\n- 忽略大小写:通过 matchCase: false 实现\r\n- 完整单元格匹配:通过 matchEntireCell: true 实现,仅匹配内容完全相同的单元格\r\n- 正则表达式:通过 useRegExp: true 实现,text 作为正则表达式进行匹配\r\n- 搜索公式:通过 matchFormulaText: true 实现,在公式文本中查找而非计算结果\r\n- 包含隐藏单元格:通过 includeHidden: true 实现\r\n\r\n返回所有匹配单元格的地址(A1 表示法)列表。若无匹配结果,返回空数组。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可查找。不支持跨组织查询。", + "description": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --query 指定查找内容(--find 为其别名)。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n支持多种查找模式:\n 默认模式 在单元格值中进行子字符串匹配(区分大小写)\n 忽略大小写 通过 --match-case=false 实现\n 完整单元格匹配 通过 --match-entire-cell 实现\n 正则表达式 通过 --use-regexp 实现,--query 作为正则表达式匹配\n 搜索公式文本 通过 --match-formula 实现,在公式文本中查找而非计算结果\n 包含隐藏单元格 通过 --include-hidden 实现\n\n可通过 --range 限定搜索范围(A1 表示法),不传时搜索整个工作表。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -371382,44 +371197,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 text 指定查找内容。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n支持多种查找模式:\r\n- 默认模式:在单元格值中进行子字符串匹配(区分大小写)\r\n- 忽略大小写:通过 matchCase: false 实现\r\n- 完整单元格匹配:通过 matchEntireCell: true 实现,仅匹配内容完全相同的单元格\r\n- 正则表达式:通过 useRegExp: true 实现,text 作为正则表达式进行匹配\r\n- 搜索公式:通过 matchFormulaText: true 实现,在公式文本中查找而非计算结果\r\n- 包含隐藏单元格:通过 includeHidden: true 实现\r\n\r\n返回所有匹配单元格的地址(A1 表示法)列表。若无匹配结果,返回空数组。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可查找。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --query 指定查找内容(--find 为其别名)。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n支持多种查找模式:\n 默认模式 在单元格值中进行子字符串匹配(区分大小写)\n 忽略大小写 通过 --match-case=false 实现\n 完整单元格匹配 通过 --match-entire-cell 实现\n 正则表达式 通过 --use-regexp 实现,--query 作为正则表达式匹配\n 搜索公式文本 通过 --match-formula 实现,在公式文本中查找而非计算结果\n 包含隐藏单元格 通过 --include-hidden 实现\n\n可通过 --range 限定搜索范围(A1 表示法),不传时搜索整个工作表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 text 指定查找内容。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n支持多种查找模式:\r\n- 默认模式:在单元格值中进行子字符串匹配(区分大小写)\r\n- 忽略大小写:通过 matchCase: false 实现\r\n- 完整单元格匹配:通过 matchEntireCell: true 实现,仅匹配内容完全相同的单元格\r\n- 正则表达式:通过 useRegExp: true 实现,text 作为正则表达式进行匹配\r\n- 搜索公式:通过 matchFormulaText: true 实现,在公式文本中查找而非计算结果\r\n- 包含隐藏单元格:通过 includeHidden: true 实现\r\n\r\n返回所有匹配单元格的地址(A1 表示法)列表。若无匹配结果,返回空数组。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可查找。不支持跨组织查询。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 text 指定查找内容。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n支持多种查找模式:\r\n- 默认模式:在单元格值中进行子字符串匹配(区分大小写)\r\n- 忽略大小写:通过 matchCase: false 实现\r\n- 完整单元格匹配:通过 matchEntireCell: true 实现,仅匹配内容完全相同的单元格\r\n- 正则表达式:通过 useRegExp: true 实现,text 作为正则表达式进行匹配\r\n- 搜索公式:通过 matchFormulaText: true 实现,在公式文本中查找而非计算结果\r\n- 包含隐藏单元格:通过 includeHidden: true 实现\r\n\r\n返回所有匹配单元格的地址(A1 表示法)列表。若无匹配结果,返回空数组。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可查找。不支持跨组织查询。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --query 指定查找内容(--find 为其别名)。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n支持多种查找模式:\n 默认模式 在单元格值中进行子字符串匹配(区分大小写)\n 忽略大小写 通过 --match-case=false 实现\n 完整单元格匹配 通过 --match-entire-cell 实现\n 正则表达式 通过 --use-regexp 实现,--query 作为正则表达式匹配\n 搜索公式文本 通过 --match-formula 实现,在公式文本中查找而非计算结果\n 包含隐藏单元格 通过 --include-hidden 实现\n\n可通过 --range 限定搜索范围(A1 表示法),不传时搜索整个工作表。" }, "effect": { "candidates": [ @@ -371558,22 +371351,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查找" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在工作表中搜索单元格内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查找" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查找" + "source": "cobra_help", + "value": "在工作表中搜索单元格内容" }, "use_when": { "candidates": [ @@ -371899,6 +371692,12 @@ "source": "cobra_usage", "value": "搜索公式文本而非显示值" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否在公式文本中查找(而非公式计算结果)。默认为 false,即在单元格显示值中查找。" + }, { "precedence": "default", "selected": false, @@ -371914,16 +371713,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "matchFormulaText" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "matchFormula" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "matchFormula" + "source": "versioned_parameter_binding", + "value": "matchFormulaText" }, "required": { "candidates": [ @@ -371968,7 +371773,8 @@ "value": "boolean" } }, - "property": "matchFormula", + "interface_description": "是否在公式文本中查找(而非公式计算结果)。默认为 false,即在单元格显示值中查找。", + "property": "matchFormulaText", "required": false, "type": "boolean" }, @@ -371983,6 +371789,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -371998,22 +371810,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -372024,9 +371848,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -372058,7 +371882,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -372073,6 +371898,12 @@ "source": "cobra_usage", "value": "搜索文本 (必填,别名: --find)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要查找的文本内容(必填)。当 useRegExp 为 true 时,作为正则表达式处理。不能为空字符串。" + }, { "precedence": "default", "selected": false, @@ -372088,22 +371919,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "text" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "text" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -372114,9 +371957,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -372148,7 +371991,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "要查找的文本内容(必填)。当 useRegExp 为 true 时,作为正则表达式处理。不能为空字符串。", + "property": "text", "required": true, "type": "string" }, @@ -372378,6 +372222,12 @@ "source": "cobra_usage", "value": "启用正则表达式搜索" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否将 text 作为正则表达式进行匹配。默认为 false。启用时 text 必须是合法的正则表达式。" + }, { "precedence": "default", "selected": false, @@ -372393,16 +372243,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "useRegExp" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "useRegexp" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "useRegexp" + "source": "versioned_parameter_binding", + "value": "useRegExp" }, "required": { "candidates": [ @@ -372447,7 +372303,8 @@ "value": "boolean" } }, - "property": "useRegexp", + "interface_description": "是否将 text 作为正则表达式进行匹配。默认为 false。启用时 text 必须是合法的正则表达式。", + "property": "useRegExp", "required": false, "type": "boolean" } @@ -372458,7 +372315,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "查找", + "title": "在工作表中搜索单元格内容", "use_when": [ "当用户需要在钉钉电子表格的指定工作表中查找匹配指定文本的所有单元格,返回匹配的单元格地址和值,并能提供命令所需的查询条件时使用。" ] @@ -372493,11 +372350,8 @@ "cli_name": "list", "cli_path": "sheet list", "confirmation": "not_required", - "description": "获取钉钉电子表格中的所有工作表列表。\r\n\r\n通过 nodeId 定位电子表格文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n返回该电子表格下所有工作表的 ID 和名称,可用于后续调用 get_sheet 或 get_range 时指定目标工作表。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", + "description": "获取钉钉电子表格中所有工作表的 ID 和名称。\n返回的 sheetId 可用于 info / range read (别名 get) / range update 等后续操作。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -372595,44 +372449,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中的所有工作表列表。\r\n\r\n通过 nodeId 定位电子表格文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n返回该电子表格下所有工作表的 ID 和名称,可用于后续调用 get_sheet 或 get_range 时指定目标工作表。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉电子表格中所有工作表的 ID 和名称。\n返回的 sheetId 可用于 info / range read (别名 get) / range update 等后续操作。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中的所有工作表列表。\r\n\r\n通过 nodeId 定位电子表格文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n返回该电子表格下所有工作表的 ID 和名称,可用于后续调用 get_sheet 或 get_range 时指定目标工作表。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中的所有工作表列表。\r\n\r\n通过 nodeId 定位电子表格文档,支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\n返回该电子表格下所有工作表的 ID 和名称,可用于后续调用 get_sheet 或 get_range 时指定目标工作表。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取钉钉电子表格中所有工作表的 ID 和名称。\n返回的 sheetId 可用于 info / range read (别名 get) / range update 等后续操作。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}" }, "effect": { "candidates": [ @@ -372777,22 +372609,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取所有工作表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取全部工作表列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取所有工作表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取所有工作表" + "source": "cobra_help", + "value": "获取全部工作表列表" }, "use_when": { "candidates": [ @@ -372838,6 +372670,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -372853,16 +372691,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ @@ -372872,6 +372716,12 @@ "source": "tool_schema_hint", "value": true }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "inference", "selected": false, @@ -372919,7 +372769,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识,支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" } @@ -372930,7 +372781,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取所有工作表", + "title": "获取全部工作表列表", "use_when": [ "当用户需要获取钉钉电子表格中所有工作表的 ID 和名称,并能提供命令所需的查询条件时使用。" ] @@ -372958,11 +372809,8 @@ "cli_name": "list", "cli_path": "sheet cond-format list", "confirmation": "not_required", - "description": "获取指定工作表中的所有条件格式规则,或通过 ruleId 获取单个规则的详情。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\r\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\r\n支持的条件类型包括:数值比较、文本包含、空值/非空、错误值、重复/唯一值、自定义公式、排名、高于/低于平均值、标准差、时间段、数据条、图标集、色阶。", + "description": "获取钉钉电子表格中指定工作表的所有条件格式规则,或通过 --rule-id 获取单个规则的详情。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -373068,44 +372916,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定工作表中的所有条件格式规则,或通过 ruleId 获取单个规则的详情。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\r\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\r\n支持的条件类型包括:数值比较、文本包含、空值/非空、错误值、重复/唯一值、自定义公式、排名、高于/低于平均值、标准差、时间段、数据条、图标集、色阶。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉电子表格中指定工作表的所有条件格式规则,或通过 --rule-id 获取单个规则的详情。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定工作表中的所有条件格式规则,或通过 ruleId 获取单个规则的详情。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\r\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\r\n支持的条件类型包括:数值比较、文本包含、空值/非空、错误值、重复/唯一值、自定义公式、排名、高于/低于平均值、标准差、时间段、数据条、图标集、色阶。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定工作表中的所有条件格式规则,或通过 ruleId 获取单个规则的详情。\r\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\r\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\r\n支持的条件类型包括:数值比较、文本包含、空值/非空、错误值、重复/唯一值、自定义公式、排名、高于/低于平均值、标准差、时间段、数据条、图标集、色阶。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取钉钉电子表格中指定工作表的所有条件格式规则,或通过 --rule-id 获取单个规则的详情。\n\n条件格式规则定义了当单元格满足特定条件时自动应用的样式(如背景色、字体颜色等)。\n返回的每条规则包含:规则 ID、应用范围、条件类型及参数、命中时的单元格样式。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -373275,21 +373101,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取条件格式规则" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "获取条件格式规则" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "获取条件格式规则" }, "use_when": { @@ -373337,6 +373163,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -373352,22 +373184,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -373378,9 +373222,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -373412,7 +373256,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -373644,11 +373489,8 @@ "cli_name": "get-dropdown", "cli_path": "sheet get-dropdown", "confirmation": "not_required", - "description": "查询钉钉表格指定范围内的下拉列表配置。", + "description": "查询钉钉表格指定范围内的下拉列表配置。\n\n返回范围内所有单元格的下拉列表配置信息,包括选项值和颜色。\n如果范围内存在多个不同的下拉列表配置,会分别返回每组配置及其覆盖的单元格列表。\n如果范围内没有设置下拉列表,返回空。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -373754,44 +373596,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询钉钉表格指定范围内的下拉列表配置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询钉钉表格指定范围内的下拉列表配置。\n\n返回范围内所有单元格的下拉列表配置信息,包括选项值和颜色。\n如果范围内存在多个不同的下拉列表配置,会分别返回每组配置及其覆盖的单元格列表。\n如果范围内没有设置下拉列表,返回空。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询钉钉表格指定范围内的下拉列表配置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询钉钉表格指定范围内的下拉列表配置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询钉钉表格指定范围内的下拉列表配置。\n\n返回范围内所有单元格的下拉列表配置信息,包括选项值和颜色。\n如果范围内存在多个不同的下拉列表配置,会分别返回每组配置及其覆盖的单元格列表。\n如果范围内没有设置下拉列表,返回空。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -373961,22 +373781,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取下拉列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取下拉列表配置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取下拉列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取下拉列表" + "source": "cobra_help", + "value": "获取下拉列表配置" }, "use_when": { "candidates": [ @@ -374022,6 +373842,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -374037,22 +373863,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -374063,9 +373901,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -374097,7 +373935,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -374335,7 +374174,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取下拉列表", + "title": "获取下拉列表配置", "use_when": [ "当用户需要查询钉钉表格指定范围内的下拉列表配置,并能提供命令所需的查询条件时使用。" ] @@ -374363,11 +374202,8 @@ "cli_name": "get", "cli_path": "sheet filter get", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的筛选信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回当前工作表的筛选范围和各列的筛选条件详情。\r\n筛选条件类型包括:\r\n- 按值筛选(filterType: values):指定允许显示的值列表\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n如果工作表未设置筛选,返回结果中筛选信息为空。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情。\n\n如果工作表未设置筛选,返回结果中筛选信息为空。\n全局筛选影响所有协作者看到的数据展示,每个工作表最多一个。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -374473,44 +374309,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的筛选信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回当前工作表的筛选范围和各列的筛选条件详情。\r\n筛选条件类型包括:\r\n- 按值筛选(filterType: values):指定允许显示的值列表\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n如果工作表未设置筛选,返回结果中筛选信息为空。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情。\n\n如果工作表未设置筛选,返回结果中筛选信息为空。\n全局筛选影响所有协作者看到的数据展示,每个工作表最多一个。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的筛选信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回当前工作表的筛选范围和各列的筛选条件详情。\r\n筛选条件类型包括:\r\n- 按值筛选(filterType: values):指定允许显示的值列表\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n如果工作表未设置筛选,返回结果中筛选信息为空。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的筛选信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回当前工作表的筛选范围和各列的筛选条件详情。\r\n筛选条件类型包括:\r\n- 按值筛选(filterType: values):指定允许显示的值列表\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n如果工作表未设置筛选,返回结果中筛选信息为空。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情。\n\n如果工作表未设置筛选,返回结果中筛选信息为空。\n全局筛选影响所有协作者看到的数据展示,每个工作表最多一个。" }, "effect": { "candidates": [ @@ -374680,22 +374494,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取筛选" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取全局筛选信息" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取筛选" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取筛选" + "source": "cobra_help", + "value": "获取全局筛选信息" }, "use_when": { "candidates": [ @@ -374742,6 +374556,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -374757,22 +374577,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -374783,9 +374615,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -374817,7 +374649,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -374931,7 +374764,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取筛选", + "title": "获取全局筛选信息", "use_when": [ "当用户需要获取指定工作表的全局筛选信息,返回筛选范围和各列的筛选条件详情,并能提供命令所需的查询条件时使用。" ] @@ -374959,11 +374792,8 @@ "cli_name": "list", "cli_path": "sheet filter-view list", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\n\n用途:查看当前工作表上已创建的所有筛选视图,获取视图 ID、名称和范围信息。\n场景:在对筛选视图进行 update / delete / update-criteria 等操作前,先用 list 获取可用的 filterViewId。\n区分:筛选视图(filter-view)是个人化的数据过滤方式,与全局筛选(filter)不同。每个用户可以创建自己的筛选视图,互不影响原始数据。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n返回该工作表下所有筛选视图的 ID、名称和范围信息。如果没有筛选视图,返回空列表。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -375069,44 +374899,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\n\n用途:查看当前工作表上已创建的所有筛选视图,获取视图 ID、名称和范围信息。\n场景:在对筛选视图进行 update / delete / update-criteria 等操作前,先用 list 获取可用的 filterViewId。\n区分:筛选视图(filter-view)是个人化的数据过滤方式,与全局筛选(filter)不同。每个用户可以创建自己的筛选视图,互不影响原始数据。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n返回该工作表下所有筛选视图的 ID、名称和范围信息。如果没有筛选视图,返回空列表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n筛选视图是独立于全局筛选的个人化数据过滤方式,不同用户可以创建自己的筛选视图,互不影响。\r\n返回该工作表下所有筛选视图的 ID、名称和范围信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取钉钉电子表格中指定工作表的所有筛选视图列表。\n\n用途:查看当前工作表上已创建的所有筛选视图,获取视图 ID、名称和范围信息。\n场景:在对筛选视图进行 update / delete / update-criteria 等操作前,先用 list 获取可用的 filterViewId。\n区分:筛选视图(filter-view)是个人化的数据过滤方式,与全局筛选(filter)不同。每个用户可以创建自己的筛选视图,互不影响原始数据。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n返回该工作表下所有筛选视图的 ID、名称和范围信息。如果没有筛选视图,返回空列表。" }, "effect": { "candidates": [ @@ -375276,22 +375084,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取筛选视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取所有筛选视图" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取筛选视图" + "source": "cobra_help", + "value": "获取所有筛选视图" }, "use_when": { "candidates": [ @@ -375338,6 +375146,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -375353,22 +375167,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -375379,9 +375205,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -375413,7 +375239,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -375527,7 +375354,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取筛选视图", + "title": "获取所有筛选视图", "use_when": [ "当用户需要获取钉钉电子表格中指定工作表的所有筛选视图列表,并能提供命令所需的查询条件时使用。" ] @@ -375553,11 +375380,8 @@ "cli_name": "get-float-image", "cli_path": "sheet get-float-image", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定浮动图片的详细信息。", + "description": "获取钉钉表格指定工作表中某个浮动图片的详细信息。\n\n返回浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息。\nfloatImageId 可通过 list-float-images 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -375655,44 +375479,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定浮动图片的详细信息。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取钉钉表格指定工作表中某个浮动图片的详细信息。\n\n返回浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息。\nfloatImageId 可通过 list-float-images 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定浮动图片的详细信息。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定浮动图片的详细信息。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取钉钉表格指定工作表中某个浮动图片的详细信息。\n\n返回浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息。\nfloatImageId 可通过 list-float-images 获取。" }, "effect": { "candidates": [ @@ -375831,22 +375633,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取单张浮动图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取浮动图片详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取单张浮动图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取单张浮动图片" + "source": "cobra_help", + "value": "获取浮动图片详情" }, "use_when": { "candidates": [ @@ -375995,6 +375797,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -376010,22 +375818,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -376036,9 +375856,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -376070,7 +375890,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -376184,7 +376005,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取单张浮动图片", + "title": "获取浮动图片详情", "use_when": [ "当用户需要获取钉钉表格指定工作表中某个浮动图片的详细信息,并能提供命令所需的查询条件时使用。" ] @@ -376212,11 +376033,8 @@ "cli_name": "csv-get", "cli_path": "sheet csv-get", "confirmation": "not_required", - "description": "以 RFC 4180 CSV 格式读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n与 get_range 的区别:\r\n- 返回 CSV 文本而非 JSON 二维数组,token 消耗约为 JSON 的 1/3\r\n- 每行前加 [row=N] 前缀标注真实表格行号,防止行号计算错误\r\n- 返回 colIndices 列字母映射数组,防止手数列号\r\n- 内置 maxChars 防爆保护,超限自动截断并设 hasMore=true\r\n- 支持 valueRenderOption 选择返回格式化展示值、原始值或公式文本", + "description": "以 RFC 4180 CSV 格式读取钉钉电子表格数据。\n\n返回内容:\n csv 带 [row=N] 行号前缀的 CSV 文本\n colIndices 列字母映射数组(定位列用 colIndices[j],禁止手数逗号)\n rowIndices 行号映射数组\n hasMore 是否因 maxChars 截断\n\n取值模式(--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n与 range read 的区别:\n - CSV 格式 token 消耗约为 JSON 的 1/3\n - 支持选择取值模式\n - 自动防爆(max-chars 截断 + has_more 标志)\n - [row=N] 前缀防止行号计算错误\n\n注意:csv-get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -376322,44 +376140,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "以 RFC 4180 CSV 格式读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n与 get_range 的区别:\r\n- 返回 CSV 文本而非 JSON 二维数组,token 消耗约为 JSON 的 1/3\r\n- 每行前加 [row=N] 前缀标注真实表格行号,防止行号计算错误\r\n- 返回 colIndices 列字母映射数组,防止手数列号\r\n- 内置 maxChars 防爆保护,超限自动截断并设 hasMore=true\r\n- 支持 valueRenderOption 选择返回格式化展示值、原始值或公式文本" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "以 RFC 4180 CSV 格式读取钉钉电子表格数据。\n\n返回内容:\n csv 带 [row=N] 行号前缀的 CSV 文本\n colIndices 列字母映射数组(定位列用 colIndices[j],禁止手数逗号)\n rowIndices 行号映射数组\n hasMore 是否因 maxChars 截断\n\n取值模式(--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n与 range read 的区别:\n - CSV 格式 token 消耗约为 JSON 的 1/3\n - 支持选择取值模式\n - 自动防爆(max-chars 截断 + has_more 标志)\n - [row=N] 前缀防止行号计算错误\n\n注意:csv-get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "以 RFC 4180 CSV 格式读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n与 get_range 的区别:\r\n- 返回 CSV 文本而非 JSON 二维数组,token 消耗约为 JSON 的 1/3\r\n- 每行前加 [row=N] 前缀标注真实表格行号,防止行号计算错误\r\n- 返回 colIndices 列字母映射数组,防止手数列号\r\n- 内置 maxChars 防爆保护,超限自动截断并设 hasMore=true\r\n- 支持 valueRenderOption 选择返回格式化展示值、原始值或公式文本" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "以 RFC 4180 CSV 格式读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n与 get_range 的区别:\r\n- 返回 CSV 文本而非 JSON 二维数组,token 消耗约为 JSON 的 1/3\r\n- 每行前加 [row=N] 前缀标注真实表格行号,防止行号计算错误\r\n- 返回 colIndices 列字母映射数组,防止手数列号\r\n- 内置 maxChars 防爆保护,超限自动截断并设 hasMore=true\r\n- 支持 valueRenderOption 选择返回格式化展示值、原始值或公式文本" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "以 RFC 4180 CSV 格式读取钉钉电子表格数据。\n\n返回内容:\n csv 带 [row=N] 行号前缀的 CSV 文本\n colIndices 列字母映射数组(定位列用 colIndices[j],禁止手数逗号)\n rowIndices 行号映射数组\n hasMore 是否因 maxChars 截断\n\n取值模式(--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n与 range read 的区别:\n - CSV 格式 token 消耗约为 JSON 的 1/3\n - 支持选择取值模式\n - 自动防爆(max-chars 截断 + has_more 标志)\n - [row=N] 前缀防止行号计算错误\n\n注意:csv-get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。" }, "effect": { "candidates": [ @@ -376529,21 +376325,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "以 CSV 格式读取工作表数据" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "以 CSV 格式读取工作表数据" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "以 CSV 格式读取工作表数据" }, "use_when": { @@ -376708,6 +376504,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持文档链接 URL 或 dentryUuid。" + }, { "precedence": "default", "selected": false, @@ -376723,22 +376525,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -376749,9 +376563,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -376783,7 +376597,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持文档链接 URL 或 dentryUuid。", + "property": "nodeId", "required": true, "type": "string" }, @@ -377099,6 +376914,8 @@ "cobra-help:dws sheet group-dimension --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-dimension-operations.md" @@ -377115,10 +376932,7 @@ "confirmation": "not_required", "description": "对钉钉表格指定工作表中的连续整行或整列创建分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n创建后可通过 sheet info --include groups 回读 rowGroups / columnGroups。\n\n--group-state 支持 expand / fold,默认 expand。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet group-dimension --node NODE_ID --sheet-id SHEET_ID --range 3:7" @@ -377143,15 +376957,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -377193,66 +377009,60 @@ "confirmation": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "not_required" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "not_required" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "对钉钉表格指定工作表中的连续整行或整列创建分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n创建后可通过 sheet info --include groups 回读 rowGroups / columnGroups。\n\n--group-state 支持 expand / fold,默认 expand。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "对钉钉表格指定工作表中的连续整行或整列创建分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n创建后可通过 sheet info --include groups 回读 rowGroups / columnGroups。\n\n--group-state 支持 expand / fold,默认 expand。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "read" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "read" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" }, "examples": { "candidates": [ @@ -377277,59 +377087,71 @@ "idempotency": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "idempotent" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "idempotent" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -377341,6 +377163,13 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true + }, { "precedence": "unreviewed_explicit", "selected": false, @@ -377357,27 +377186,35 @@ "risk": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "low" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "low" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "对指定连续行/列创建分组" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "对指定连续行/列创建分组" @@ -377404,9 +377241,9 @@ } }, "has_parameters": true, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "group_dimension", "parameter_count": 4, @@ -377438,16 +377275,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --group-state is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "groupState" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "groupState" + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --group-state is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -377498,7 +377343,6 @@ "value": "string" } }, - "property": "groupState", "required": false, "type": "string" }, @@ -377528,16 +377372,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -377588,7 +377440,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -377618,16 +377469,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -377678,7 +377537,6 @@ "value": "string" } }, - "property": "range", "required": true, "type": "string" }, @@ -377708,16 +377566,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -377768,7 +377634,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -377777,7 +377642,7 @@ "primary_cli_path": "sheet group-dimension", "product_id": "sheet", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", "title": "对指定连续行/列创建分组", "use_when": [ @@ -377806,9 +377671,6 @@ "confirmation": "not_required", "description": "隐藏工作表网格线", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -377835,7 +377697,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -377843,7 +377705,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -377887,7 +377749,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" @@ -377895,51 +377757,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "隐藏工作表网格线" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "隐藏工作表网格线" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -377947,7 +377787,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -377975,7 +377815,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "idempotent" @@ -377983,7 +377823,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "idempotent" }, @@ -377991,39 +377831,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -378031,7 +377871,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -378046,14 +377886,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -378069,7 +377902,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" @@ -378077,20 +377910,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "隐藏工作表网格线" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "隐藏工作表网格线" @@ -378118,8 +377951,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "hide_gridline", "parameter_count": 2, @@ -378246,16 +378079,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.hide_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.hide_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -378306,7 +378147,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -378347,11 +378187,8 @@ "cli_name": "info", "cli_path": "sheet info", "confirmation": "not_required", - "description": "获取钉钉电子表格中指定工作表的详细信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位具体的工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回指定工作表的 ID、名称、可见性、行列数、最后非空行列位置等详细信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", + "description": "获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等。\n\n非空数据边界使用 A1/UI 语义字段:\n nonEmptyRange.range 从 A1 到最后非空单元格的 A1 范围(空表为 null)\n nonEmptyRange.lastCell 最后非空单元格地址(如 J5,空表为 null)\n nonEmptyRange.lastRow 1-based 行号(空表为 null)\n nonEmptyRange.lastColumn 列字母(空表为 null)\n\nmergedRanges 已经是 A1 表示法(如 \"A1:B2\"),可原样用于 range/merge 相关命令。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid);\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n不传 --sheet-id 时默认返回第一个工作表。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -378449,44 +378286,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的详细信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位具体的工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回指定工作表的 ID、名称、可见性、行列数、最后非空行列位置等详细信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等。\n\n非空数据边界使用 A1/UI 语义字段:\n nonEmptyRange.range 从 A1 到最后非空单元格的 A1 范围(空表为 null)\n nonEmptyRange.lastCell 最后非空单元格地址(如 J5,空表为 null)\n nonEmptyRange.lastRow 1-based 行号(空表为 null)\n nonEmptyRange.lastColumn 列字母(空表为 null)\n\nmergedRanges 已经是 A1 表示法(如 \"A1:B2\"),可原样用于 range/merge 相关命令。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid);\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n不传 --sheet-id 时默认返回第一个工作表。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取钉钉电子表格中指定工作表的详细信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位具体的工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回指定工作表的 ID、名称、可见性、行列数、最后非空行列位置等详细信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取钉钉电子表格中指定工作表的详细信息。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位具体的工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n返回指定工作表的 ID、名称、可见性、行列数、最后非空行列位置等详细信息。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等。\n\n非空数据边界使用 A1/UI 语义字段:\n nonEmptyRange.range 从 A1 到最后非空单元格的 A1 范围(空表为 null)\n nonEmptyRange.lastCell 最后非空单元格地址(如 J5,空表为 null)\n nonEmptyRange.lastRow 1-based 行号(空表为 null)\n nonEmptyRange.lastColumn 列字母(空表为 null)\n\nmergedRanges 已经是 A1 表示法(如 \"A1:B2\"),可原样用于 range/merge 相关命令。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid);\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n不传 --sheet-id 时默认返回第一个工作表。" }, "effect": { "candidates": [ @@ -378631,22 +378446,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_sheet" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定工作表详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_sheet" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_sheet" + "source": "cobra_help", + "value": "获取指定工作表详情" }, "use_when": { "candidates": [ @@ -378692,6 +378507,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识,支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -378707,22 +378528,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -378733,9 +378566,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -378767,7 +378600,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识,支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -378869,7 +378703,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_sheet", + "title": "获取指定工作表详情", "use_when": [ "当用户需要获取指定工作表的详细信息,包括 ID、名称、可见性、行列数、最后非空行列位置、合并单元格范围(mergedRanges)等,并能提供命令所需的查询条件时使用。" ] @@ -378895,11 +378729,8 @@ "cli_name": "insert-dimension", "cli_path": "sheet insert-dimension", "confirmation": "not_required", - "description": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。", + "description": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示在第 3 行之前插入\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示在 A 列之前插入、\"AB\" 表示在 AB 列之前插入\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n若需要在工作表末尾追加行/列,请使用 append 命令。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -378997,44 +378828,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示在第 3 行之前插入\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示在 A 列之前插入、\"AB\" 表示在 AB 列之前插入\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n若需要在工作表末尾追加行/列,请使用 append 命令。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格指定工作表的指定位置之前(before)插入若干空行或空列。\n\n位置参数使用 A1 表示法:\n --dimension ROWS 时,--position 为 1-based 行号字符串,如 \"3\" 表示在第 3 行之前插入\n --dimension COLUMNS 时,--position 为列字母,如 \"A\" 表示在 A 列之前插入、\"AB\" 表示在 AB 列之前插入\n\n支持在 --position 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n若需要在工作表末尾追加行/列,请使用 append 命令。" }, "effect": { "candidates": [ @@ -379173,21 +378982,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "在指定位置插入行或列" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "在指定位置插入行或列" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "在指定位置插入行或列" }, "use_when": { @@ -379512,6 +379321,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -379527,22 +379342,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -379553,9 +379380,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -379587,7 +379414,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -379872,11 +379700,8 @@ "cli_name": "list-float-images", "cli_path": "sheet list-float-images", "confirmation": "not_required", - "description": "列出钉钉电子表格指定工作表中的所有浮动图片。", + "description": "列出钉钉表格指定工作表中所有浮动图片。\n\n返回每个浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息,以及总数。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -379974,44 +379799,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出钉钉电子表格指定工作表中的所有浮动图片。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出钉钉表格指定工作表中所有浮动图片。\n\n返回每个浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息,以及总数。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出钉钉电子表格指定工作表中的所有浮动图片。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出钉钉电子表格指定工作表中的所有浮动图片。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出钉钉表格指定工作表中所有浮动图片。\n\n返回每个浮动图片的 ID、图片 URL、锚点位置、尺寸和偏移量等信息,以及总数。" }, "effect": { "candidates": [ @@ -380150,22 +379953,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取所有浮动图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出工作表所有浮动图片" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取所有浮动图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取所有浮动图片" + "source": "cobra_help", + "value": "列出工作表所有浮动图片" }, "use_when": { "candidates": [ @@ -380211,6 +380014,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -380226,22 +380035,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -380252,9 +380073,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -380286,7 +380107,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -380400,7 +380222,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取所有浮动图片", + "title": "列出工作表所有浮动图片", "use_when": [ "当用户需要列出钉钉表格指定工作表中所有浮动图片,并能提供命令所需的查询条件时使用。" ] @@ -380426,9 +380248,6 @@ "confirmation": "not_required", "description": "获取透视表列表或详情", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -380455,7 +380274,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -380463,7 +380282,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -380520,39 +380339,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取透视表列表或详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取透视表列表或详情" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -380605,39 +380402,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -380645,7 +380442,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -380657,13 +380454,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -380689,13 +380479,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取透视表列表或详情" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取透视表列表或详情" @@ -380724,8 +380514,8 @@ "group": "pivot-table", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "list_pivot_tables", "parameter_count": 3, @@ -380852,16 +380642,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pivotTableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pivotTableId" + "review_reason": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -380906,7 +380704,6 @@ "value": "string" } }, - "property": "pivotTableId", "required": false, "type": "string" }, @@ -380936,16 +380733,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -380996,7 +380801,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -381129,13 +380933,13 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "将本地文件作为附件上传到钉钉表格(两步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传文件到 OSS\n\n上传成功后返回 resourceId,可用于后续引用。\n--mime-type 可选,不指定时根据文件扩展名自动推断。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "将本地文件作为附件上传到钉钉表格(两步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传文件到 OSS\n\n上传成功后返回 resourceId,可用于后续引用。\n--mime-type 可选,不指定时根据文件扩展名自动推断。" @@ -381298,13 +381102,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "上传附件到表格" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "上传附件到表格" @@ -381732,11 +381536,8 @@ "cli_name": "merge-cells", "cli_path": "sheet merge-cells", "confirmation": "not_required", - "description": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。", + "description": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nrangeAddress 也支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将优先使用前缀解析出的工作表。\n\n支持三种合并方式(通过 --merge-type 指定):\n mergeAll(默认) 合并所有单元格,将选定区域内的所有单元格合并成一个\n mergeRows 按行合并,在选定区域内将同一行相邻的单元格合并\n mergeColumns 按列合并,在选定区域内将同一列相邻的单元格合并\n\n注意:合并时只保留左上角单元格的值,其他单元格的值会被丢弃。\n如果目标区域与其他合并单元格、锁定区域或表格区域存在交集,合并将失败。\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -381834,44 +381635,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nrangeAddress 也支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将优先使用前缀解析出的工作表。\n\n支持三种合并方式(通过 --merge-type 指定):\n mergeAll(默认) 合并所有单元格,将选定区域内的所有单元格合并成一个\n mergeRows 按行合并,在选定区域内将同一行相邻的单元格合并\n mergeColumns 按列合并,在选定区域内将同一列相邻的单元格合并\n\n注意:合并时只保留左上角单元格的值,其他单元格的值会被丢弃。\n如果目标区域与其他合并单元格、锁定区域或表格区域存在交集,合并将失败。\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将钉钉电子表格中指定工作表的指定区域内的单元格合并为一个或多个合并区域。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nrangeAddress 也支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将优先使用前缀解析出的工作表。\n\n支持三种合并方式(通过 --merge-type 指定):\n mergeAll(默认) 合并所有单元格,将选定区域内的所有单元格合并成一个\n mergeRows 按行合并,在选定区域内将同一行相邻的单元格合并\n mergeColumns 按列合并,在选定区域内将同一列相邻的单元格合并\n\n注意:合并时只保留左上角单元格的值,其他单元格的值会被丢弃。\n如果目标区域与其他合并单元格、锁定区域或表格区域存在交集,合并将失败。\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" }, "effect": { "candidates": [ @@ -382010,21 +381789,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "合并单元格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "合并单元格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "合并单元格" }, "use_when": { @@ -382168,6 +381947,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -382183,22 +381968,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -382209,9 +382006,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -382243,7 +382040,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -382258,6 +382056,12 @@ "source": "cobra_usage", "value": "目标单元格区域地址,如 A1:B3 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标单元格区域地址,如 A1:B3。支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将忽略 sheetId 参数。必填。" + }, { "precedence": "default", "selected": false, @@ -382293,22 +382097,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "rangeAddress" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "source": "versioned_parameter_binding", + "value": "rangeAddress" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -382319,9 +382135,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -382354,7 +382170,8 @@ } }, "format": "a1-range", - "property": "range", + "interface_description": "目标单元格区域地址,如 A1:B3。支持带工作表前缀的写法,如 Sheet1!A1:B3,此时将忽略 sheetId 参数。必填。", + "property": "rangeAddress", "required": true, "type": "string" }, @@ -382494,11 +382311,8 @@ "cli_name": "move-dimension", "cli_path": "sheet move-dimension", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。", + "description": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。\n\n参数说明:\n --dimension 维度类型,ROWS 表示移动行,COLUMNS 表示移动列\n --start-index 源起始位置,A1 表示法(ROWS 时为行号如 \"2\",COLUMNS 时为列字母如 \"B\")\n --end-index 源结束位置,A1 表示法(同 start-index 格式,必须 \u003e= start-index)\n --destination-index 目标位置,A1 表示法,源行/列移动后将出现在该位置\n\n注意事项:\n - destination-index 不能在源范围 [start-index, end-index] 内\n - 向下/向右移动时,destination-index 应大于 end-index\n - 向上/向左移动时,destination-index 应小于 start-index", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -382596,44 +382410,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。\n\n参数说明:\n --dimension 维度类型,ROWS 表示移动行,COLUMNS 表示移动列\n --start-index 源起始位置,A1 表示法(ROWS 时为行号如 \"2\",COLUMNS 时为列字母如 \"B\")\n --end-index 源结束位置,A1 表示法(同 start-index 格式,必须 \u003e= start-index)\n --destination-index 目标位置,A1 表示法,源行/列移动后将出现在该位置\n\n注意事项:\n - destination-index 不能在源范围 [start-index, end-index] 内\n - 向下/向右移动时,destination-index 应大于 end-index\n - 向上/向左移动时,destination-index 应小于 start-index" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置。\n\n参数说明:\n --dimension 维度类型,ROWS 表示移动行,COLUMNS 表示移动列\n --start-index 源起始位置,A1 表示法(ROWS 时为行号如 \"2\",COLUMNS 时为列字母如 \"B\")\n --end-index 源结束位置,A1 表示法(同 start-index 格式,必须 \u003e= start-index)\n --destination-index 目标位置,A1 表示法,源行/列移动后将出现在该位置\n\n注意事项:\n - destination-index 不能在源范围 [start-index, end-index] 内\n - 向下/向右移动时,destination-index 应大于 end-index\n - 向上/向左移动时,destination-index 应小于 start-index" }, "effect": { "candidates": [ @@ -382772,22 +382564,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移动行列" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动行或列到指定位置/调整顺序" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动行列" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移动行列" + "source": "cobra_help", + "value": "移动行或列到指定位置/调整顺序" }, "use_when": { "candidates": [ @@ -383214,6 +383006,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -383229,22 +383027,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -383255,9 +383065,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -383289,7 +383099,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -383527,7 +383338,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "移动行列", + "title": "移动行或列到指定位置/调整顺序", "use_when": [ "当用户明确要求在钉钉表格的指定工作表中,将指定范围的行或列移动到目标位置,且已确认目标对象和所需参数时使用。" ] @@ -383538,6 +383349,7 @@ "cobra-help:dws sheet range batch-clear --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", @@ -383553,11 +383365,8 @@ "cli_name": "batch-clear", "cli_path": "sheet range batch-clear", "confirmation": "user_required", - "description": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。", + "description": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。\n真实执行必须获得用户确认后加 --yes;--dry-run 仅预览且不调用远程接口。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -383583,15 +383392,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -383643,7 +383454,7 @@ "precedence": "unreviewed_explicit", "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "not_required" + "value": "user_required" }, { "precedence": "inference_or_default", @@ -383661,38 +383472,16 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", - "value": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。" + "value": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。\n真实执行必须获得用户确认后加 --yes;--dry-run 仅预览且不调用远程接口。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", - "value": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。" - }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "value": "批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。\n\n每个 --ranges 项必须包含工作表前缀(格式: \"SheetName!A1:B3\")。\n不同区域可以属于不同工作表。\n真实执行必须获得用户确认后加 --yes;--dry-run 仅预览且不调用远程接口。" }, "effect": { "candidates": [ @@ -383707,7 +383496,7 @@ "precedence": "unreviewed_explicit", "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "write" + "value": "destructive" }, { "precedence": "inference_or_default", @@ -383773,45 +383562,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -383856,7 +383649,7 @@ "precedence": "unreviewed_explicit", "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "medium" + "value": "high" }, { "precedence": "inference_or_default", @@ -383874,13 +383667,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "批量清除多个区域(原子事务)" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "批量清除多个区域(原子事务)" @@ -383909,8 +383702,8 @@ "group": "range", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "range_batch_clear", "parameter_count": 3, @@ -383941,16 +383734,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -384001,12 +383802,12 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, "ranges": { "description": "目标区域 JSON 数组,每项带 sheet 前缀 (必填,如 '[\"Sheet1!A1:B3\"]')", + "example": "[\"Sheet1!A1:B2\"]", "field_provenance": { "description": { "candidates": [ @@ -384028,11 +383829,37 @@ "source": "cobra_usage", "value": "目标区域 JSON 数组,每项带 sheet 前缀 (必填,如 '[\"Sheet1!A1:B3\"]')" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "[\"Sheet1!A1:B2\"]" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "[\"Sheet1!A1:B2\"]" + }, "format": { "candidates": [ { - "precedence": "inference", + "precedence": "typed_metadata", "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "inference", + "selected": false, "source": "usage_format_inference", "value": "a1-range" }, @@ -384043,24 +383870,32 @@ "value": "" } ], - "precedence": "inference", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "source": "usage_format_inference", - "value": "a1-range" + "source": "typed_parameter_metadata", + "value": "json" }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --ranges is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ranges" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ranges" + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --ranges is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -384111,8 +383946,7 @@ "value": "string" } }, - "format": "a1-range", - "property": "ranges", + "format": "json", "required": true, "type": "string" }, @@ -384142,16 +383976,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -384202,7 +384044,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" } @@ -384242,11 +384083,8 @@ "cli_name": "batch-set-style", "cli_path": "sheet range batch-set-style", "confirmation": "not_required", - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", + "description": "读取一份 JSON 配置,逐条调用 update_range 给不同 range 设置样式,CLI 内部顺序执行。\n\n配置格式(JSON 数组,每个元素为一个批次项):\n[\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"A1:B3\",\n \"bgColor\": \"#FFF2CC\",\n \"fontSize\": 12,\n \"hAlign\": \"center\",\n \"vAlign\": \"middle\",\n \"fontColor\": \"#333333\",\n \"fontWeight\": \"bold\",\n \"wordWrap\": \"autoWrap\",\n \"numberFormat\": \"General\"\n },\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"C1:C5\",\n \"bgColorsJson\": \"[[\\\"#FF0000\\\"],[\\\"#00FF00\\\"],[\\\"#0000FF\\\"],[\\\"#FFFF00\\\"],[\\\"#FF00FF\\\"]]\"\n }\n]\n\n每条记录执行与 set-style 一致的校验(至少一项样式字段 + rows≤1000 + rows×cols≤30000 + 枚举)。\n某条失败时默认停止后续批次;要继续执行请加 --continue-on-error。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -384352,44 +384190,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取一份 JSON 配置,逐条调用 update_range 给不同 range 设置样式,CLI 内部顺序执行。\n\n配置格式(JSON 数组,每个元素为一个批次项):\n[\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"A1:B3\",\n \"bgColor\": \"#FFF2CC\",\n \"fontSize\": 12,\n \"hAlign\": \"center\",\n \"vAlign\": \"middle\",\n \"fontColor\": \"#333333\",\n \"fontWeight\": \"bold\",\n \"wordWrap\": \"autoWrap\",\n \"numberFormat\": \"General\"\n },\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"C1:C5\",\n \"bgColorsJson\": \"[[\\\"#FF0000\\\"],[\\\"#00FF00\\\"],[\\\"#0000FF\\\"],[\\\"#FFFF00\\\"],[\\\"#FF00FF\\\"]]\"\n }\n]\n\n每条记录执行与 set-style 一致的校验(至少一项样式字段 + rows≤1000 + rows×cols≤30000 + 枚举)。\n某条失败时默认停止后续批次;要继续执行请加 --continue-on-error。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "读取一份 JSON 配置,逐条调用 update_range 给不同 range 设置样式,CLI 内部顺序执行。\n\n配置格式(JSON 数组,每个元素为一个批次项):\n[\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"A1:B3\",\n \"bgColor\": \"#FFF2CC\",\n \"fontSize\": 12,\n \"hAlign\": \"center\",\n \"vAlign\": \"middle\",\n \"fontColor\": \"#333333\",\n \"fontWeight\": \"bold\",\n \"wordWrap\": \"autoWrap\",\n \"numberFormat\": \"General\"\n },\n {\n \"sheetId\": \"Sheet1\",\n \"range\": \"C1:C5\",\n \"bgColorsJson\": \"[[\\\"#FF0000\\\"],[\\\"#00FF00\\\"],[\\\"#0000FF\\\"],[\\\"#FFFF00\\\"],[\\\"#FF00FF\\\"]]\"\n }\n]\n\n每条记录执行与 set-style 一致的校验(至少一项样式字段 + rows≤1000 + rows×cols≤30000 + 枚举)。\n某条失败时默认停止后续批次;要继续执行请加 --continue-on-error。" }, "effect": { "candidates": [ @@ -384462,7 +384278,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -384475,19 +384291,41 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface." }, "interface_ref": { "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": null + } + ], + "overridden_candidates": [ { "precedence": "explicit", "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "selected": true, + "selected": false, "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "sheet", - "rpc_name": "update_range" - } + "value": "sheet.update_range" }, { "precedence": "mcp_fallback", @@ -384496,14 +384334,11 @@ "value": "sheet.update_range" } ], - "precedence": "explicit", - "resolution": "highest_precedence", - "review_reason": "open-source-helper-interface-refs is an explicit Agent hint source", - "source": "internal/cli/schema_hints/interface-refs.json", - "value": { - "product_id": "sheet", - "rpc_name": "update_range" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -384567,22 +384402,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新表格指定区域内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "按配置文件批量设置样式" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新表格指定区域内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新表格指定区域内容" + "source": "cobra_help", + "value": "按配置文件批量设置样式" }, "use_when": { "candidates": [ @@ -384608,11 +384443,8 @@ "group": "range", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "update_range" - }, + "interface_mode": "composite", + "interface_reason": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "range_batch_set_style", @@ -384644,16 +384476,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper reads this local JSON file and performs zero or more update_range calls; the filesystem path is not a direct RPC property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "batch" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "batch" + "review_reason": "Composite wrapper reads this local JSON file and performs zero or more update_range calls; the filesystem path is not a direct RPC property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -384704,7 +384544,6 @@ "value": "string" } }, - "property": "batch", "required": true, "type": "string" }, @@ -384734,16 +384573,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Composite wrapper consumes this flag in its local multi-call error loop and never sends it to update_range.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "continueOnError" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "continueOnError" + "review_reason": "Composite wrapper consumes this flag in its local multi-call error loop and never sends it to update_range.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -384794,7 +384641,6 @@ "value": "boolean" } }, - "property": "continueOnError", "required": false, "type": "boolean" }, @@ -384809,6 +384655,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -384824,22 +384676,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -384850,9 +384714,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -384884,7 +384748,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" } @@ -384895,7 +384760,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新表格指定区域内容", + "title": "按配置文件批量设置样式", "use_when": [ "当用户明确要求按 JSON 配置依次为多个单元格范围设置样式,且已确认目标对象和所需参数时使用。" ] @@ -384924,11 +384789,8 @@ "cli_name": "copy-to", "cli_path": "sheet range copy-to", "confirmation": "not_required", - "description": "将源范围的数据复制到目标位置。支持同 sheet 和跨 sheet 复制。", + "description": "将源范围的数据复制到目标位置。支持跨工作表复制。\n\n跨工作表复制的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -385034,44 +384896,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将源范围的数据复制到目标位置。支持同 sheet 和跨 sheet 复制。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将源范围的数据复制到目标位置。支持跨工作表复制。\n\n跨工作表复制的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将源范围的数据复制到目标位置。支持同 sheet 和跨 sheet 复制。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将源范围的数据复制到目标位置。支持同 sheet 和跨 sheet 复制。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将源范围的数据复制到目标位置。支持跨工作表复制。\n\n跨工作表复制的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠" }, "effect": { "candidates": [ @@ -385249,22 +385089,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "区域复制" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制工作表指定区域到目标位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "区域复制" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "区域复制" + "source": "cobra_help", + "value": "复制工作表指定区域到目标位置" }, "use_when": { "candidates": [ @@ -385311,6 +385151,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -385326,22 +385172,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -385352,9 +385210,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -385386,7 +385244,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -385725,6 +385584,12 @@ "source": "cobra_usage", "value": "目标位置,A1 表示法 (必填,如 D1;支持 Sheet2!A1 表示法指定目标工作表)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "复制到的目标起始位置(必填),使用 A1 表示法。例如 \"D1\"。源和目标不能重叠。" + }, { "precedence": "default", "selected": false, @@ -385760,22 +385625,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "destinationRange" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "targetRange" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "targetRange" + "source": "versioned_parameter_binding", + "value": "destinationRange" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -385786,9 +385663,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -385821,7 +385698,8 @@ } }, "format": "a1-range", - "property": "targetRange", + "interface_description": "复制到的目标起始位置(必填),使用 A1 表示法。例如 \"D1\"。源和目标不能重叠。", + "property": "destinationRange", "required": true, "type": "string" }, @@ -385923,7 +385801,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "区域复制", + "title": "复制工作表指定区域到目标位置", "use_when": [ "当用户明确要求将源范围的数据复制到目标位置。支持跨工作表复制,且已确认目标对象和所需参数时使用。" ] @@ -385952,11 +385830,8 @@ "cli_name": "move-to", "cli_path": "sheet range move-to", "confirmation": "user_required", - "description": "将源范围的数据移动到目标位置,源区域将被清空。支持同 sheet 和跨 sheet 移动。", + "description": "将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动。\n\n跨工作表移动的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -386062,44 +385937,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将源范围的数据移动到目标位置,源区域将被清空。支持同 sheet 和跨 sheet 移动。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动。\n\n跨工作表移动的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将源范围的数据移动到目标位置,源区域将被清空。支持同 sheet 和跨 sheet 移动。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将源范围的数据移动到目标位置,源区域将被清空。支持同 sheet 和跨 sheet 移动。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动。\n\n跨工作表移动的两种方式:\n 1. --target-sheet-id \"Sheet2\" 显式指定目标工作表\n 2. --target-range \"Sheet2!A1\" 在目标范围中携带工作表前缀\n\n限制:\n - 同一工作表内源和目标范围不能重叠" }, "effect": { "candidates": [ @@ -386277,22 +386130,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "区域移动" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动工作表指定区域到目标位置" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "区域移动" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "区域移动" + "source": "cobra_help", + "value": "移动工作表指定区域到目标位置" }, "use_when": { "candidates": [ @@ -386339,6 +386192,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -386354,22 +386213,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -386380,9 +386251,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -386414,7 +386285,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -386656,6 +386528,12 @@ "source": "cobra_usage", "value": "目标位置,A1 表示法 (必填,如 D1;支持 Sheet2!A1 表示法指定目标工作表)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动到的目标起始位置(必填),使用 A1 表示法。例如 \"D1\"。源和目标不能重叠。" + }, { "precedence": "default", "selected": false, @@ -386691,22 +386569,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "destinationRange" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "targetRange" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "targetRange" + "source": "versioned_parameter_binding", + "value": "destinationRange" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -386717,9 +386607,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -386752,7 +386642,8 @@ } }, "format": "a1-range", - "property": "targetRange", + "interface_description": "移动到的目标起始位置(必填),使用 A1 表示法。例如 \"D1\"。源和目标不能重叠。", + "property": "destinationRange", "required": true, "type": "string" }, @@ -386854,7 +386745,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "区域移动", + "title": "移动工作表指定区域到目标位置", "use_when": [ "当用户明确要求将源范围的数据移动到目标位置,源区域将被清空。支持跨工作表移动,且已确认目标对象和所需参数时使用。" ] @@ -386868,6 +386759,7 @@ "internal/cli/schema_hints/imported/wukong.json", "internal/cli/schema_hints/selection-review.json", "internal/cli/schema_hints/sibling-disambiguation.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_hints/zz-sheet-range-filter-review.json", "internal/cli/schema_manual_hints.json", "internal/cli/schema_mcp_metadata.json#tools.sheet.range_read", @@ -386886,7 +386778,7 @@ "cli_name": "read", "cli_path": "sheet range read", "confirmation": "not_required", - "description": "读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 range 指定读取的单元格范围。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。不传则默认读取第一个工作表。\r\nrange 使用 A1 表示法指定单元格范围,支持带工作表前缀(如 \u003csheetId\u003e!A1:D10)。不传则默认读取该工作表的全部数据。\r\n\r\n返回指定范围内的单元格值、公式、显示值等信息。\r\n其中 values 返回公式计算后的结果值,formulas 返回原始公式,displayValues 返回界面上的显示值。\r\n所有数据均以二维数组形式返回,第一维为行,第二维为列。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。", + "description": "读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息。\n\n别名: dws sheet range get 与 dws sheet range read 等价。\n\n返回内容为 cells 二维数组,每个 cell 包含:\n value 单元格值(内容由 --value-render-option 决定)\n dataValidation 数据验证配置(下拉列表/复选框),无则为 null\n hyperlink 单元格级超链接(path/sheet/range),无则省略\n\n注意:range read/get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。\n\n取值模式 (--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n范围格式使用 A1 表示法:\n --range A1:D10 读取当前工作表 A1:D10 区域\n --range \"Sheet1!A1:D10\" 读取 Sheet1 工作表的 A1:D10 区域(忽略 --sheet-id)\n 不传 --range 则默认读取整个工作表的全部非空数据\n\n超时处理建议: 读取大范围数据时若出现超时或响应过慢,请主动缩小 --range 查询范围,\n建议单次读取的单元格数量控制在 5000 个以内(例如 50 行 × 100 列、100 行 × 50 列)。\n对于大表可采用分页读取策略:先通过 info 获取 nonEmptyRange.range\n或 nonEmptyRange.lastRow / nonEmptyRange.lastColumn 确定 A1 边界;\n再按行分批读取,避免不传 --range 直接读取整个大工作表。", "display": "钉钉表格管理", "effect": "read", "effect_source": "agent-hint", @@ -386914,9 +386806,9 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, { @@ -386928,8 +386820,8 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -386993,22 +386885,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 range 指定读取的单元格范围。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。不传则默认读取第一个工作表。\r\nrange 使用 A1 表示法指定单元格范围,支持带工作表前缀(如 \u003csheetId\u003e!A1:D10)。不传则默认读取该工作表的全部数据。\r\n\r\n返回指定范围内的单元格值、公式、显示值等信息。\r\n其中 values 返回公式计算后的结果值,formulas 返回原始公式,displayValues 返回界面上的显示值。\r\n所有数据均以二维数组形式返回,第一维为行,第二维为列。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息。\n\n别名: dws sheet range get 与 dws sheet range read 等价。\n\n返回内容为 cells 二维数组,每个 cell 包含:\n value 单元格值(内容由 --value-render-option 决定)\n dataValidation 数据验证配置(下拉列表/复选框),无则为 null\n hyperlink 单元格级超链接(path/sheet/range),无则省略\n\n注意:range read/get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。\n\n取值模式 (--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n范围格式使用 A1 表示法:\n --range A1:D10 读取当前工作表 A1:D10 区域\n --range \"Sheet1!A1:D10\" 读取 Sheet1 工作表的 A1:D10 区域(忽略 --sheet-id)\n 不传 --range 则默认读取整个工作表的全部非空数据\n\n超时处理建议: 读取大范围数据时若出现超时或响应过慢,请主动缩小 --range 查询范围,\n建议单次读取的单元格数量控制在 5000 个以内(例如 50 行 × 100 列、100 行 × 50 列)。\n对于大表可采用分页读取策略:先通过 info 获取 nonEmptyRange.range\n或 nonEmptyRange.lastRow / nonEmptyRange.lastColumn 确定 A1 边界;\n再按行分批读取,避免不传 --range 直接读取整个大工作表。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 range 指定读取的单元格范围。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。不传则默认读取第一个工作表。\r\nrange 使用 A1 表示法指定单元格范围,支持带工作表前缀(如 \u003csheetId\u003e!A1:D10)。不传则默认读取该工作表的全部数据。\r\n\r\n返回指定范围内的单元格值、公式、显示值等信息。\r\n其中 values 返回公式计算后的结果值,formulas 返回原始公式,displayValues 返回界面上的显示值。\r\n所有数据均以二维数组形式返回,第一维为行,第二维为列。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "读取钉钉电子表格中指定工作表的指定范围数据。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 range 指定读取的单元格范围。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。不传则默认读取第一个工作表。\r\nrange 使用 A1 表示法指定单元格范围,支持带工作表前缀(如 \u003csheetId\u003e!A1:D10)。不传则默认读取该工作表的全部数据。\r\n\r\n返回指定范围内的单元格值、公式、显示值等信息。\r\n其中 values 返回公式计算后的结果值,formulas 返回原始公式,displayValues 返回界面上的显示值。\r\n所有数据均以二维数组形式返回,第一维为行,第二维为列。\r\n\r\n仅限用户对文档具备\"可阅读\"权限时可获取。不支持跨组织查询。\r\n\r\n支持的文档类型:钉钉在线电子表格。\r\n文档链接格式:https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\r\ndentryUuid 为 32 位字母数字字符串。" + "source": "cobra_help", + "value": "读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息。\n\n别名: dws sheet range get 与 dws sheet range read 等价。\n\n返回内容为 cells 二维数组,每个 cell 包含:\n value 单元格值(内容由 --value-render-option 决定)\n dataValidation 数据验证配置(下拉列表/复选框),无则为 null\n hyperlink 单元格级超链接(path/sheet/range),无则省略\n\n注意:range read/get 不返回合并单元格结构。查看合并范围请使用\ndws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 mergedRanges。\n\n取值模式 (--value-render-option):\n formatted_value 格式化后的展示值(默认),如 ¥1,000.00、2025-06-01\n raw_value 原始值,如 1000、45808\n formula 公式文本,如 =SUM(A1:A10),无公式时回退原始值\n\n范围格式使用 A1 表示法:\n --range A1:D10 读取当前工作表 A1:D10 区域\n --range \"Sheet1!A1:D10\" 读取 Sheet1 工作表的 A1:D10 区域(忽略 --sheet-id)\n 不传 --range 则默认读取整个工作表的全部非空数据\n\n超时处理建议: 读取大范围数据时若出现超时或响应过慢,请主动缩小 --range 查询范围,\n建议单次读取的单元格数量控制在 5000 个以内(例如 50 行 × 100 列、100 行 × 50 列)。\n对于大表可采用分页读取策略:先通过 info 获取 nonEmptyRange.range\n或 nonEmptyRange.lastRow / nonEmptyRange.lastColumn 确定 A1 边界;\n再按行分批读取,避免不传 --range 直接读取整个大工作表。" }, "effect": { "candidates": [ @@ -387078,10 +386970,10 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, { "precedence": "mcp_fallback", @@ -387092,20 +386984,42 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", - "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised." }, "interface_ref": { "candidates": [ { - "precedence": "imported", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null + } + ], + "overridden_candidates": [ + { + "precedence": "imported", + "selected": false, "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "sheet", - "rpc_name": "get_range" - } + "value": "sheet.get_range" }, { "precedence": "mcp_fallback", @@ -387114,13 +387028,11 @@ "value": "sheet.get_range" } ], - "precedence": "imported", - "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/imported/wukong.json", - "value": { - "product_id": "sheet", - "rpc_name": "get_range" - } + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -387184,22 +387096,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "读取工作表数据" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "读取工作表数据(别名: get)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "读取工作表数据" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "读取工作表数据" + "source": "cobra_help", + "value": "读取工作表数据(别名: get)" }, "use_when": { "candidates": [ @@ -387225,11 +387137,8 @@ "group": "range", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "sheet", - "rpc_name": "get_range" - }, + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "range_read", @@ -387246,6 +387155,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。仅支持钉钉在线电子表格类型的文档,传入其他类型文档(如钉钉文档)会报错。" + }, { "precedence": "default", "selected": false, @@ -387261,22 +387176,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -387287,9 +387214,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -387321,7 +387248,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。仅支持钉钉在线电子表格类型的文档,传入其他类型文档(如钉钉文档)会报错。", + "property": "nodeId", "required": true, "type": "string" }, @@ -387336,12 +387264,6 @@ "source": "cobra_usage", "value": "读取范围,A1 表示法 (如 A1:D10,不传则读取全部数据)" }, - { - "precedence": "mcp_metadata", - "selected": false, - "source": "mcp_metadata", - "value": "要读取的单元格范围(可选),使用 A1 表示法。支持两种格式:1) 仅范围,如 A1:D10(此时使用 sheetId 参数指定工作表);2) 带工作表前缀,如 {sheetId}!A1:D10(此时忽略 sheetId 参数,从 range 中解析工作表标识)。不传时默认读取目标工作表的全部非空数据。系统会自动检测工作表的实际数据范围,避免返回大量空数据。" - }, { "precedence": "default", "selected": false, @@ -387377,16 +387299,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "review_reason": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -387432,8 +387362,6 @@ } }, "format": "a1-range", - "interface_description": "要读取的单元格范围(可选),使用 A1 表示法。支持两种格式:1) 仅范围,如 A1:D10(此时使用 sheetId 参数指定工作表);2) 带工作表前缀,如 {sheetId}!A1:D10(此时忽略 sheetId 参数,从 range 中解析工作表标识)。不传时默认读取目标工作表的全部非空数据。系统会自动检测工作表的实际数据范围,避免返回大量空数据。", - "property": "range", "required": false, "type": "string" }, @@ -387448,12 +387376,6 @@ "source": "cobra_usage", "value": "工作表 ID 或名称 (不传则默认第一个工作表)" }, - { - "precedence": "mcp_metadata", - "selected": false, - "source": "mcp_metadata", - "value": "目标工作表的 ID 或名称(可选)。可通过 get_all_sheets 接口获取工作表的 id 或 name。不传时默认读取第一个工作表。注意:当 range 参数包含工作表前缀(如 sheetId!A1:D10)时,range 中的前缀会覆盖此参数。" - }, { "precedence": "default", "selected": false, @@ -387469,16 +387391,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -387529,8 +387459,6 @@ "value": "string" } }, - "interface_description": "目标工作表的 ID 或名称(可选)。可通过 get_all_sheets 接口获取工作表的 id 或 name。不传时默认读取第一个工作表。注意:当 range 参数包含工作表前缀(如 sheetId!A1:D10)时,range 中的前缀会覆盖此参数。", - "property": "sheetId", "required": false, "type": "string" }, @@ -387560,15 +387488,21 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "valueRenderOption" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "valueRenderOption" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", + "source": "versioned_parameter_binding", "value": "valueRenderOption" }, "required": { @@ -387631,7 +387565,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "读取工作表数据", + "title": "读取工作表数据(别名: get)", "use_when": [ "当用户需要读取钉钉电子表格中指定工作表的指定范围数据,返回 per-cell 结构化信息,并能提供命令所需的查询条件时使用。" ] @@ -387707,11 +387641,8 @@ ] ] }, - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", + "description": "通过 update_range 透传样式字段,为指定 range 设置背景色 / 字号 / 对齐 / 字体颜色 / 字体粗细 / 换行方式 / 数字格式。\n\n每个样式维度提供两种用法,二选一:\n --xxx 单值,一键刷整个 range(由 CLI 本地展开为二维数组)\n --xxx-json 二维 JSON 数组,逐单元格指定,维度需与 --range 一致\n\n单次调用建议:行数 ≤ 1000 且行×列 ≤ 5000;服务端硬限 rows ≤ 1000 且 rows×cols ≤ 30000。\n\n数字格式(--number-format)传格式 code:\n General 常规;@ 文本;0/0.00 普通数字;#,##0/#,##0.00 千分位;0%/0.00% 百分比;yyyy/m/d 日期;h:mm/h:mm:ss 时间;0.00E+00/##0.0E+0 科学计数;货币格式如 \"¥\"#,##0.00 或 $#,##0.00。\n 商品ID、规格ID、订单号、手机号等数字形态标识符请设置 @,否则 General/默认展示可能转为科学计数法。\n传入格式 code 字符串。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -387817,44 +387748,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "通过 update_range 透传样式字段,为指定 range 设置背景色 / 字号 / 对齐 / 字体颜色 / 字体粗细 / 换行方式 / 数字格式。\n\n每个样式维度提供两种用法,二选一:\n --xxx 单值,一键刷整个 range(由 CLI 本地展开为二维数组)\n --xxx-json 二维 JSON 数组,逐单元格指定,维度需与 --range 一致\n\n单次调用建议:行数 ≤ 1000 且行×列 ≤ 5000;服务端硬限 rows ≤ 1000 且 rows×cols ≤ 30000。\n\n数字格式(--number-format)传格式 code:\n General 常规;@ 文本;0/0.00 普通数字;#,##0/#,##0.00 千分位;0%/0.00% 百分比;yyyy/m/d 日期;h:mm/h:mm:ss 时间;0.00E+00/##0.0E+0 科学计数;货币格式如 \"¥\"#,##0.00 或 $#,##0.00。\n 商品ID、规格ID、订单号、手机号等数字形态标识符请设置 @,否则 General/默认展示可能转为科学计数法。\n传入格式 code 字符串。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "通过 update_range 透传样式字段,为指定 range 设置背景色 / 字号 / 对齐 / 字体颜色 / 字体粗细 / 换行方式 / 数字格式。\n\n每个样式维度提供两种用法,二选一:\n --xxx 单值,一键刷整个 range(由 CLI 本地展开为二维数组)\n --xxx-json 二维 JSON 数组,逐单元格指定,维度需与 --range 一致\n\n单次调用建议:行数 ≤ 1000 且行×列 ≤ 5000;服务端硬限 rows ≤ 1000 且 rows×cols ≤ 30000。\n\n数字格式(--number-format)传格式 code:\n General 常规;@ 文本;0/0.00 普通数字;#,##0/#,##0.00 千分位;0%/0.00% 百分比;yyyy/m/d 日期;h:mm/h:mm:ss 时间;0.00E+00/##0.0E+0 科学计数;货币格式如 \"¥\"#,##0.00 或 $#,##0.00。\n 商品ID、规格ID、订单号、手机号等数字形态标识符请设置 @,否则 General/默认展示可能转为科学计数法。\n传入格式 code 字符串。" }, "effect": { "candidates": [ @@ -388032,22 +387941,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新表格指定区域内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "设置指定单元格区域的样式" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新表格指定区域内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新表格指定区域内容" + "source": "cobra_help", + "value": "设置指定单元格区域的样式" }, "use_when": { "candidates": [ @@ -388094,6 +388003,12 @@ "source": "cobra_usage", "value": "背景色(#RRGGBB),一键刷整个 range;与 --bg-colors-json 二选一" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格背景色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[\"#FFF2CC\",\"#DDEBF7\"],[\"#E2EFDA\",\"#FCE4D6\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388106,19 +388021,45 @@ "source": "cobra_usage", "value": "背景色(#RRGGBB),一键刷整个 range;与 --bg-colors-json 二选一" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "backgroundColors" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bgColor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bgColor" + "source": "versioned_parameter_binding", + "value": "backgroundColors" }, "required": { "candidates": [ @@ -388169,7 +388110,9 @@ "value": "string" } }, - "property": "bgColor", + "interface_description": "单元格背景色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[\"#FFF2CC\",\"#DDEBF7\"],[\"#E2EFDA\",\"#FCE4D6\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "backgroundColors", "required": false, "type": "string" }, @@ -388185,6 +388128,12 @@ "source": "cobra_usage", "value": "背景色二维 JSON 数组,维度需与 --range 一致" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格背景色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[\"#FFF2CC\",\"#DDEBF7\"],[\"#E2EFDA\",\"#FCE4D6\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388237,19 +388186,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "backgroundColors" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "bgColorsJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "bgColorsJson" + "source": "versioned_parameter_binding", + "value": "backgroundColors" }, "required": { "candidates": [ @@ -388301,7 +388276,9 @@ } }, "format": "json", - "property": "bgColorsJson", + "interface_description": "单元格背景色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[\"#FFF2CC\",\"#DDEBF7\"],[\"#E2EFDA\",\"#FCE4D6\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "backgroundColors", "required": false, "type": "string" }, @@ -388316,6 +388293,12 @@ "source": "cobra_usage", "value": "字体颜色(#RRGGBB),一键刷整个 range" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "字体颜色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例:[[\"#333333\",\"#FF0000\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388328,19 +388311,45 @@ "source": "cobra_usage", "value": "字体颜色(#RRGGBB),一键刷整个 range" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontColors" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontColor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontColor" + "source": "versioned_parameter_binding", + "value": "fontColors" }, "required": { "candidates": [ @@ -388391,7 +388400,9 @@ "value": "string" } }, - "property": "fontColor", + "interface_description": "字体颜色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例:[[\"#333333\",\"#FF0000\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontColors", "required": false, "type": "string" }, @@ -388407,6 +388418,12 @@ "source": "cobra_usage", "value": "字体颜色二维 JSON 数组" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "字体颜色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例:[[\"#333333\",\"#FF0000\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388459,19 +388476,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontColors" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontColorsJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontColorsJson" + "source": "versioned_parameter_binding", + "value": "fontColors" }, "required": { "candidates": [ @@ -388523,7 +388566,9 @@ } }, "format": "json", - "property": "fontColorsJson", + "interface_description": "字体颜色,二维数组格式。取值为 #RRGGBB 形式的十六进制颜色字符串,单个值长度 ≤ 128。行列维度需与 rangeAddress 范围一致。示例:[[\"#333333\",\"#FF0000\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontColors", "required": false, "type": "string" }, @@ -388538,6 +388583,12 @@ "source": "cobra_usage", "value": "字号,一键刷整个 range;与 --font-sizes-json 二选一" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格字号,二维数组格式,元素为正整数。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[12,14],[10,10]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388550,19 +388601,45 @@ "source": "cobra_usage", "value": "字号,一键刷整个 range;与 --font-sizes-json 二选一" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontSizes" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontSize" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontSize" + "source": "versioned_parameter_binding", + "value": "fontSizes" }, "required": { "candidates": [ @@ -388613,7 +388690,9 @@ "value": "integer" } }, - "property": "fontSize", + "interface_description": "单元格字号,二维数组格式,元素为正整数。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[12,14],[10,10]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontSizes", "required": false, "type": "integer" }, @@ -388629,6 +388708,12 @@ "source": "cobra_usage", "value": "字号二维 JSON 数组,维度需与 --range 一致" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格字号,二维数组格式,元素为正整数。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[12,14],[10,10]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388681,19 +388766,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontSizes" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontSizesJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontSizesJson" + "source": "versioned_parameter_binding", + "value": "fontSizes" }, "required": { "candidates": [ @@ -388745,7 +388856,9 @@ } }, "format": "json", - "property": "fontSizesJson", + "interface_description": "单元格字号,二维数组格式,元素为正整数。行列维度需与 rangeAddress 范围一致。示例(A1:B2):[[12,14],[10,10]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontSizes", "required": false, "type": "string" }, @@ -388764,6 +388877,12 @@ "source": "cobra_usage", "value": "字体粗细(bold/normal),一键刷整个 range" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "字体粗细,二维数组格式,元素取值枚举:bold / normal。行列维度需与 rangeAddress 范围一致。示例:[[\"bold\",\"normal\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388802,19 +388921,45 @@ "normal" ] }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontWeights" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontWeight" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontWeight" + "source": "versioned_parameter_binding", + "value": "fontWeights" }, "required": { "candidates": [ @@ -388865,7 +389010,9 @@ "value": "string" } }, - "property": "fontWeight", + "interface_description": "字体粗细,二维数组格式,元素取值枚举:bold / normal。行列维度需与 rangeAddress 范围一致。示例:[[\"bold\",\"normal\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontWeights", "required": false, "type": "string" }, @@ -388881,6 +389028,12 @@ "source": "cobra_usage", "value": "字体粗细二维 JSON 数组" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "字体粗细,二维数组格式,元素取值枚举:bold / normal。行列维度需与 rangeAddress 范围一致。示例:[[\"bold\",\"normal\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -388933,19 +389086,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "fontWeights" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "fontWeightsJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "fontWeightsJson" + "source": "versioned_parameter_binding", + "value": "fontWeights" }, "required": { "candidates": [ @@ -388997,7 +389176,9 @@ } }, "format": "json", - "property": "fontWeightsJson", + "interface_description": "字体粗细,二维数组格式,元素取值枚举:bold / normal。行列维度需与 rangeAddress 范围一致。示例:[[\"bold\",\"normal\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "fontWeights", "required": false, "type": "string" }, @@ -389018,6 +389199,12 @@ "source": "cobra_usage", "value": "水平对齐(left/center/right/general),一键刷整个 range" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格水平对齐方式,二维数组格式,元素取值枚举:left / center / right / general。行列维度需与 rangeAddress 范围一致。示例:[[\"center\",\"left\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -389060,19 +389247,45 @@ "general" ] }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "horizontalAlignments" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "hAlign" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "hAlign" + "source": "versioned_parameter_binding", + "value": "horizontalAlignments" }, "required": { "candidates": [ @@ -389123,7 +389336,9 @@ "value": "string" } }, - "property": "hAlign", + "interface_description": "单元格水平对齐方式,二维数组格式,元素取值枚举:left / center / right / general。行列维度需与 rangeAddress 范围一致。示例:[[\"center\",\"left\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "horizontalAlignments", "required": false, "type": "string" }, @@ -389139,6 +389354,12 @@ "source": "cobra_usage", "value": "水平对齐二维 JSON 数组" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格水平对齐方式,二维数组格式,元素取值枚举:left / center / right / general。行列维度需与 rangeAddress 范围一致。示例:[[\"center\",\"left\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -389191,19 +389412,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "horizontalAlignments" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "hAlignsJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "hAlignsJson" + "source": "versioned_parameter_binding", + "value": "horizontalAlignments" }, "required": { "candidates": [ @@ -389255,7 +389502,9 @@ } }, "format": "json", - "property": "hAlignsJson", + "interface_description": "单元格水平对齐方式,二维数组格式,元素取值枚举:left / center / right / general。行列维度需与 rangeAddress 范围一致。示例:[[\"center\",\"left\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "horizontalAlignments", "required": false, "type": "string" }, @@ -389270,6 +389519,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -389285,22 +389540,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -389311,9 +389578,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -389345,7 +389612,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -389457,6 +389725,12 @@ "source": "cobra_usage", "value": "目标单元格区域地址,如 A1:B3 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标单元格区域地址,如 A1:B3。必填。" + }, { "precedence": "default", "selected": false, @@ -389492,22 +389766,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "rangeAddress" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "source": "versioned_parameter_binding", + "value": "rangeAddress" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -389518,9 +389804,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -389553,7 +389839,8 @@ } }, "format": "a1-range", - "property": "range", + "interface_description": "目标单元格区域地址,如 A1:B3。必填。", + "property": "rangeAddress", "required": true, "type": "string" }, @@ -389676,6 +389963,12 @@ "source": "cobra_usage", "value": "垂直对齐(top/middle/bottom),一键刷整个 range" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格垂直对齐方式,二维数组格式,元素取值枚举:top / middle / bottom。行列维度需与 rangeAddress 范围一致。示例:[[\"middle\",\"top\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -389716,19 +390009,45 @@ "bottom" ] }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "verticalAlignments" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "vAlign" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "vAlign" + "source": "versioned_parameter_binding", + "value": "verticalAlignments" }, "required": { "candidates": [ @@ -389779,7 +390098,9 @@ "value": "string" } }, - "property": "vAlign", + "interface_description": "单元格垂直对齐方式,二维数组格式,元素取值枚举:top / middle / bottom。行列维度需与 rangeAddress 范围一致。示例:[[\"middle\",\"top\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "verticalAlignments", "required": false, "type": "string" }, @@ -389795,6 +390116,12 @@ "source": "cobra_usage", "value": "垂直对齐二维 JSON 数组" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格垂直对齐方式,二维数组格式,元素取值枚举:top / middle / bottom。行列维度需与 rangeAddress 范围一致。示例:[[\"middle\",\"top\"]]。外层数组最大长度 1000。" + }, { "precedence": "default", "selected": false, @@ -389847,19 +390174,45 @@ "source": "typed_parameter_metadata", "value": "json" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "verticalAlignments" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "vAlignsJson" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "vAlignsJson" + "source": "versioned_parameter_binding", + "value": "verticalAlignments" }, "required": { "candidates": [ @@ -389911,7 +390264,9 @@ } }, "format": "json", - "property": "vAlignsJson", + "interface_description": "单元格垂直对齐方式,二维数组格式,元素取值枚举:top / middle / bottom。行列维度需与 rangeAddress 范围一致。示例:[[\"middle\",\"top\"]]。外层数组最大长度 1000。", + "interface_type": "array", + "property": "verticalAlignments", "required": false, "type": "string" }, @@ -390052,7 +390407,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新表格指定区域内容", + "title": "设置指定单元格区域的样式", "use_when": [ "当用户需要为指定单元格范围设置背景、字体、对齐、换行或数字格式,并能提供命令所需的查询条件时使用。" ] @@ -390086,11 +390441,8 @@ "cli_name": "update", "cli_path": "sheet range update", "confirmation": "not_required", - "description": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。", + "description": "更新钉钉在线表格指定区域内单元格内容。\n\n--values 二维 JSON 数组,行列维度需与 --range 完全一致。每个 cell 是以下之一:\n - {} 空对象:跳过该单元格,保留原值不变\n - {type:\"text\",...} 或 {type:\"richText\",...} 对象\n\n【type=text】普通文本(可带 cellStyles)\n {\"type\":\"text\", \"text\":\"内容\"}\n {\"type\":\"text\", \"text\":\"内容\", \"cellStyles\":{\"fontWeight\":\"bold\",\"fontColor\":\"#FF0000\"}}\n - text 以 \"=\" 开头识别为公式(如 \"=SUM(B2:B4)\")\n - text 为空字符串 \"\" 表示清空该单元格\n - 写数字 / 布尔请用字符串形式(如 {\"type\":\"text\",\"text\":\"100\"}),\n 服务端按内容自动识别为数字 / 布尔\n\n【{} 跳过】保留原值不变\n 只更新部分单元格时,用 {} 占位不需要修改的位置,避免拆分成多次调用\n\n【type=richText】富文本(多子项组合:超链接 / 附件 / 图片 / 带样式片段)\n {\"type\":\"richText\", \"texts\":[...]}\n texts[].type 枚举:\n • text {\"type\":\"text\", \"text\":\"文字\", \"style\":{...}?}\n • link {\"type\":\"link\", \"text\":\"显示文字\",\"link\":\"https://...\", \"subType\":\"path\"?, \"style\":{...}?}\n • attachment {\"type\":\"attachment\", \"text\":\"文件名.pdf\",\"resourceId\":\"...\",\"mimeType\":\"application/pdf\",\"size\":12345?}\n • image {\"type\":\"image\", \"text\":\"\", \"resourceId\":\"...\",\"resourceUrl\":\"/core/api/resources/img/xxx\",\"width\":?,\"height\":?}\n resourceId / resourceUrl 通过 dws sheet media-upload 获取。\n link.subType 可为 path/sheet/range;不传默认 path。sheet/range 必须使用真实工作表名称或 A1 范围,禁止猜 Sheet1。\n\n【style 子结构】(仅 richText 的 text / link 子项支持)\n bold / italic / underline / strike: boolean\n color: 16 进制色值字符串如 \"#FF0000\"\n size: 字号正整数\n\n【cellStyles 子结构】(可选,与 type 同级,作用于整格)\n fontWeight/fontColor/fontSize/fontStyle/backgroundColor/horizontalAlignment/verticalAlignment/wordWrap/numberFormat/textUnderline/textLineThrough\n 只设样式不改值时,可传 {\"cellStyles\":{...}} 保留原值;大面积统一样式优先用 dws sheet range set-style。\n\n【hyperlink 子结构】(可选,与 type 同级,作用于整格)\n 1) 不传 hyperlink 字段 → 保留原整格超链接\n 2) {\"hyperlink\":{\"type\":\"none\"}} → 显式清除整格超链接\n 3) {\"hyperlink\":{\"type\":\"path\",\"link\":\"https://...\"}} → 写外部链接\n {\"hyperlink\":{\"type\":\"sheet\",\"link\":\"Sheet2\"}} → 写工作表链接\n {\"hyperlink\":{\"type\":\"range\",\"link\":\"Sheet2!A1\"}} → 写区域链接\n\n【dataValidation 子结构】(可选,与 type 同级)三种语义:\n 1) 不传 dataValidation 字段 → 保留原 DV\n 2) {\"dataValidation\":{\"type\":\"none\"}} → 显式清除该单元格 DV\n 3) {\"dataValidation\":{\"type\":\"dropdown\",...}} → 写新 dropdown(覆盖)\n {\"dataValidation\":{\"type\":\"checkbox\",...}} → 写新 checkbox(覆盖)\n dropdown: {\"dataValidation\":{\"type\":\"dropdown\",\"options\":[{\"value\":\"选项1\"}],\"enableMultiSelect\":false}}\n checkbox: {\"dataValidation\":{\"type\":\"checkbox\",\"checked\":true}}\n 可与 text/richText 共存,也可单独使用(如 {dataValidation:{type:\"none\"}} 仅清除 DV 不写值)\n\n注意:\n - 仅支持 text / richText 两种 type;number / boolean / null 等不再支持\n - type=text 顶层旧 style 字段不要作为新写法使用;整格样式用 cellStyles,片段样式用 richText 子项 style\n - 单元格级超链接写在 cell.hyperlink;richText link 仅表示富文本片段链接\n - 写图片到单元格建议直接用 dws sheet write-image(更简洁)\n - 只设样式或批量刷整片区域样式请用 dws sheet range set-style;写值同时设置少量 cell 样式可用 cellStyles\n - 目标范围与已有合并区域冲突时,range update 会返回 MERGED_CELLS_CONFLICT;先用 sheet info 查看 mergedRanges,取消合并后写入,必要时再重新合并\n - csv-put 的合并处理不同:目标区域含合并单元格时会打散合并并写入纯值\n - 清空整片区域请用 dws sheet range clear", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -390196,44 +390548,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新钉钉在线表格指定区域内单元格内容。\n\n--values 二维 JSON 数组,行列维度需与 --range 完全一致。每个 cell 是以下之一:\n - {} 空对象:跳过该单元格,保留原值不变\n - {type:\"text\",...} 或 {type:\"richText\",...} 对象\n\n【type=text】普通文本(可带 cellStyles)\n {\"type\":\"text\", \"text\":\"内容\"}\n {\"type\":\"text\", \"text\":\"内容\", \"cellStyles\":{\"fontWeight\":\"bold\",\"fontColor\":\"#FF0000\"}}\n - text 以 \"=\" 开头识别为公式(如 \"=SUM(B2:B4)\")\n - text 为空字符串 \"\" 表示清空该单元格\n - 写数字 / 布尔请用字符串形式(如 {\"type\":\"text\",\"text\":\"100\"}),\n 服务端按内容自动识别为数字 / 布尔\n\n【{} 跳过】保留原值不变\n 只更新部分单元格时,用 {} 占位不需要修改的位置,避免拆分成多次调用\n\n【type=richText】富文本(多子项组合:超链接 / 附件 / 图片 / 带样式片段)\n {\"type\":\"richText\", \"texts\":[...]}\n texts[].type 枚举:\n • text {\"type\":\"text\", \"text\":\"文字\", \"style\":{...}?}\n • link {\"type\":\"link\", \"text\":\"显示文字\",\"link\":\"https://...\", \"subType\":\"path\"?, \"style\":{...}?}\n • attachment {\"type\":\"attachment\", \"text\":\"文件名.pdf\",\"resourceId\":\"...\",\"mimeType\":\"application/pdf\",\"size\":12345?}\n • image {\"type\":\"image\", \"text\":\"\", \"resourceId\":\"...\",\"resourceUrl\":\"/core/api/resources/img/xxx\",\"width\":?,\"height\":?}\n resourceId / resourceUrl 通过 dws sheet media-upload 获取。\n link.subType 可为 path/sheet/range;不传默认 path。sheet/range 必须使用真实工作表名称或 A1 范围,禁止猜 Sheet1。\n\n【style 子结构】(仅 richText 的 text / link 子项支持)\n bold / italic / underline / strike: boolean\n color: 16 进制色值字符串如 \"#FF0000\"\n size: 字号正整数\n\n【cellStyles 子结构】(可选,与 type 同级,作用于整格)\n fontWeight/fontColor/fontSize/fontStyle/backgroundColor/horizontalAlignment/verticalAlignment/wordWrap/numberFormat/textUnderline/textLineThrough\n 只设样式不改值时,可传 {\"cellStyles\":{...}} 保留原值;大面积统一样式优先用 dws sheet range set-style。\n\n【hyperlink 子结构】(可选,与 type 同级,作用于整格)\n 1) 不传 hyperlink 字段 → 保留原整格超链接\n 2) {\"hyperlink\":{\"type\":\"none\"}} → 显式清除整格超链接\n 3) {\"hyperlink\":{\"type\":\"path\",\"link\":\"https://...\"}} → 写外部链接\n {\"hyperlink\":{\"type\":\"sheet\",\"link\":\"Sheet2\"}} → 写工作表链接\n {\"hyperlink\":{\"type\":\"range\",\"link\":\"Sheet2!A1\"}} → 写区域链接\n\n【dataValidation 子结构】(可选,与 type 同级)三种语义:\n 1) 不传 dataValidation 字段 → 保留原 DV\n 2) {\"dataValidation\":{\"type\":\"none\"}} → 显式清除该单元格 DV\n 3) {\"dataValidation\":{\"type\":\"dropdown\",...}} → 写新 dropdown(覆盖)\n {\"dataValidation\":{\"type\":\"checkbox\",...}} → 写新 checkbox(覆盖)\n dropdown: {\"dataValidation\":{\"type\":\"dropdown\",\"options\":[{\"value\":\"选项1\"}],\"enableMultiSelect\":false}}\n checkbox: {\"dataValidation\":{\"type\":\"checkbox\",\"checked\":true}}\n 可与 text/richText 共存,也可单独使用(如 {dataValidation:{type:\"none\"}} 仅清除 DV 不写值)\n\n注意:\n - 仅支持 text / richText 两种 type;number / boolean / null 等不再支持\n - type=text 顶层旧 style 字段不要作为新写法使用;整格样式用 cellStyles,片段样式用 richText 子项 style\n - 单元格级超链接写在 cell.hyperlink;richText link 仅表示富文本片段链接\n - 写图片到单元格建议直接用 dws sheet write-image(更简洁)\n - 只设样式或批量刷整片区域样式请用 dws sheet range set-style;写值同时设置少量 cell 样式可用 cellStyles\n - 目标范围与已有合并区域冲突时,range update 会返回 MERGED_CELLS_CONFLICT;先用 sheet info 查看 mergedRanges,取消合并后写入,必要时再重新合并\n - csv-put 的合并处理不同:目标区域含合并单元格时会打散合并并写入纯值\n - 清空整片区域请用 dws sheet range clear" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对于一个钉钉在线表格,更新指定区域内单元格信息,包括单元格中的值、超链接、数字格式等内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新钉钉在线表格指定区域内单元格内容。\n\n--values 二维 JSON 数组,行列维度需与 --range 完全一致。每个 cell 是以下之一:\n - {} 空对象:跳过该单元格,保留原值不变\n - {type:\"text\",...} 或 {type:\"richText\",...} 对象\n\n【type=text】普通文本(可带 cellStyles)\n {\"type\":\"text\", \"text\":\"内容\"}\n {\"type\":\"text\", \"text\":\"内容\", \"cellStyles\":{\"fontWeight\":\"bold\",\"fontColor\":\"#FF0000\"}}\n - text 以 \"=\" 开头识别为公式(如 \"=SUM(B2:B4)\")\n - text 为空字符串 \"\" 表示清空该单元格\n - 写数字 / 布尔请用字符串形式(如 {\"type\":\"text\",\"text\":\"100\"}),\n 服务端按内容自动识别为数字 / 布尔\n\n【{} 跳过】保留原值不变\n 只更新部分单元格时,用 {} 占位不需要修改的位置,避免拆分成多次调用\n\n【type=richText】富文本(多子项组合:超链接 / 附件 / 图片 / 带样式片段)\n {\"type\":\"richText\", \"texts\":[...]}\n texts[].type 枚举:\n • text {\"type\":\"text\", \"text\":\"文字\", \"style\":{...}?}\n • link {\"type\":\"link\", \"text\":\"显示文字\",\"link\":\"https://...\", \"subType\":\"path\"?, \"style\":{...}?}\n • attachment {\"type\":\"attachment\", \"text\":\"文件名.pdf\",\"resourceId\":\"...\",\"mimeType\":\"application/pdf\",\"size\":12345?}\n • image {\"type\":\"image\", \"text\":\"\", \"resourceId\":\"...\",\"resourceUrl\":\"/core/api/resources/img/xxx\",\"width\":?,\"height\":?}\n resourceId / resourceUrl 通过 dws sheet media-upload 获取。\n link.subType 可为 path/sheet/range;不传默认 path。sheet/range 必须使用真实工作表名称或 A1 范围,禁止猜 Sheet1。\n\n【style 子结构】(仅 richText 的 text / link 子项支持)\n bold / italic / underline / strike: boolean\n color: 16 进制色值字符串如 \"#FF0000\"\n size: 字号正整数\n\n【cellStyles 子结构】(可选,与 type 同级,作用于整格)\n fontWeight/fontColor/fontSize/fontStyle/backgroundColor/horizontalAlignment/verticalAlignment/wordWrap/numberFormat/textUnderline/textLineThrough\n 只设样式不改值时,可传 {\"cellStyles\":{...}} 保留原值;大面积统一样式优先用 dws sheet range set-style。\n\n【hyperlink 子结构】(可选,与 type 同级,作用于整格)\n 1) 不传 hyperlink 字段 → 保留原整格超链接\n 2) {\"hyperlink\":{\"type\":\"none\"}} → 显式清除整格超链接\n 3) {\"hyperlink\":{\"type\":\"path\",\"link\":\"https://...\"}} → 写外部链接\n {\"hyperlink\":{\"type\":\"sheet\",\"link\":\"Sheet2\"}} → 写工作表链接\n {\"hyperlink\":{\"type\":\"range\",\"link\":\"Sheet2!A1\"}} → 写区域链接\n\n【dataValidation 子结构】(可选,与 type 同级)三种语义:\n 1) 不传 dataValidation 字段 → 保留原 DV\n 2) {\"dataValidation\":{\"type\":\"none\"}} → 显式清除该单元格 DV\n 3) {\"dataValidation\":{\"type\":\"dropdown\",...}} → 写新 dropdown(覆盖)\n {\"dataValidation\":{\"type\":\"checkbox\",...}} → 写新 checkbox(覆盖)\n dropdown: {\"dataValidation\":{\"type\":\"dropdown\",\"options\":[{\"value\":\"选项1\"}],\"enableMultiSelect\":false}}\n checkbox: {\"dataValidation\":{\"type\":\"checkbox\",\"checked\":true}}\n 可与 text/richText 共存,也可单独使用(如 {dataValidation:{type:\"none\"}} 仅清除 DV 不写值)\n\n注意:\n - 仅支持 text / richText 两种 type;number / boolean / null 等不再支持\n - type=text 顶层旧 style 字段不要作为新写法使用;整格样式用 cellStyles,片段样式用 richText 子项 style\n - 单元格级超链接写在 cell.hyperlink;richText link 仅表示富文本片段链接\n - 写图片到单元格建议直接用 dws sheet write-image(更简洁)\n - 只设样式或批量刷整片区域样式请用 dws sheet range set-style;写值同时设置少量 cell 样式可用 cellStyles\n - 目标范围与已有合并区域冲突时,range update 会返回 MERGED_CELLS_CONFLICT;先用 sheet info 查看 mergedRanges,取消合并后写入,必要时再重新合并\n - csv-put 的合并处理不同:目标区域含合并单元格时会打散合并并写入纯值\n - 清空整片区域请用 dws sheet range clear" }, "effect": { "candidates": [ @@ -390409,22 +390739,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新表格指定区域内容" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新工作表指定区域内容" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新表格指定区域内容" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新表格指定区域内容" + "source": "cobra_help", + "value": "更新工作表指定区域内容" }, "use_when": { "candidates": [ @@ -390471,6 +390801,12 @@ "source": "cobra_usage", "value": "表格文档 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -390486,22 +390822,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -390512,9 +390860,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -390546,7 +390894,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID(必填)。支持三种格式:1) 钉钉文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid} 或 https://alidocs.dingtalk.com/spreadsheetv2/{dentryKey}/...;2) 文档 ID(dentryUuid),32 位字母数字字符串;3) 其他钉钉文档域名下的链接。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -390561,6 +390910,12 @@ "source": "cobra_usage", "value": "目标单元格区域地址,如 A1:B3 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标单元格区域地址,如 A1:B3。必填。" + }, { "precedence": "default", "selected": false, @@ -390596,22 +390951,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "rangeAddress" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "source": "versioned_parameter_binding", + "value": "rangeAddress" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -390622,9 +390989,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -390657,7 +391024,8 @@ } }, "format": "a1-range", - "property": "range", + "interface_description": "目标单元格区域地址,如 A1:B3。必填。", + "property": "rangeAddress", "required": true, "type": "string" }, @@ -390889,7 +391257,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新表格指定区域内容", + "title": "更新工作表指定区域内容", "use_when": [ "当用户需要更新钉钉在线电子表格指定区域内的单元格内容,并能提供命令所需的查询条件时使用。" ] @@ -390915,11 +391283,8 @@ "cli_name": "replace", "cli_path": "sheet replace", "confirmation": "not_required", - "description": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\r\n\r\n支持以下替换选项:\r\n- matchCase:是否区分大小写(默认 false)\r\n- matchEntireCell:是否完整单元格匹配(默认 false)\r\n- useRegExp:是否使用正则表达式(默认 false)\r\n- includeHidden:是否包含隐藏行/列(默认 false)\r\n- range:限定替换范围,使用 A1 表示法(如 A1:D100),不传时在整个工作表中替换\r\n\r\n返回被替换的单元格数量。\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\n\n支持以下替换选项:\n --match-case 区分大小写(默认 false)\n --match-entire-cell 完整单元格匹配(默认 false)\n --use-regexp 使用正则表达式匹配(默认 false)\n --include-hidden 包含隐藏行/列(默认 false)\n --range 限定替换范围,A1 表示法(不传时在整个工作表中替换)\n\n返回被替换的单元格数量。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -391017,44 +391382,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\r\n\r\n支持以下替换选项:\r\n- matchCase:是否区分大小写(默认 false)\r\n- matchEntireCell:是否完整单元格匹配(默认 false)\r\n- useRegExp:是否使用正则表达式(默认 false)\r\n- includeHidden:是否包含隐藏行/列(默认 false)\r\n- range:限定替换范围,使用 A1 表示法(如 A1:D100),不传时在整个工作表中替换\r\n\r\n返回被替换的单元格数量。\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\n\n支持以下替换选项:\n --match-case 区分大小写(默认 false)\n --match-entire-cell 完整单元格匹配(默认 false)\n --use-regexp 使用正则表达式匹配(默认 false)\n --include-hidden 包含隐藏行/列(默认 false)\n --range 限定替换范围,A1 表示法(不传时在整个工作表中替换)\n\n返回被替换的单元格数量。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\r\n\r\n支持以下替换选项:\r\n- matchCase:是否区分大小写(默认 false)\r\n- matchEntireCell:是否完整单元格匹配(默认 false)\r\n- useRegExp:是否使用正则表达式(默认 false)\r\n- includeHidden:是否包含隐藏行/列(默认 false)\r\n- range:限定替换范围,使用 A1 表示法(如 A1:D100),不传时在整个工作表中替换\r\n\r\n返回被替换的单元格数量。\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\r\n\r\n支持以下替换选项:\r\n- matchCase:是否区分大小写(默认 false)\r\n- matchEntireCell:是否完整单元格匹配(默认 false)\r\n- useRegExp:是否使用正则表达式(默认 false)\r\n- includeHidden:是否包含隐藏行/列(默认 false)\r\n- range:限定替换范围,使用 A1 表示法(如 A1:D100),不传时在整个工作表中替换\r\n\r\n返回被替换的单元格数量。\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图,通过 column 指定目标列。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n清除指定列的筛选条件后,该列不再参与筛选视图的筛选计算。\r\n此操作仅清除指定列的条件,不会删除整个筛选视图。如需删除整个筛选视图,请使用 delete_filter_view。\r\n清除操作仅影响当前筛选视图,不影响全局筛选或其他筛选视图。\r\n\r\n如果指定列没有设置筛选条件,调用此接口不会报错。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格的指定工作表中,全局查找并替换文本内容。\n\n支持以下替换选项:\n --match-case 区分大小写(默认 false)\n --match-entire-cell 完整单元格匹配(默认 false)\n --use-regexp 使用正则表达式匹配(默认 false)\n --include-hidden 包含隐藏行/列(默认 false)\n --range 限定替换范围,A1 表示法(不传时在整个工作表中替换)\n\n返回被替换的单元格数量。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -391193,22 +391536,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "全局查找替换" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查找替换/批量替换/精确匹配替换/正则替换文本" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "全局查找替换" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "全局查找替换" + "source": "cobra_help", + "value": "查找替换/批量替换/精确匹配替换/正则替换文本" }, "use_when": { "candidates": [ @@ -391254,6 +391597,12 @@ "source": "cobra_usage", "value": "查找文本 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要查找的文本内容(必填),不能为空字符串。" + }, { "precedence": "default", "selected": false, @@ -391269,22 +391618,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "text" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "find" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "find" + "source": "versioned_parameter_binding", + "value": "text" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -391295,9 +391656,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -391329,7 +391690,8 @@ "value": "string" } }, - "property": "find", + "interface_description": "要查找的文本内容(必填),不能为空字符串。", + "property": "text", "required": true, "type": "string" }, @@ -391623,6 +391985,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -391638,22 +392006,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -391664,9 +392044,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -391698,7 +392078,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -391825,6 +392206,12 @@ "source": "cobra_usage", "value": "替换文本 (必填,可为空字符串表示删除)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "替换后的文本内容(必填)。可以为空字符串,表示删除匹配内容。" + }, { "precedence": "default", "selected": false, @@ -391840,22 +392227,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "replaceText" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "replacement" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "replacement" + "source": "versioned_parameter_binding", + "value": "replaceText" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -391866,9 +392265,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -391900,7 +392299,8 @@ "value": "string" } }, - "property": "replacement", + "interface_description": "替换后的文本内容(必填)。可以为空字符串,表示删除匹配内容。", + "property": "replaceText", "required": true, "type": "string" }, @@ -392018,6 +392418,12 @@ "source": "cobra_usage", "value": "启用正则表达式匹配" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否使用正则表达式匹配(可选,默认 false)。" + }, { "precedence": "default", "selected": false, @@ -392033,16 +392439,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "useRegExp" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "useRegexp" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "useRegexp" + "source": "versioned_parameter_binding", + "value": "useRegExp" }, "required": { "candidates": [ @@ -392087,7 +392499,8 @@ "value": "boolean" } }, - "property": "useRegexp", + "interface_description": "是否使用正则表达式匹配(可选,默认 false)。", + "property": "useRegExp", "required": false, "type": "boolean" } @@ -392098,7 +392511,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "全局查找替换", + "title": "查找替换/批量替换/精确匹配替换/正则替换文本", "use_when": [ "当用户明确要求在钉钉表格的指定工作表中,全局查找并替换文本内容,且已确认目标对象和所需参数时使用。" ] @@ -392125,11 +392538,8 @@ "cli_name": "set-dropdown", "cli_path": "sheet set-dropdown", "confirmation": "not_required", - "description": "在钉钉表格的指定单元格范围内设置下拉列表。", + "description": "在钉钉表格的指定单元格范围内设置下拉列表。\n\n设置后,用户可以在这些单元格中从预定义的选项列表中选择值。\n支持自定义每个选项的颜色和是否允许多选。\n如果目标范围已存在下拉列表,会被新的配置覆盖。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--options 为 JSON 数组,每个元素包含 value(必填)和 color(可选)。\n选项值不能包含英文逗号。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -392235,44 +392645,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格的指定单元格范围内设置下拉列表。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在钉钉表格的指定单元格范围内设置下拉列表。\n\n设置后,用户可以在这些单元格中从预定义的选项列表中选择值。\n支持自定义每个选项的颜色和是否允许多选。\n如果目标范围已存在下拉列表,会被新的配置覆盖。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--options 为 JSON 数组,每个元素包含 value(必填)和 color(可选)。\n选项值不能包含英文逗号。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格的指定单元格范围内设置下拉列表。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格的指定单元格范围内设置下拉列表。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在钉钉表格的指定单元格范围内设置下拉列表。\n\n设置后,用户可以在这些单元格中从预定义的选项列表中选择值。\n支持自定义每个选项的颜色和是否允许多选。\n如果目标范围已存在下拉列表,会被新的配置覆盖。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\n\n--options 为 JSON 数组,每个元素包含 value(必填)和 color(可选)。\n选项值不能包含英文逗号。" }, "effect": { "candidates": [ @@ -392442,21 +392830,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "设置下拉列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "设置下拉列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "设置下拉列表" }, "use_when": { @@ -392503,6 +392891,12 @@ "source": "cobra_usage", "value": "是否允许多选(默认单选)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "是否允许在单元格中选择多个选项(可选,默认 false)。" + }, { "precedence": "default", "selected": false, @@ -392518,16 +392912,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "enableMultiSelect" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "multiSelect" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "multiSelect" + "source": "versioned_parameter_binding", + "value": "enableMultiSelect" }, "required": { "candidates": [ @@ -392578,7 +392978,8 @@ "value": "boolean" } }, - "property": "multiSelect", + "interface_description": "是否允许在单元格中选择多个选项(可选,默认 false)。", + "property": "enableMultiSelect", "required": false, "type": "boolean" }, @@ -392593,6 +392994,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -392608,22 +393015,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -392634,9 +393053,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -392668,7 +393087,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -393099,11 +393519,8 @@ "cli_name": "csv-put", "cli_path": "sheet csv-put", "confirmation": "not_required", - "description": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\r\n\r\n只写纯值,不支持公式/样式/批注。=开头的内容当作文本处理,不会被解析为公式。\r\n自动扩容行列:当 CSV 数据超出当前工作表维度时,自动追加行/列。\r\n目标区域如含合并单元格,合并将被打散,值正常写入。", + "description": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\n只写纯值,不支持公式/样式/批注。=开头当文本处理。自动扩容行列。\n目标区域如含合并单元格,csv-put 会打散合并并覆盖所有单元格;这不同于\nrange update 与合并区域冲突时返回 MERGED_CELLS_CONFLICT 的行为。\n\n--csv 支持三种输入:直接传文本、@filepath 从文件读取、- 从 stdin 读取。\n--allow-overwrite 默认 false,目标区域有数据时需显式传 --allow-overwrite 才能覆盖。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -393209,44 +393626,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\r\n\r\n只写纯值,不支持公式/样式/批注。=开头的内容当作文本处理,不会被解析为公式。\r\n自动扩容行列:当 CSV 数据超出当前工作表维度时,自动追加行/列。\r\n目标区域如含合并单元格,合并将被打散,值正常写入。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\n只写纯值,不支持公式/样式/批注。=开头当文本处理。自动扩容行列。\n目标区域如含合并单元格,csv-put 会打散合并并覆盖所有单元格;这不同于\nrange update 与合并区域冲突时返回 MERGED_CELLS_CONFLICT 的行为。\n\n--csv 支持三种输入:直接传文本、@filepath 从文件读取、- 从 stdin 读取。\n--allow-overwrite 默认 false,目标区域有数据时需显式传 --allow-overwrite 才能覆盖。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\r\n\r\n只写纯值,不支持公式/样式/批注。=开头的内容当作文本处理,不会被解析为公式。\r\n自动扩容行列:当 CSV 数据超出当前工作表维度时,自动追加行/列。\r\n目标区域如含合并单元格,合并将被打散,值正常写入。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\r\n\r\n只写纯值,不支持公式/样式/批注。=开头的内容当作文本处理,不会被解析为公式。\r\n自动扩容行列:当 CSV 数据超出当前工作表维度时,自动追加行/列。\r\n目标区域如含合并单元格,合并将被打散,值正常写入。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置。\n只写纯值,不支持公式/样式/批注。=开头当文本处理。自动扩容行列。\n目标区域如含合并单元格,csv-put 会打散合并并覆盖所有单元格;这不同于\nrange update 与合并区域冲突时返回 MERGED_CELLS_CONFLICT 的行为。\n\n--csv 支持三种输入:直接传文本、@filepath 从文件读取、- 从 stdin 读取。\n--allow-overwrite 默认 false,目标区域有数据时需显式传 --allow-overwrite 才能覆盖。" }, "effect": { "candidates": [ @@ -393416,22 +393811,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "写入 CSV 数据到指定区域" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将 CSV 数据写入表格指定位置(纯值,自动扩容)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "写入 CSV 数据到指定区域" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "写入 CSV 数据到指定区域" + "source": "cobra_help", + "value": "将 CSV 数据写入表格指定位置(纯值,自动扩容)" }, "use_when": { "candidates": [ @@ -393677,6 +394072,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识,支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -393692,22 +394093,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -393718,9 +394131,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -393752,7 +394165,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识,支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -393990,7 +394404,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "写入 CSV 数据到指定区域", + "title": "将 CSV 数据写入表格指定位置(纯值,自动扩容)", "use_when": [ "当用户明确要求将 RFC 4180 格式的 CSV 文本写入指定工作表的指定单元格位置,且已确认目标对象和所需参数时使用。" ] @@ -394017,9 +394431,6 @@ "confirmation": "not_required", "description": "显示工作表网格线", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -394046,7 +394457,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -394054,7 +394465,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -394098,7 +394509,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" @@ -394106,51 +394517,29 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示工作表网格线" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示工作表网格线" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" @@ -394158,7 +394547,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "write" }, @@ -394186,7 +394575,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "idempotent" @@ -394194,7 +394583,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "idempotent" }, @@ -394202,39 +394591,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -394242,7 +394631,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -394257,14 +394646,7 @@ }, { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": false, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": true @@ -394280,7 +394662,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" @@ -394288,20 +394670,20 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "runtime-confirmation-review-v1 marks this tool as reviewed", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "显示工作表网格线" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "显示工作表网格线" @@ -394329,8 +394711,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "show_gridline", "parameter_count": 2, @@ -394457,16 +394839,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.show_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.show_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -394517,7 +394907,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -394556,12 +394945,9 @@ "cli_name": "sort", "cli_path": "sheet filter sort", "confirmation": "not_required", - "description": "对钉钉电子表格中指定工作表的筛选范围内的数据进行排序。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n排序基于筛选范围内的指定列,支持升序和降序。\r\n排序会实际改变工作表中数据行的物理顺序。\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "对筛选范围内的数据按指定列排序。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n排序会实际改变工作表中数据行的物理顺序,不可撤销。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet filter sort --node NODE_ID --sheet-id SHEET_ID --column 0 --ascending" @@ -394666,44 +395052,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对钉钉电子表格中指定工作表的筛选范围内的数据进行排序。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n排序基于筛选范围内的指定列,支持升序和降序。\r\n排序会实际改变工作表中数据行的物理顺序。\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对筛选范围内的数据按指定列排序。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n排序会实际改变工作表中数据行的物理顺序,不可撤销。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对钉钉电子表格中指定工作表的筛选范围内的数据进行排序。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n排序基于筛选范围内的指定列,支持升序和降序。\r\n排序会实际改变工作表中数据行的物理顺序。\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对钉钉电子表格中指定工作表的筛选范围内的数据进行排序。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n排序基于筛选范围内的指定列,支持升序和降序。\r\n排序会实际改变工作表中数据行的物理顺序。\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对筛选范围内的数据按指定列排序。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n排序会实际改变工作表中数据行的物理顺序,不可撤销。" }, "effect": { "candidates": [ @@ -394712,7 +395076,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "read" + "value": "write" }, { "precedence": "inference_or_default", @@ -394725,7 +395089,7 @@ "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "read" + "value": "write" }, "examples": { "candidates": [ @@ -394754,7 +395118,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "idempotent" + "value": "unknown" }, { "precedence": "inference_or_default", @@ -394767,7 +395131,7 @@ "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "idempotent" + "value": "unknown" }, "interface_mode": { "candidates": [ @@ -394855,7 +395219,7 @@ "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "selected": true, "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "low" + "value": "medium" }, { "precedence": "inference_or_default", @@ -394868,26 +395232,26 @@ "resolution": "highest_precedence", "review_reason": "sheet-range-filter-agent-review-v1 marks this tool as reviewed", "source": "internal/cli/schema_hints/zz-sheet-range-filter-review.json", - "value": "low" + "value": "medium" }, "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "筛选排序" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "筛选排序" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "筛选排序" }, "use_when": { @@ -394913,7 +395277,7 @@ }, "group": "filter", "has_parameters": true, - "idempotency": "idempotent", + "idempotency": "unknown", "interface_mode": "mcp", "interface_ref": { "product_id": "sheet", @@ -394951,16 +395315,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "field.ascending" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "ascending" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "ascending" + "source": "versioned_parameter_binding", + "value": "field.ascending" }, "required": { "candidates": [ @@ -395011,7 +395381,7 @@ "value": "boolean" } }, - "property": "ascending", + "property": "field.ascending", "required": false, "type": "boolean" }, @@ -395041,16 +395411,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "field.column" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "column" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "column" + "source": "versioned_parameter_binding", + "value": "field.column" }, "required": { "candidates": [ @@ -395101,7 +395477,7 @@ "value": "integer" } }, - "property": "column", + "property": "field.column", "required": true, "type": "integer" }, @@ -395116,6 +395492,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -395131,22 +395513,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -395157,9 +395551,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -395191,7 +395585,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -395303,7 +395698,7 @@ "primary_cli_path": "sheet filter sort", "product_id": "sheet", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", "title": "筛选排序", "use_when": [ @@ -395332,11 +395727,8 @@ "cli_name": "sort", "cli_path": "sheet range sort", "confirmation": "not_required", - "description": "对钉钉电子表格中指定工作表指定范围的数据进行排序。支持多级排序(按 sortKeys 数组顺序优先级递减)。column 使用字母列名(如 \"A\"、\"B\"、\"AA\")。如果数据首行为表头,可设置跳过首行不参与排序。", + "description": "对钉钉电子表格中指定工作表指定范围的数据进行排序。\n\n支持多级排序(按 --sort-keys 数组顺序优先级递减)。\ncolumn 使用字母列名(如 \"A\"、\"B\"、\"AA\"),表示排序的目标列。\n\n注意:排序前必须先 range read 排序范围的前 3-5 行,对比首行与后续行模式判断表头:\n - 首行全文本 + 后续行含数字/日期 → 加 --has-header\n - 首行与后续行模式一致 → 不加\n - 首行语义像列标题且与后续行明显不同 → 加 --has-header\n 表头误排入数据不可撤销,禁止不读就排。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -395434,44 +395826,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "对钉钉电子表格中指定工作表指定范围的数据进行排序。支持多级排序(按 sortKeys 数组顺序优先级递减)。column 使用字母列名(如 \"A\"、\"B\"、\"AA\")。如果数据首行为表头,可设置跳过首行不参与排序。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对钉钉电子表格中指定工作表指定范围的数据进行排序。\n\n支持多级排序(按 --sort-keys 数组顺序优先级递减)。\ncolumn 使用字母列名(如 \"A\"、\"B\"、\"AA\"),表示排序的目标列。\n\n注意:排序前必须先 range read 排序范围的前 3-5 行,对比首行与后续行模式判断表头:\n - 首行全文本 + 后续行含数字/日期 → 加 --has-header\n - 首行与后续行模式一致 → 不加\n - 首行语义像列标题且与后续行明显不同 → 加 --has-header\n 表头误排入数据不可撤销,禁止不读就排。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "对钉钉电子表格中指定工作表指定范围的数据进行排序。支持多级排序(按 sortKeys 数组顺序优先级递减)。column 使用字母列名(如 \"A\"、\"B\"、\"AA\")。如果数据首行为表头,可设置跳过首行不参与排序。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "对钉钉电子表格中指定工作表指定范围的数据进行排序。支持多级排序(按 sortKeys 数组顺序优先级递减)。column 使用字母列名(如 \"A\"、\"B\"、\"AA\")。如果数据首行为表头,可设置跳过首行不参与排序。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "对钉钉电子表格中指定工作表指定范围的数据进行排序。\n\n支持多级排序(按 --sort-keys 数组顺序优先级递减)。\ncolumn 使用字母列名(如 \"A\"、\"B\"、\"AA\"),表示排序的目标列。\n\n注意:排序前必须先 range read 排序范围的前 3-5 行,对比首行与后续行模式判断表头:\n - 首行全文本 + 后续行含数字/日期 → 加 --has-header\n - 首行与后续行模式一致 → 不加\n - 首行语义像列标题且与后续行明显不同 → 加 --has-header\n 表头误排入数据不可撤销,禁止不读就排。" }, "effect": { "candidates": [ @@ -395610,22 +395980,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "区域排序" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "对工作表指定区域排序" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "区域排序" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "区域排序" + "source": "cobra_help", + "value": "对工作表指定区域排序" }, "use_when": { "candidates": [ @@ -395763,6 +396133,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -395778,22 +396154,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -395804,9 +396192,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -395838,7 +396226,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -396200,7 +396589,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "区域排序", + "title": "对工作表指定区域排序", "use_when": [ "当用户明确要求对钉钉电子表格中指定工作表指定范围的数据进行排序,且已确认目标对象和所需参数时使用。" ] @@ -396227,7 +396616,7 @@ "cli_name": "export", "cli_path": "sheet export", "confirmation": "not_required", - "description": "用于将钉钉在线表格导出为 xlsx。导出为异步操作,提交后需使用 query_export_job 轮询任务状态并获取下载链接。", + "description": "将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式)。\n\n执行流程(全程自动,无需 Agent 介入轮询):\n 1. 提交导出任务(submit_export_job),获取 jobId\n 2. 按渐进式退避策略轮询任务状态(query_export_job)\n 第 1~5 次:每次 2 秒\n 第 6~10 次:每次 5 秒\n 第 11~20 次:每次 10 秒\n 第 21~30 次:每次 15 秒\n 硬上限 30 次(约 5 分钟),超时后返回错误\n 3. 任务成功后取得 downloadUrl\n 4. 若指定了 --output,将 xlsx 下载到本地文件;否则直接输出 downloadUrl\n\n参数说明:\n --node 表格文档 ID 或链接 URL,系统自动识别(必填)\n --output 本地保存路径(可选)。可为文件路径或目录:\n - 文件路径:如 ./a.xlsx,直接按此路径保存\n - 目录路径:如 ./,自动从下载链接推断文件名\n - 未指定:仅返回 downloadUrl,链接有时效性请尽快下载\n\n支持范围:\n 仅支持钉钉在线电子表格(axls)→ xlsx;\n 若需导出钉钉文字文档,请使用 dingtalkdoc 侧的导出工具。\n\n权限要求:\n 当前用户对目标表格具备可查看/下载权限。", "display": "钉钉表格管理", "dry_run": { "preview_kind": "plan" @@ -396329,22 +396718,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "用于将钉钉在线表格导出为 xlsx。导出为异步操作,提交后需使用 query_export_job 轮询任务状态并获取下载链接。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式)。\n\n执行流程(全程自动,无需 Agent 介入轮询):\n 1. 提交导出任务(submit_export_job),获取 jobId\n 2. 按渐进式退避策略轮询任务状态(query_export_job)\n 第 1~5 次:每次 2 秒\n 第 6~10 次:每次 5 秒\n 第 11~20 次:每次 10 秒\n 第 21~30 次:每次 15 秒\n 硬上限 30 次(约 5 分钟),超时后返回错误\n 3. 任务成功后取得 downloadUrl\n 4. 若指定了 --output,将 xlsx 下载到本地文件;否则直接输出 downloadUrl\n\n参数说明:\n --node 表格文档 ID 或链接 URL,系统自动识别(必填)\n --output 本地保存路径(可选)。可为文件路径或目录:\n - 文件路径:如 ./a.xlsx,直接按此路径保存\n - 目录路径:如 ./,自动从下载链接推断文件名\n - 未指定:仅返回 downloadUrl,链接有时效性请尽快下载\n\n支持范围:\n 仅支持钉钉在线电子表格(axls)→ xlsx;\n 若需导出钉钉文字文档,请使用 dingtalkdoc 侧的导出工具。\n\n权限要求:\n 当前用户对目标表格具备可查看/下载权限。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "用于将钉钉在线表格导出为 xlsx。导出为异步操作,提交后需使用 query_export_job 轮询任务状态并获取下载链接。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "用于将钉钉在线表格导出为 xlsx。导出为异步操作,提交后需使用 query_export_job 轮询任务状态并获取下载链接。" + "source": "cobra_help", + "value": "将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式)。\n\n执行流程(全程自动,无需 Agent 介入轮询):\n 1. 提交导出任务(submit_export_job),获取 jobId\n 2. 按渐进式退避策略轮询任务状态(query_export_job)\n 第 1~5 次:每次 2 秒\n 第 6~10 次:每次 5 秒\n 第 11~20 次:每次 10 秒\n 第 21~30 次:每次 15 秒\n 硬上限 30 次(约 5 分钟),超时后返回错误\n 3. 任务成功后取得 downloadUrl\n 4. 若指定了 --output,将 xlsx 下载到本地文件;否则直接输出 downloadUrl\n\n参数说明:\n --node 表格文档 ID 或链接 URL,系统自动识别(必填)\n --output 本地保存路径(可选)。可为文件路径或目录:\n - 文件路径:如 ./a.xlsx,直接按此路径保存\n - 目录路径:如 ./,自动从下载链接推断文件名\n - 未指定:仅返回 downloadUrl,链接有时效性请尽快下载\n\n支持范围:\n 仅支持钉钉在线电子表格(axls)→ xlsx;\n 若需导出钉钉文字文档,请使用 dingtalkdoc 侧的导出工具。\n\n权限要求:\n 当前用户对目标表格具备可查看/下载权限。" }, "dry_run": { "candidates": [ @@ -396505,22 +396894,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "导出钉钉表格" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "导出表格为 xlsx(异步任务一站式)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "导出钉钉表格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "导出钉钉表格" + "source": "cobra_help", + "value": "导出表格为 xlsx(异步任务一站式)" }, "use_when": { "candidates": [ @@ -396566,6 +396955,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要导出的钉钉在线电子表格的标识,支持以下格式:1) 文档 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。必填。仅支持钉钉在线电子表格(alxs),传入其他类型(如钉钉文字文档)会报错。" + }, { "precedence": "default", "selected": false, @@ -396581,22 +396976,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -396607,9 +397014,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -396641,7 +397048,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要导出的钉钉在线电子表格的标识,支持以下格式:1) 文档 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。必填。仅支持钉钉在线电子表格(alxs),传入其他类型(如钉钉文字文档)会报错。", + "property": "nodeId", "required": true, "type": "string" }, @@ -396671,16 +397079,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local destination consumed after export job completion", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "output" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "output" + "review_reason": "local destination consumed after export job completion", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -396725,7 +397141,6 @@ "value": "string" } }, - "property": "output", "required": false, "type": "string" } @@ -396736,7 +397151,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "导出钉钉表格", + "title": "导出表格为 xlsx(异步任务一站式)", "use_when": [ "当用户明确要求将钉钉在线电子表格导出为 Office xlsx 格式(单命令一站式),且已确认目标对象和所需参数时使用。" ] @@ -396765,9 +397180,6 @@ "confirmation": "not_required", "description": "读取结构化 table 数据。\n\n返回列名、行数据、pandas-style dtypes 和表格 number formats。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -396794,7 +397206,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -396802,7 +397214,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -396859,39 +397271,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "读取结构化 table 数据。\n\n返回列名、行数据、pandas-style dtypes 和表格 number formats。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "读取结构化 table 数据。\n\n返回列名、行数据、pandas-style dtypes 和表格 number formats。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -396944,39 +397334,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -396984,7 +397374,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -396996,13 +397386,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -397028,13 +397411,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "读取结构化 table 数据" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "读取结构化 table 数据" @@ -397062,8 +397445,8 @@ }, "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "table_get", "parameter_count": 4, @@ -397094,16 +397477,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --no-header is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "noHeader" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "noHeader" + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --no-header is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -397148,7 +397539,6 @@ "value": "boolean" } }, - "property": "noHeader", "required": false, "type": "boolean" }, @@ -397294,16 +397684,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -397349,7 +397747,6 @@ } }, "format": "a1-range", - "property": "range", "required": false, "type": "string" }, @@ -397379,16 +397776,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -397433,7 +397838,6 @@ "value": "string" } }, - "property": "sheetId", "required": false, "type": "string" } @@ -397473,9 +397877,6 @@ "confirmation": "not_required", "description": "写入结构化 table 数据。\n\n支持一次写入一个或多个 sheet;目标 sheet 存在时写入,传 name 且不存在时会创建 sheet。\n\n--sheets 支持三种输入:\n JSON 数组 [{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]\n JSON 对象 {\"sheets\":[{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]}\n 单个 sheet spec JSON 对象 {\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}\n\n--sheets 可传 @filepath 从文件读取,或传 - 从 stdin 读取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -397502,7 +397903,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -397510,7 +397911,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -397583,39 +397984,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "写入结构化 table 数据。\n\n支持一次写入一个或多个 sheet;目标 sheet 存在时写入,传 name 且不存在时会创建 sheet。\n\n--sheets 支持三种输入:\n JSON 数组 [{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]\n JSON 对象 {\"sheets\":[{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]}\n 单个 sheet spec JSON 对象 {\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}\n\n--sheets 可传 @filepath 从文件读取,或传 - 从 stdin 读取。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "写入结构化 table 数据。\n\n支持一次写入一个或多个 sheet;目标 sheet 存在时写入,传 name 且不存在时会创建 sheet。\n\n--sheets 支持三种输入:\n JSON 数组 [{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]\n JSON 对象 {\"sheets\":[{\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}]}\n 单个 sheet spec JSON 对象 {\"name\":\"Sheet1\",\"columns\":[\"name\"],\"data\":[[\"Alice\"]]}\n\n--sheets 可传 @filepath 从文件读取,或传 - 从 stdin 读取。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -397668,39 +398047,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -397708,7 +398087,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -397720,13 +398099,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -397752,13 +398124,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "写入结构化 table 数据" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "写入结构化 table 数据" @@ -397786,8 +398158,8 @@ }, "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "table_put", "parameter_count": 2, @@ -397936,16 +398308,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.table_put has no singular pinned interface_ref; --sheets is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheets" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheets" + "review_reason": "Reviewed unpinned adapter: sheet.table_put has no singular pinned interface_ref; --sheets is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -397997,7 +398377,6 @@ } }, "interface_type": "array", - "property": "sheets", "required": true, "type": "string" } @@ -398019,6 +398398,7 @@ "cobra-help:dws sheet template apply --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -398035,9 +398415,6 @@ "confirmation": "not_required", "description": "使用指定模板创建新表格文档。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -398063,15 +398440,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -398127,39 +398506,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "使用指定模板创建新表格文档。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "使用指定模板创建新表格文档。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -398211,45 +398568,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -398291,13 +398652,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "应用表格模板" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "应用表格模板" @@ -398326,8 +398687,8 @@ "group": "template", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_apply", "parameter_count": 4, @@ -398358,16 +398719,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -398412,7 +398781,6 @@ "value": "string" } }, - "property": "folder", "required": false, "type": "string" }, @@ -398442,16 +398810,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -398496,7 +398872,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -398526,16 +398901,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "templateId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "templateId" + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -398586,7 +398969,6 @@ "value": "string" } }, - "property": "templateId", "required": true, "type": "string" }, @@ -398616,16 +398998,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "review_reason": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -398670,7 +399060,6 @@ "value": "string" } }, - "property": "workspace", "required": false, "type": "string" } @@ -398692,6 +399081,7 @@ "cobra-help:dws sheet template list --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -398708,9 +399098,6 @@ "confirmation": "not_required", "description": "获取当前用户可用的表格模板列表,支持按来源筛选。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -398736,15 +399123,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -398800,39 +399189,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取当前用户可用的表格模板列表,支持按来源筛选。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取当前用户可用的表格模板列表,支持按来源筛选。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -398884,45 +399251,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -398964,13 +399335,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "获取表格模板列表" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "获取表格模板列表" @@ -398999,8 +399370,8 @@ "group": "template", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_list", "parameter_count": 3, @@ -399031,16 +399402,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399085,7 +399464,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -399115,16 +399493,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399169,7 +399555,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -399199,16 +399584,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "source" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "source" + "review_reason": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399259,7 +399652,6 @@ "value": "string" } }, - "property": "source", "required": false, "type": "string" } @@ -399281,6 +399673,7 @@ "cobra-help:dws sheet template search --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-workbook.md" @@ -399297,9 +399690,6 @@ "confirmation": "not_required", "description": "根据关键词搜索表格模板。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "agent-hint", "examples": [ @@ -399325,15 +399715,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -399389,39 +399781,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "根据关键词搜索表格模板。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "根据关键词搜索表格模板。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -399473,45 +399843,49 @@ "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -399553,13 +399927,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "搜索表格模板" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "搜索表格模板" @@ -399588,8 +399962,8 @@ "group": "template", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "template_search", "parameter_count": 4, @@ -399620,16 +399994,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399674,7 +400056,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -399704,16 +400085,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399758,7 +400147,6 @@ "value": "integer" } }, - "property": "limit", "required": false, "type": "integer" }, @@ -399788,16 +400176,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399848,7 +400244,6 @@ "value": "string" } }, - "property": "query", "required": true, "type": "string" }, @@ -399878,16 +400273,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "source" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "source" + "review_reason": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -399938,7 +400341,6 @@ "value": "string" } }, - "property": "source", "required": false, "type": "string" } @@ -399960,6 +400362,8 @@ "cobra-help:dws sheet ungroup-dimension --help", "internal/cli/schema_command_registry.json", "internal/cli/schema_hints/runtime-surface-completeness.json", + "internal/cli/schema_hints/zz-interface-disposition-review.json", + "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "internal/cli/schema_manual_hints.json", "skills/mono/references/products/sheet.md", "skills/mono/references/products/sheet/sheet-dimension-operations.md" @@ -399976,10 +400380,7 @@ "confirmation": "not_required", "description": "取消钉钉表格指定工作表中的连续整行或整列分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n取消后可通过 sheet info --include groups 回读 rowGroups / columnGroups。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, - "effect": "read", + "effect": "write", "effect_source": "agent-hint", "examples": [ "dws sheet ungroup-dimension --node NODE_ID --sheet-id SHEET_ID --range 3:7" @@ -400004,15 +400405,17 @@ "availability": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, "avoid_when": { @@ -400054,66 +400457,60 @@ "confirmation": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "not_required" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "not_required" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", "value": "not_required" }, "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消钉钉表格指定工作表中的连续整行或整列分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n取消后可通过 sheet info --include groups 回读 rowGroups / columnGroups。" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消钉钉表格指定工作表中的连续整行或整列分组。\n\n--range 使用整行/整列范围:\n 行分组:3:7 或 3\n 列分组:C:F 或 C\n\n支持在 --range 中携带工作表前缀(如 \"Sheet1!3:7\" / \"Sheet1!C:F\"),此时将忽略 --sheet-id。\n取消后可通过 sheet info --include groups 回读 rowGroups / columnGroups。" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "read" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "read" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "write" }, "examples": { "candidates": [ @@ -400138,59 +400535,71 @@ "idempotency": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "idempotent" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "idempotent" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "unknown" }, "interface_mode": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "local" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "composite" }, "interface_reason": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref" + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { - "precedence": "unreviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, "reviewed": { @@ -400202,6 +400611,13 @@ "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": true }, + { + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "selected": false, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": true + }, { "precedence": "unreviewed_explicit", "selected": false, @@ -400218,27 +400634,35 @@ "risk": { "candidates": [ { - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", "selected": true, + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" + }, + { + "precedence": "unreviewed_explicit", + "selected": false, "source": "internal/cli/schema_hints/runtime-surface-completeness.json", "value": "low" } ], - "precedence": "unreviewed_explicit", + "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "source": "internal/cli/schema_hints/runtime-surface-completeness.json", - "value": "low" + "review_reason": "runtime-confirmation-review-v2 marks this tool as reviewed", + "source": "internal/cli/schema_hints/zz-runtime-confirmation-review.json", + "value": "medium" }, "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "取消指定连续行/列分组" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "取消指定连续行/列分组" @@ -400265,9 +400689,9 @@ } }, "has_parameters": true, - "idempotency": "idempotent", - "interface_mode": "local", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", + "idempotency": "unknown", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "ungroup_dimension", "parameter_count": 3, @@ -400298,16 +400722,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -400358,7 +400790,6 @@ "value": "string" } }, - "property": "node", "required": true, "type": "string" }, @@ -400388,16 +400819,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -400448,7 +400887,6 @@ "value": "string" } }, - "property": "range", "required": true, "type": "string" }, @@ -400478,16 +400916,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -400538,7 +400984,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -400547,7 +400992,7 @@ "primary_cli_path": "sheet ungroup-dimension", "product_id": "sheet", "reviewed": true, - "risk": "low", + "risk": "medium", "source": "reviewed_command_registry", "title": "取消指定连续行/列分组", "use_when": [ @@ -400576,11 +401021,8 @@ "cli_name": "unmerge-cells", "cli_path": "sheet unmerge-cells", "confirmation": "not_required", - "description": "取消钉钉表格指定工作表中指定范围内的合并单元格。\r\n\r\n通过 rangeAddress 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\r\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。", + "description": "取消钉钉表格指定工作表中指定范围内的合并单元格。\n\n通过 --range 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -400678,44 +401120,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "取消钉钉表格指定工作表中指定范围内的合并单元格。\r\n\r\n通过 rangeAddress 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\r\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "取消钉钉表格指定工作表中指定范围内的合并单元格。\n\n通过 --range 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "取消钉钉表格指定工作表中指定范围内的合并单元格。\r\n\r\n通过 rangeAddress 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\r\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "取消钉钉表格指定工作表中指定范围内的合并单元格。\r\n\r\n通过 rangeAddress 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\r\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "取消钉钉表格指定工作表中指定范围内的合并单元格。\n\n通过 --range 参数指定要取消合并的范围,使用 A1 表示法(如 A1:D5)。\n该范围内所有合并的单元格都会被取消合并,恢复为独立的单元格。\n\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。" }, "effect": { "candidates": [ @@ -400854,21 +401274,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "取消合并单元格" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "取消合并单元格" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "取消合并单元格" }, "use_when": { @@ -400915,6 +401335,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -400930,22 +401356,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -400956,9 +401394,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -400990,7 +401428,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -401005,6 +401444,12 @@ "source": "cobra_usage", "value": "取消合并的范围,A1 表示法,如 A1:D5 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要取消合并的范围(必填),使用 A1 表示法。例如 A1:D5 表示取消 A1 到 D5 区域内的所有合并。" + }, { "precedence": "default", "selected": false, @@ -401040,22 +401485,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "rangeAddress" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "source": "versioned_parameter_binding", + "value": "rangeAddress" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -401066,9 +401523,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -401101,7 +401558,8 @@ } }, "format": "a1-range", - "property": "range", + "interface_description": "要取消合并的范围(必填),使用 A1 表示法。例如 A1:D5 表示取消 A1 到 D5 区域内的所有合并。", + "property": "rangeAddress", "required": true, "type": "string" }, @@ -401253,11 +401711,8 @@ ] ] }, - "description": "更新指定工作表中的一条条件格式规则。未传入的字段将保持原有值不变。", + "description": "更新钉钉电子表格中指定工作表的一条条件格式规则。\n\n可以部分更新以下字段:\n- --ranges:修改规则的应用范围\n- --condition:切换或修改条件类型及参数\n- --cell-style:修改命中时的单元格样式\n- --data-bar-style:修改数据条样式\n\n未传入的字段将保持原有值不变。\n传入 --condition 时,新条件类型将替换原有条件类型。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位条件格式规则。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -401363,44 +401818,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新指定工作表中的一条条件格式规则。未传入的字段将保持原有值不变。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新钉钉电子表格中指定工作表的一条条件格式规则。\n\n可以部分更新以下字段:\n- --ranges:修改规则的应用范围\n- --condition:切换或修改条件类型及参数\n- --cell-style:修改命中时的单元格样式\n- --data-bar-style:修改数据条样式\n\n未传入的字段将保持原有值不变。\n传入 --condition 时,新条件类型将替换原有条件类型。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位条件格式规则。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新指定工作表中的一条条件格式规则。未传入的字段将保持原有值不变。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新指定工作表中的一条条件格式规则。未传入的字段将保持原有值不变。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新钉钉电子表格中指定工作表的一条条件格式规则。\n\n可以部分更新以下字段:\n- --ranges:修改规则的应用范围\n- --condition:切换或修改条件类型及参数\n- --cell-style:修改命中时的单元格样式\n- --data-bar-style:修改数据条样式\n\n未传入的字段将保持原有值不变。\n传入 --condition 时,新条件类型将替换原有条件类型。\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --rule-id 定位条件格式规则。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nruleId 可通过 cond-format list 获取。" }, "effect": { "candidates": [ @@ -401570,21 +402003,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新条件格式规则" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新条件格式规则" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新条件格式规则" }, "use_when": { @@ -401848,16 +402281,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "condition" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "condition" + "review_reason": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -401909,7 +402350,6 @@ } }, "format": "json", - "property": "condition", "required": false, "type": "string" }, @@ -402063,6 +402503,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。" + }, { "precedence": "default", "selected": false, @@ -402078,22 +402524,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -402104,9 +402562,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -402138,7 +402596,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。", + "property": "nodeId", "required": true, "type": "string" }, @@ -402555,11 +403014,8 @@ ] ] }, - "description": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。", + "description": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。\n\n起始位置 startIndex 使用 A1 表示法:\n --dimension ROWS 时,--start-index 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始\n --dimension COLUMNS 时,--start-index 为列字母,如 \"A\" 表示从 A 列开始、\"AB\" 表示从 AB 列开始\n\n支持在 --start-index 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n--hidden 与 --pixel-size 至少必须提供一个。当同时提供时,将先应用尺寸再应用显隐,任一失败整体失败。\n--pixel-size 单位为像素,dimension=ROWS 时表示行高、dimension=COLUMNS 时表示列宽。\n\n常见场景:隐藏/显示指定连续行或列、批量调整行高/列宽、在同一次调用中同时修改尺寸与显隐。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -402657,44 +403113,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。\n\n起始位置 startIndex 使用 A1 表示法:\n --dimension ROWS 时,--start-index 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始\n --dimension COLUMNS 时,--start-index 为列字母,如 \"A\" 表示从 A 列开始、\"AB\" 表示从 AB 列开始\n\n支持在 --start-index 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n--hidden 与 --pixel-size 至少必须提供一个。当同时提供时,将先应用尺寸再应用显隐,任一失败整体失败。\n--pixel-size 单位为像素,dimension=ROWS 时表示行高、dimension=COLUMNS 时表示列宽。\n\n常见场景:隐藏/显示指定连续行或列、批量调整行高/列宽、在同一次调用中同时修改尺寸与显隐。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize)。\n\n起始位置 startIndex 使用 A1 表示法:\n --dimension ROWS 时,--start-index 为 1-based 行号字符串,如 \"3\" 表示从第 3 行开始\n --dimension COLUMNS 时,--start-index 为列字母,如 \"A\" 表示从 A 列开始、\"AB\" 表示从 AB 列开始\n\n支持在 --start-index 中携带工作表前缀(如 \"Sheet1!3\" / \"Sheet1!A\"),此时将忽略 --sheet-id。\n--hidden 与 --pixel-size 至少必须提供一个。当同时提供时,将先应用尺寸再应用显隐,任一失败整体失败。\n--pixel-size 单位为像素,dimension=ROWS 时表示行高、dimension=COLUMNS 时表示列宽。\n\n常见场景:隐藏/显示指定连续行或列、批量调整行高/列宽、在同一次调用中同时修改尺寸与显隐。" }, "effect": { "candidates": [ @@ -402833,22 +403267,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新行列属性" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定范围行/列属性(显隐、行高/列宽)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新行列属性" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新行列属性" + "source": "cobra_help", + "value": "更新指定范围行/列属性(显隐、行高/列宽)" }, "use_when": { "candidates": [ @@ -403269,6 +403703,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -403284,22 +403724,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -403310,9 +403762,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -403344,7 +403796,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -403721,7 +404174,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新行列属性", + "title": "更新指定范围行/列属性(显隐、行高/列宽)", "use_when": [ "当用户明确要求批量更新钉钉表格指定工作表中连续多行/多列的属性,支持设置显隐状态(hidden)与行高/列宽(pixelSize),且已确认目标对象和所需参数时使用。" ] @@ -403749,11 +404202,8 @@ "cli_name": "update", "cli_path": "sheet filter update", "confirmation": "not_required", - "description": "批量更新钉钉电子表格中指定工作表的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n可同时更新多列的筛选条件,支持三种筛选类型:\r\n- 按值筛选(filterType: values):指定允许显示的值列表,未在列表中的值将被隐藏\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n此接口会替换指定列的现有筛选条件,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "批量更新筛选条件,可同时设置多列的筛选条件。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n覆盖式:指定列的条件会被替换,未指定的列保持不变。\n\n--criteria JSON 数组,每个元素含 column(列偏移量,从 0 开始)和筛选条件字段。\n支持三种 filterType:\n - values:按值筛选,指定 visibleValues 数组\n - condition:按条件筛选,指定 conditions 数组(最多 2 个)和可选的 conditionOperator\n - color:按颜色筛选,指定 backgroundColor 或 fontColor(二选一)", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -403859,44 +404309,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "批量更新钉钉电子表格中指定工作表的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n可同时更新多列的筛选条件,支持三种筛选类型:\r\n- 按值筛选(filterType: values):指定允许显示的值列表,未在列表中的值将被隐藏\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n此接口会替换指定列的现有筛选条件,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量更新筛选条件,可同时设置多列的筛选条件。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n覆盖式:指定列的条件会被替换,未指定的列保持不变。\n\n--criteria JSON 数组,每个元素含 column(列偏移量,从 0 开始)和筛选条件字段。\n支持三种 filterType:\n - values:按值筛选,指定 visibleValues 数组\n - condition:按条件筛选,指定 conditions 数组(最多 2 个)和可选的 conditionOperator\n - color:按颜色筛选,指定 backgroundColor 或 fontColor(二选一)" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "批量更新钉钉电子表格中指定工作表的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n可同时更新多列的筛选条件,支持三种筛选类型:\r\n- 按值筛选(filterType: values):指定允许显示的值列表,未在列表中的值将被隐藏\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n此接口会替换指定列的现有筛选条件,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "批量更新钉钉电子表格中指定工作表的筛选条件。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\n\r\n可同时更新多列的筛选条件,支持三种筛选类型:\r\n- 按值筛选(filterType: values):指定允许显示的值列表,未在列表中的值将被隐藏\r\n- 按条件筛选(filterType: condition):指定条件运算符和比较值\r\n- 按颜色筛选(filterType: color):按单元格背景色或字体颜色筛选\r\n\r\n使用此接口前,工作表必须已创建筛选(通过 create_filter 创建)。\r\n此接口会替换指定列的现有筛选条件,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "批量更新筛选条件,可同时设置多列的筛选条件。\n\n前置条件:工作表必须已创建筛选(通过 filter create)。\n覆盖式:指定列的条件会被替换,未指定的列保持不变。\n\n--criteria JSON 数组,每个元素含 column(列偏移量,从 0 开始)和筛选条件字段。\n支持三种 filterType:\n - values:按值筛选,指定 visibleValues 数组\n - condition:按条件筛选,指定 conditions 数组(最多 2 个)和可选的 conditionOperator\n - color:按颜色筛选,指定 backgroundColor 或 fontColor(二选一)" }, "effect": { "candidates": [ @@ -404066,22 +404494,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新筛选" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "批量更新筛选条件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新筛选" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新筛选" + "source": "cobra_help", + "value": "批量更新筛选条件" }, "use_when": { "candidates": [ @@ -404252,6 +404680,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -404267,22 +404701,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -404293,9 +404739,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -404327,7 +404773,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -404441,7 +404888,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新筛选", + "title": "批量更新筛选条件", "use_when": [ "当用户明确要求批量更新筛选条件,可同时设置多列的筛选条件,且已确认目标对象和所需参数时使用。" ] @@ -404478,11 +404925,8 @@ ] ] }, - "description": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n可更新筛选视图的名称、范围和筛选条件,至少需要传入一个更新字段。\r\n通过 criteria 参数可直接批量更新多列的筛选条件,指定列的条件会被替换,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。", + "description": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\n\n用途:修改已有筛选视图的名称、数据范围或筛选条件。\n场景:\n - 数据区域扩展后需要扩大筛选视图范围(如从 A1:D10 扩到 A1:D100)\n - 重命名筛选视图以更好描述其用途\n - 通过 --criteria 一次性批量更新多列的筛选条件\n区分:\n - update 可同时修改名称、范围和条件,适合批量更新\n - update-criteria 只能设置单列条件,适合精确控制某一列的筛选逻辑\n - update --criteria 会替换指定列的条件,未指定的列保持不变\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n至少需要传入一个更新字段(--name / --range / --criteria)。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "agent-hint", "examples": [ @@ -404588,44 +405032,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n可更新筛选视图的名称、范围和筛选条件,至少需要传入一个更新字段。\r\n通过 criteria 参数可直接批量更新多列的筛选条件,指定列的条件会被替换,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\n\n用途:修改已有筛选视图的名称、数据范围或筛选条件。\n场景:\n - 数据区域扩展后需要扩大筛选视图范围(如从 A1:D10 扩到 A1:D100)\n - 重命名筛选视图以更好描述其用途\n - 通过 --criteria 一次性批量更新多列的筛选条件\n区分:\n - update 可同时修改名称、范围和条件,适合批量更新\n - update-criteria 只能设置单列条件,适合精确控制某一列的筛选逻辑\n - update --criteria 会替换指定列的条件,未指定的列保持不变\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n至少需要传入一个更新字段(--name / --range / --criteria)。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n可更新筛选视图的名称、范围和筛选条件,至少需要传入一个更新字段。\r\n通过 criteria 参数可直接批量更新多列的筛选条件,指定列的条件会被替换,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\r\n\r\n通过 nodeId 定位电子表格文档,通过 sheetId 定位工作表,通过 filterViewId 定位筛选视图。\r\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\r\nsheetId 支持传入工作表 ID 或工作表名称,可通过 get_all_sheets 获取。\r\nfilterViewId 可通过 get_filter_views 获取。\r\n\r\n可更新筛选视图的名称、范围和筛选条件,至少需要传入一个更新字段。\r\n通过 criteria 参数可直接批量更新多列的筛选条件,指定列的条件会被替换,未指定的列保持不变。\r\n\r\n仅限用户对文档具备\"可编辑\"权限时可操作。不支持跨组织操作。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件)。\n\n用途:修改已有筛选视图的名称、数据范围或筛选条件。\n场景:\n - 数据区域扩展后需要扩大筛选视图范围(如从 A1:D10 扩到 A1:D100)\n - 重命名筛选视图以更好描述其用途\n - 通过 --criteria 一次性批量更新多列的筛选条件\n区分:\n - update 可同时修改名称、范围和条件,适合批量更新\n - update-criteria 只能设置单列条件,适合精确控制某一列的筛选逻辑\n - update --criteria 会替换指定列的条件,未指定的列保持不变\n\n通过 --node 定位电子表格文档,通过 --sheet-id 定位工作表,通过 --filter-view-id 定位筛选视图。\nnodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。\nsheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。\nfilterViewId 可通过 filter-view list 获取。\n\n至少需要传入一个更新字段(--name / --range / --criteria)。" }, "effect": { "candidates": [ @@ -404795,22 +405217,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新筛选视图" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新筛选视图属性" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新筛选视图" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新筛选视图" + "source": "cobra_help", + "value": "更新筛选视图属性" }, "use_when": { "candidates": [ @@ -405175,6 +405597,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -405190,22 +405618,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -405216,9 +405656,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -405250,7 +405690,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 文档链接 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -405482,7 +405923,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新筛选视图", + "title": "更新筛选视图属性", "use_when": [ "当用户明确要求更新钉钉电子表格中指定工作表的筛选视图属性(名称、范围和/或筛选条件),且已确认目标对象和所需参数时使用。" ] @@ -405520,11 +405961,8 @@ ] ] }, - "description": "更新钉钉电子表格中指定浮动图片的属性。", + "description": "更新钉钉表格指定工作表中浮动图片的属性。\n\n可更新的属性包括:图片资源路径(src)、锚点位置、尺寸、偏移量。\n至少需要传入一个更新字段(--src / --range / --width / --height / --offset-x / --offset-y)。\nfloatImageId 可通过 list-float-images 获取。", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -405622,44 +406060,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定浮动图片的属性。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新钉钉表格指定工作表中浮动图片的属性。\n\n可更新的属性包括:图片资源路径(src)、锚点位置、尺寸、偏移量。\n至少需要传入一个更新字段(--src / --range / --width / --height / --offset-x / --offset-y)。\nfloatImageId 可通过 list-float-images 获取。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定浮动图片的属性。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新钉钉电子表格中指定浮动图片的属性。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新钉钉表格指定工作表中浮动图片的属性。\n\n可更新的属性包括:图片资源路径(src)、锚点位置、尺寸、偏移量。\n至少需要传入一个更新字段(--src / --range / --width / --height / --offset-x / --offset-y)。\nfloatImageId 可通过 list-float-images 获取。" }, "effect": { "candidates": [ @@ -405798,22 +406214,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新浮动图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新浮动图片属性" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新浮动图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新浮动图片" + "source": "cobra_help", + "value": "更新浮动图片属性" }, "use_when": { "candidates": [ @@ -406080,6 +406496,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -406095,22 +406517,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -406121,9 +406555,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -406155,7 +406589,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "目标电子表格的标识(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -406838,7 +407273,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "更新浮动图片", + "title": "更新浮动图片属性", "use_when": [ "当用户明确要求更新指定工作表中浮动图片的位置、尺寸或图片来源,且已确认目标对象和所需参数时使用。" ] @@ -406864,9 +407299,6 @@ "confirmation": "not_required", "description": "更新透视表配置", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -406893,7 +407325,7 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" @@ -406901,7 +407333,7 @@ ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": "available" }, @@ -406966,39 +407398,17 @@ "description": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新透视表配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新透视表配置" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -407051,39 +407461,39 @@ "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "local" + "value": "composite" }, "interface_reason": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." } ], "precedence": "reviewed_explicit", "resolution": "highest_precedence", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", + "review_reason": "reviewed-interface-disposition-v2 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface." + "value": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." }, "interface_ref": { "candidates": [ { "precedence": "reviewed_explicit", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null @@ -407091,7 +407501,7 @@ ], "precedence": "reviewed_explicit", "resolution": "interface_disposition_matrix", - "review_reason": "final interface mode local forbids a direct MCP interface_ref", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", "value": null }, @@ -407103,13 +407513,6 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v2", "value": true - }, - { - "precedence": "reviewed_explicit", - "review_reason": "unverified-direct-interface-review-v1 marks this tool as reviewed", - "selected": false, - "source": "internal/cli/schema_hints/zz-interface-disposition-review.json", - "value": true } ], "precedence": "reviewed_manual", @@ -407135,13 +407538,13 @@ "title": { "candidates": [ { - "precedence": "inference", + "precedence": "cobra_help", "selected": true, "source": "cobra_help", "value": "更新透视表配置" } ], - "precedence": "inference", + "precedence": "cobra_help", "resolution": "highest_precedence", "source": "cobra_help", "value": "更新透视表配置" @@ -407170,8 +407573,8 @@ "group": "pivot-table", "has_parameters": true, "idempotency": "unknown", - "interface_mode": "local", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", + "interface_mode": "composite", + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", "is_alias": false, "name": "update_pivot_table", "parameter_count": 4, @@ -407298,16 +407701,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "pivotTableId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "pivotTableId" + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -407358,12 +407769,12 @@ "value": "string" } }, - "property": "pivotTableId", "required": true, "type": "string" }, "properties": { "description": "需要更新的透视表配置 JSON 或 @文件路径 (必填)", + "example": "{\"show_subtotals\":false}", "field_provenance": { "description": { "candidates": [ @@ -407385,6 +407796,46 @@ "source": "cobra_usage", "value": "需要更新的透视表配置 JSON 或 @文件路径 (必填)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "{\"show_subtotals\":false}" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "{\"show_subtotals\":false}" + }, + "format": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "json" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "json" + }, "interface_type": { "candidates": [ { @@ -407410,16 +407861,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "properties" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "properties" + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -407470,8 +407929,8 @@ "value": "string" } }, + "format": "json", "interface_type": "object", - "property": "properties", "required": true, "type": "string" }, @@ -407501,16 +407960,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "sheetId" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "sheetId" + "review_reason": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -407561,7 +408028,6 @@ "value": "string" } }, - "property": "sheetId", "required": true, "type": "string" } @@ -407610,11 +408076,8 @@ ] ] }, - "description": "更新钉钉电子表格中指定工作表的属性,包括名称、位置、可见性、冻结行列等。", + "description": "更新工作表名称、位置、隐藏状态、冻结行列、标签颜色。\n\n--name / --index / --hidden / --frozen-row-count / --frozen-column-count / --tab-color 至少提供一个;\n多个属性可同时传入,将在同一次请求中更新。\n\n注意:\n - name 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符\n - 至少需要保留一个可见的工作表,不能将所有工作表都隐藏\n - 冻结行数/列数不能超过工作表的总行数/总列数,设为 0 表示取消冻结\n - tab-color 为 Hex 格式如 #FF0000,传空字符串清除颜色", "display": "钉钉表格管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -407712,44 +408175,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定工作表的属性,包括名称、位置、可见性、冻结行列等。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新工作表名称、位置、隐藏状态、冻结行列、标签颜色。\n\n--name / --index / --hidden / --frozen-row-count / --frozen-column-count / --tab-color 至少提供一个;\n多个属性可同时传入,将在同一次请求中更新。\n\n注意:\n - name 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符\n - 至少需要保留一个可见的工作表,不能将所有工作表都隐藏\n - 冻结行数/列数不能超过工作表的总行数/总列数,设为 0 表示取消冻结\n - tab-color 为 Hex 格式如 #FF0000,传空字符串清除颜色" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "更新钉钉电子表格中指定工作表的属性,包括名称、位置、可见性、冻结行列等。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "更新钉钉电子表格中指定工作表的属性,包括名称、位置、可见性、冻结行列等。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新工作表名称、位置、隐藏状态、冻结行列、标签颜色。\n\n--name / --index / --hidden / --frozen-row-count / --frozen-column-count / --tab-color 至少提供一个;\n多个属性可同时传入,将在同一次请求中更新。\n\n注意:\n - name 不能包含 / \\ ? * [ ] : 等特殊字符,最长 100 字符\n - 至少需要保留一个可见的工作表,不能将所有工作表都隐藏\n - 冻结行数/列数不能超过工作表的总行数/总列数,设为 0 表示取消冻结\n - tab-color 为 Hex 格式如 #FF0000,传空字符串清除颜色" }, "effect": { "candidates": [ @@ -407888,21 +408329,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新工作表属性" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "更新工作表属性" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "更新工作表属性" }, "use_when": { @@ -408400,6 +408841,12 @@ "source": "cobra_usage", "value": "工作表新名称,最长 100 字符" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "工作表的新名称(可选)。最长 100 字符。如果新名称与已有工作表重名,系统会自动在名称后追加后缀(如 \"-1\")以避免冲突。" + }, { "precedence": "default", "selected": false, @@ -408415,16 +408862,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "title" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "source": "versioned_parameter_binding", + "value": "title" }, "required": { "candidates": [ @@ -408475,7 +408928,8 @@ "value": "string" } }, - "property": "name", + "interface_description": "工作表的新名称(可选)。最长 100 字符。如果新名称与已有工作表重名,系统会自动在名称后追加后缀(如 \"-1\")以避免冲突。", + "property": "title", "required": false, "type": "string" }, @@ -408490,6 +408944,12 @@ "source": "cobra_usage", "value": "表格文档 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。" + }, { "precedence": "default", "selected": false, @@ -408505,22 +408965,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -408531,9 +409003,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -408565,7 +409037,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID(必填)。支持两种格式:1) 钉钉文档链接 URL;2) 文档 ID(dentryUuid),32 位字母数字字符串。系统自动识别格式。", + "property": "nodeId", "required": true, "type": "string" }, @@ -408893,7 +409366,7 @@ "cli_name": "write-image", "cli_path": "sheet write-image", "confirmation": "not_required", - "description": "在钉钉表格的指定单元格中插入图片。\r\n\r\n通过 nodeId 定位表格文件,通过 sheetId 和 rangeAddress 定位目标单元格区域,\r\n将图片资源写入到指定位置。图片资源需要先获取 resourceId 和 resourceUrl。\r\n\r\n使用流程:\r\n1. 先获取上传凭证(uploadUrl、resourceId、resourceUrl)\r\n2. 使用 HTTP PUT 请求将图片文件上传到 uploadUrl\r\n3. 调用本接口,传入 resourceId 和 resourceUrl,在指定单元格中插入图片", + "description": "将本地图片上传并写入到钉钉表格的指定单元格(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传图片到 OSS\n 3. 调用 write_image 将图片写入指定单元格\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。\n--width / --height 可选,设置图片在单元格中的显示尺寸。", "display": "钉钉表格管理", "dry_run": { "preview_kind": "plan" @@ -408995,22 +409468,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在钉钉表格的指定单元格中插入图片。\r\n\r\n通过 nodeId 定位表格文件,通过 sheetId 和 rangeAddress 定位目标单元格区域,\r\n将图片资源写入到指定位置。图片资源需要先获取 resourceId 和 resourceUrl。\r\n\r\n使用流程:\r\n1. 先获取上传凭证(uploadUrl、resourceId、resourceUrl)\r\n2. 使用 HTTP PUT 请求将图片文件上传到 uploadUrl\r\n3. 调用本接口,传入 resourceId 和 resourceUrl,在指定单元格中插入图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将本地图片上传并写入到钉钉表格的指定单元格(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传图片到 OSS\n 3. 调用 write_image 将图片写入指定单元格\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。\n--width / --height 可选,设置图片在单元格中的显示尺寸。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在钉钉表格的指定单元格中插入图片。\r\n\r\n通过 nodeId 定位表格文件,通过 sheetId 和 rangeAddress 定位目标单元格区域,\r\n将图片资源写入到指定位置。图片资源需要先获取 resourceId 和 resourceUrl。\r\n\r\n使用流程:\r\n1. 先获取上传凭证(uploadUrl、resourceId、resourceUrl)\r\n2. 使用 HTTP PUT 请求将图片文件上传到 uploadUrl\r\n3. 调用本接口,传入 resourceId 和 resourceUrl,在指定单元格中插入图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在钉钉表格的指定单元格中插入图片。\r\n\r\n通过 nodeId 定位表格文件,通过 sheetId 和 rangeAddress 定位目标单元格区域,\r\n将图片资源写入到指定位置。图片资源需要先获取 resourceId 和 resourceUrl。\r\n\r\n使用流程:\r\n1. 先获取上传凭证(uploadUrl、resourceId、resourceUrl)\r\n2. 使用 HTTP PUT 请求将图片文件上传到 uploadUrl\r\n3. 调用本接口,传入 resourceId 和 resourceUrl,在指定单元格中插入图片" + "source": "cobra_help", + "value": "将本地图片上传并写入到钉钉表格的指定单元格(三步自动完成)。\n\n流程:\n 1. 获取附件上传凭证 (get_doc_attachment_upload_info)\n 2. HTTP PUT 上传图片到 OSS\n 3. 调用 write_image 将图片写入指定单元格\n\n--mime-type 可选,不指定时根据文件扩展名自动推断。\n--width / --height 可选,设置图片在单元格中的显示尺寸。" }, "dry_run": { "candidates": [ @@ -409171,22 +409644,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "单元格写入图片" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "上传图片并写入表格单元格" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "单元格写入图片" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "单元格写入图片" + "source": "cobra_help", + "value": "上传图片并写入表格单元格" }, "use_when": { "candidates": [ @@ -409247,16 +409720,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local upload input used to obtain resourceId/resourceUrl", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "file" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "file" + "review_reason": "local upload input used to obtain resourceId/resourceUrl", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -409307,7 +409788,6 @@ "value": "string" } }, - "property": "file", "required": true, "type": "string" }, @@ -409449,16 +409929,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local upload metadata", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "mimeType" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "mimeType" + "review_reason": "local upload metadata", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -409509,7 +409997,6 @@ "value": "string" } }, - "property": "mimeType", "required": false, "type": "string" }, @@ -409539,16 +410026,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local upload metadata", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "name" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "name" + "review_reason": "local upload metadata", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -409599,7 +410094,6 @@ "value": "string" } }, - "property": "name", "required": false, "type": "string" }, @@ -409614,6 +410108,12 @@ "source": "cobra_usage", "value": "目标表格文档的标识,支持传入 URL 或 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。" + }, { "precedence": "default", "selected": false, @@ -409629,22 +410129,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -409655,9 +410167,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -409689,7 +410201,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "表格文件 ID,知识库 API 返回的 nodeId(dentryUuid) 即是表格 nodeId,可通过获取节点或创建知识库文档接口获取。必填。", + "property": "nodeId", "required": true, "type": "string" }, @@ -409704,6 +410217,12 @@ "source": "cobra_usage", "value": "目标单元格区域地址,如 A1:B3 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标单元格区域地址,如 A1:B3。必填。" + }, { "precedence": "default", "selected": false, @@ -409739,22 +410258,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "rangeAddress" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "range" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "range" + "source": "versioned_parameter_binding", + "value": "rangeAddress" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -409765,9 +410296,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -409800,7 +410331,8 @@ } }, "format": "a1-range", - "property": "range", + "interface_description": "目标单元格区域地址,如 A1:B3。必填。", + "property": "rangeAddress", "required": true, "type": "string" }, @@ -410026,7 +410558,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "单元格写入图片", + "title": "上传图片并写入表格单元格", "use_when": [ "当用户明确要求将本地图片上传并写入指定工作表的单元格,且已确认目标对象和所需参数时使用。" ] @@ -410056,9 +410588,6 @@ "confirmation": "not_required", "description": "添加待办执行人", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -410156,45 +410685,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办执行人" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加待办执行人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办执行人" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -410332,22 +410839,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_task_executors" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加待办执行人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_task_executors" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_task_executors" + "source": "cobra_help", + "value": "添加待办执行人" }, "use_when": { "candidates": [ @@ -410582,7 +411089,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_task_executors", + "title": "添加待办执行人", "use_when": [ "需要添加待办执行人时" ] @@ -410612,9 +411119,6 @@ "confirmation": "not_required", "description": "添加待办参与人", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -410712,45 +411216,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办参与人" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加待办参与人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办参与人" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -410888,22 +411370,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_task_participants" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加待办参与人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_task_participants" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_task_participants" + "source": "cobra_help", + "value": "添加待办参与人" }, "use_when": { "candidates": [ @@ -411138,7 +411620,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_task_participants", + "title": "添加待办参与人", "use_when": [ "需要添加待办参与人时" ] @@ -411166,7 +411648,7 @@ "cli_name": "add-attachment", "cli_path": "todo task add-attachment", "confirmation": "not_required", - "description": "添加待办任务附件", + "description": "上传待办附件\n⚠️ 重要:该接口会上传文件到附件,不可用于测试或试探性调用。调用前必须确认待办存在。", "display": "待办任务管理", "dry_run": { "preview_kind": "plan" @@ -411268,22 +411750,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加待办任务附件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "上传待办附件\n⚠️ 重要:该接口会上传文件到附件,不可用于测试或试探性调用。调用前必须确认待办存在。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加待办任务附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加待办任务附件" + "source": "cobra_help", + "value": "上传待办附件\n⚠️ 重要:该接口会上传文件到附件,不可用于测试或试探性调用。调用前必须确认待办存在。" }, "dry_run": { "candidates": [ @@ -411444,22 +411926,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "添加待办任务附件" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "上传待办附件" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "添加待办任务附件" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "添加待办任务附件" + "source": "cobra_help", + "value": "上传待办附件" }, "use_when": { "candidates": [ @@ -411521,16 +412003,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local upload input used to construct attachmentList", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filePath" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filePath" + "review_reason": "local upload input used to construct attachmentList", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -411581,7 +412071,6 @@ "value": "string" } }, - "property": "filePath", "required": true, "type": "string" }, @@ -411611,16 +412100,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "todoAttachmentAddRequest.taskId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "taskId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "taskId" + "source": "versioned_parameter_binding", + "value": "todoAttachmentAddRequest.taskId" }, "required": { "candidates": [ @@ -411671,7 +412166,7 @@ "value": "string" } }, - "property": "taskId", + "property": "todoAttachmentAddRequest.taskId", "required": true, "type": "string" } @@ -411682,7 +412177,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "添加待办任务附件", + "title": "上传待办附件", "use_when": [ "需要上传待办附件时" ] @@ -411710,11 +412205,8 @@ "cli_name": "add", "cli_path": "todo comment add", "confirmation": "not_required", - "description": "给待办添加评论", + "description": "新增待办评论", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -411812,44 +412304,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "给待办添加评论" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "新增待办评论" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "给待办添加评论" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "给待办添加评论" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "新增待办评论" }, "effect": { "candidates": [ @@ -411988,22 +412458,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_todo_comment" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "新增待办评论" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_todo_comment" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_todo_comment" + "source": "cobra_help", + "value": "新增待办评论" }, "use_when": { "candidates": [ @@ -412252,7 +412722,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_todo_comment", + "title": "新增待办评论", "use_when": [ "需要新增待办评论时" ] @@ -412282,14 +412752,11 @@ "confirmation": "not_required", "description": "添加待办提醒", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ], "field_provenance": { "agent_summary": { @@ -412383,45 +412850,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办提醒" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加待办提醒" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加待办提醒" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -412444,8 +412889,8 @@ "selected": true, "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ] } ], @@ -412454,8 +412899,8 @@ "review_reason": "依据真实 Cobra leaf、对应产品 Skill 与现有 structured hints 审阅选择语义和示例;不改变命令身份、参数、安全或接口事实。", "source": "internal/cli/schema_manual_hints.json#agent_hints@ai-agent-contract-2026-07-13-v1", "value": [ - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --due-date-offset \u003cdueDateOffset\u003e --format json", - "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time \u003cbaseTime\u003e --reminder-time-stamp \u003creminderTimeStamp\u003e --format json" + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id \u003ctaskId\u003e --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ] }, "idempotency": { @@ -412561,22 +413006,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "add_todo_reminder" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "添加待办提醒" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "add_todo_reminder" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "add_todo_reminder" + "source": "cobra_help", + "value": "添加待办提醒" }, "use_when": { "candidates": [ @@ -412614,6 +413059,10 @@ "parameters": { "base-time": { "description": "提醒基准时间: dueTime/customTime (必填)", + "enum": [ + "dueTime", + "customTime" + ], "field_provenance": { "description": { "candidates": [ @@ -412635,6 +413084,32 @@ "source": "cobra_usage", "value": "提醒基准时间: dueTime/customTime (必填)" }, + "enum": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": [ + "dueTime", + "customTime" + ] + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": [] + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": [ + "dueTime", + "customTime" + ] + }, "property": { "candidates": [ { @@ -412710,6 +413185,7 @@ }, "due-date-offset": { "description": "截止时间偏移量,为整数 (baseTime=dueTime 时必填)", + "example": "-30", "field_provenance": { "description": { "candidates": [ @@ -412731,6 +413207,26 @@ "source": "cobra_usage", "value": "截止时间偏移量,为整数 (baseTime=dueTime 时必填)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "-30" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "-30" + }, "property": { "candidates": [ { @@ -412768,16 +413264,22 @@ "required_when": { "candidates": [ { - "precedence": "default", + "precedence": "typed_metadata", "selected": true, + "source": "typed_parameter_metadata", + "value": "base-time is dueTime" + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": "" } ], - "precedence": "default", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "source": "default", - "value": "" + "source": "typed_parameter_metadata", + "value": "base-time is dueTime" }, "type": { "candidates": [ @@ -412796,10 +413298,12 @@ }, "property": "todoReminderAddRequest.dueDateOffset", "required": false, + "required_when": "base-time is dueTime", "type": "string" }, "reminder-time-stamp": { "description": "自定义提醒时间 ISO-8601 (如 2026-03-10T18:00:00+08:00,baseTime=customTime 时必填)", + "example": "2026-03-10T18:00:00+08:00", "field_provenance": { "description": { "candidates": [ @@ -412821,6 +413325,26 @@ "source": "cobra_usage", "value": "自定义提醒时间 ISO-8601 (如 2026-03-10T18:00:00+08:00,baseTime=customTime 时必填)" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "2026-03-10T18:00:00+08:00" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "2026-03-10T18:00:00+08:00" + }, "format": { "candidates": [ { @@ -412878,16 +413402,22 @@ "required_when": { "candidates": [ { - "precedence": "default", + "precedence": "typed_metadata", "selected": true, + "source": "typed_parameter_metadata", + "value": "base-time is customTime" + }, + { + "precedence": "default", + "selected": false, "source": "default", "value": "" } ], - "precedence": "default", + "precedence": "typed_metadata", "resolution": "highest_precedence", - "source": "default", - "value": "" + "source": "typed_parameter_metadata", + "value": "base-time is customTime" }, "type": { "candidates": [ @@ -412907,6 +413437,7 @@ "format": "date-time", "property": "todoReminderAddRequest.reminderTimeStamp", "required": false, + "required_when": "base-time is customTime", "type": "string" }, "task-id": { @@ -413012,7 +413543,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "add_todo_reminder", + "title": "添加待办提醒", "use_when": [ "需要为待办添加提醒时" ] @@ -413040,11 +413571,8 @@ "cli_name": "create-sub", "cli_path": "todo task create-sub", "confirmation": "not_required", - "description": "在当前企业组织内创建一条个人待办的子待办事项(要求父待办必须是操作者本人创建),支持设置标题、执行人列表、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。子待办不支持设置单独的循环规则(遵循父待办的循环规则)。", + "description": "创建子待办", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -413143,44 +413671,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在当前企业组织内创建一条个人待办的子待办事项(要求父待办必须是操作者本人创建),支持设置标题、执行人列表、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。子待办不支持设置单独的循环规则(遵循父待办的循环规则)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建子待办" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在当前企业组织内创建一条个人待办的子待办事项(要求父待办必须是操作者本人创建),支持设置标题、执行人列表、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。子待办不支持设置单独的循环规则(遵循父待办的循环规则)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在当前企业组织内创建一条个人待办的子待办事项(要求父待办必须是操作者本人创建),支持设置标题、执行人列表、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。子待办不支持设置单独的循环规则(遵循父待办的循环规则)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建子待办" }, "effect": { "candidates": [ @@ -413321,22 +413827,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "create_personal_sub_todo" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建子待办" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "create_personal_sub_todo" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "create_personal_sub_todo" + "source": "cobra_help", + "value": "创建子待办" }, "use_when": { "candidates": [ @@ -413958,7 +414464,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "create_personal_sub_todo", + "title": "创建子待办", "use_when": [ "需要创建子待办时" ] @@ -413989,11 +414495,8 @@ "cli_name": "create", "cli_path": "todo task create", "confirmation": "not_required", - "description": "在当前企业组织内创建一条个人待办事项,支持设置标题、执行人列表(UserId)、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。", + "description": "创建待办", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -414092,44 +414595,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在当前企业组织内创建一条个人待办事项,支持设置标题、执行人列表(UserId)、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建待办" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在当前企业组织内创建一条个人待办事项,支持设置标题、执行人列表(UserId)、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在当前企业组织内创建一条个人待办事项,支持设置标题、执行人列表(UserId)、截止时间、优先级(如高/中/低)。待办将归属于当前用户,并对有权限的协作者可见。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建待办" }, "effect": { "candidates": [ @@ -414276,22 +414757,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建个人待办" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建待办" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建个人待办" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建个人待办" + "source": "cobra_help", + "value": "创建待办" }, "use_when": { "candidates": [ @@ -414373,16 +414854,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.dueTime" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "due" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "due" + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.dueTime" }, "required": { "candidates": [ @@ -414428,7 +414915,7 @@ } }, "format": "date-time", - "property": "due", + "property": "PersonalTodoCreateVO.dueTime", "required": false, "type": "string" }, @@ -414458,16 +414945,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.executorIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "executors" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "executors" + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.executorIds" }, "required": { "candidates": [ @@ -414518,7 +415011,7 @@ "value": "string" } }, - "property": "executors", + "property": "PersonalTodoCreateVO.executorIds", "required": true, "type": "string" }, @@ -414548,16 +415041,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.priority" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "priority" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "priority" + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.priority" }, "required": { "candidates": [ @@ -414602,7 +415101,7 @@ "value": "string" } }, - "property": "priority", + "property": "PersonalTodoCreateVO.priority", "required": false, "type": "string" }, @@ -414632,16 +415131,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.recurrence" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "recurrence" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "recurrence" + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.recurrence" }, "required": { "candidates": [ @@ -414686,7 +415191,7 @@ "value": "string" } }, - "property": "recurrence", + "property": "PersonalTodoCreateVO.recurrence", "required": false, "type": "string" }, @@ -414716,16 +415221,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.subject" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "title" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "title" + "source": "versioned_parameter_binding", + "value": "PersonalTodoCreateVO.subject" }, "required": { "candidates": [ @@ -414776,7 +415287,7 @@ "value": "string" } }, - "property": "title", + "property": "PersonalTodoCreateVO.subject", "required": true, "type": "string" } @@ -414787,7 +415298,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建个人待办", + "title": "创建待办", "use_when": [ "需要创建待办时" ] @@ -414819,7 +415330,7 @@ "cli_name": "delete", "cli_path": "todo task delete", "confirmation": "user_required", - "description": "删除待办(所有执行者都删除)", + "description": "删除待办", "display": "待办任务管理", "effect": "destructive", "effect_source": "skill-explicit", @@ -414925,22 +415436,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除待办(所有执行者都删除)" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除待办" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除待办(所有执行者都删除)" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除待办(所有执行者都删除)" + "source": "cobra_help", + "value": "删除待办" }, "effect": { "candidates": [ @@ -415094,22 +415605,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "delete_todo" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除待办" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "delete_todo" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "delete_todo" + "source": "cobra_help", + "value": "删除待办" }, "use_when": { "candidates": [ @@ -415255,7 +415766,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "delete_todo", + "title": "删除待办", "use_when": [ "用户明确要求删除待办时" ] @@ -415284,7 +415795,7 @@ "cli_name": "delete", "cli_path": "todo comment delete", "confirmation": "user_required", - "description": "删除待办的评论", + "description": "删除待办评论", "display": "待办任务管理", "effect": "destructive", "effect_source": "agent-hint", @@ -415391,22 +415902,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除待办的评论" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除待办评论" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除待办的评论" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除待办的评论" + "source": "cobra_help", + "value": "删除待办评论" }, "effect": { "candidates": [ @@ -415561,22 +416072,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "delete_todo_comment" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除待办评论" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "delete_todo_comment" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "delete_todo_comment" + "source": "cobra_help", + "value": "删除待办评论" }, "use_when": { "candidates": [ @@ -415825,7 +416336,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "delete_todo_comment", + "title": "删除待办评论", "use_when": [ "用户明确要求删除待办评论时" ] @@ -415856,7 +416367,7 @@ "cli_name": "get", "cli_path": "todo task get", "confirmation": "not_required", - "description": "查询待办详情,用户必须是待办的创建者或者执行者才有权限查看。", + "description": "待办详情", "display": "待办任务管理", "effect": "read", "effect_source": "command-verb", @@ -415955,22 +416466,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询待办详情,用户必须是待办的创建者或者执行者才有权限查看。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "待办详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询待办详情,用户必须是待办的创建者或者执行者才有权限查看。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询待办详情,用户必须是待办的创建者或者执行者才有权限查看。" + "source": "cobra_help", + "value": "待办详情" }, "effect": { "candidates": [ @@ -416115,22 +416626,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "带鉴权的查询待办详情" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "待办详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "带鉴权的查询待办详情" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "带鉴权的查询待办详情" + "source": "cobra_help", + "value": "待办详情" }, "use_when": { "candidates": [ @@ -416276,7 +416787,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "带鉴权的查询待办详情", + "title": "待办详情", "use_when": [ "已知 taskId,需要查看单个待办详情时" ] @@ -416304,11 +416815,8 @@ "cli_name": "list", "cli_path": "todo task list", "confirmation": "not_required", - "description": "获取当前用户在所属组织中的个人待办事项列表,返回每项待办的标题、截止日期、优先级(如高/中/低)、完成状态。", + "description": "查询待办列表", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -416406,44 +416914,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户在所属组织中的个人待办事项列表,返回每项待办的标题、截止日期、优先级(如高/中/低)、完成状态。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待办列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户在所属组织中的个人待办事项列表,返回每项待办的标题、截止日期、优先级(如高/中/低)、完成状态。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户在所属组织中的个人待办事项列表,返回每项待办的标题、截止日期、优先级(如高/中/低)、完成状态。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询待办列表" }, "effect": { "candidates": [ @@ -416582,22 +417068,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "get_user_todos_in_current_org" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待办列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "get_user_todos_in_current_org" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "get_user_todos_in_current_org" + "source": "cobra_help", + "value": "查询待办列表" }, "use_when": { "candidates": [ @@ -416645,6 +417131,12 @@ "source": "cobra_usage", "value": "页码(默认 1)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "当前页。从1开始" + }, { "precedence": "default", "selected": false, @@ -416660,16 +417152,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageNum" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "page" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "page" + "source": "versioned_parameter_binding", + "value": "pageNum" }, "required": { "candidates": [ @@ -416679,6 +417177,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -416720,7 +417224,8 @@ "value": "string" } }, - "property": "page", + "interface_description": "当前页。从1开始", + "property": "pageNum", "required": false, "type": "string" }, @@ -417001,6 +417506,12 @@ "source": "cobra_usage", "value": "优先级: 10 低/20 普通/30 较高/40 紧急" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "待办优先级: 10:低,20:普通,30:较高,40:紧急" + }, { "precedence": "default", "selected": false, @@ -417013,19 +417524,45 @@ "source": "cobra_usage", "value": "优先级: 10 低/20 普通/30 较高/40 紧急" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "priorityList" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "priority" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "priority" + "source": "versioned_parameter_binding", + "value": "priorityList" }, "required": { "candidates": [ @@ -417070,12 +417607,15 @@ "value": "string" } }, - "property": "priority", + "interface_description": "待办优先级: 10:低,20:普通,30:较高,40:紧急", + "interface_type": "array", + "property": "priorityList", "required": false, "type": "string" }, "role-types": { "description": "角色类型: creator/executor/participant", + "example": "creator,executor", "field_provenance": { "description": { "candidates": [ @@ -417103,6 +417643,26 @@ "source": "cobra_usage", "value": "角色类型: creator/executor/participant" }, + "example": { + "candidates": [ + { + "precedence": "typed_metadata", + "selected": true, + "source": "typed_parameter_metadata", + "value": "creator,executor" + }, + { + "precedence": "default", + "selected": false, + "source": "default", + "value": "" + } + ], + "precedence": "typed_metadata", + "resolution": "highest_precedence", + "source": "typed_parameter_metadata", + "value": "creator,executor" + }, "interface_type": { "candidates": [ { @@ -417204,6 +417764,12 @@ "source": "cobra_usage", "value": "获取数量,超过 20 自动分页 (默认 20)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页大小。" + }, { "precedence": "default", "selected": false, @@ -417219,16 +417785,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "size" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "size" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -417238,6 +417810,12 @@ "source": "cobra_nonzero_default", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -417279,7 +417857,8 @@ "value": "string" } }, - "property": "size", + "interface_description": "分页大小。", + "property": "pageSize", "required": false, "type": "string" }, @@ -417294,6 +417873,12 @@ "source": "cobra_usage", "value": "true=已完成, false=未完成" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "待办完成状态。true:已完成;false:未完成。" + }, { "precedence": "default", "selected": false, @@ -417309,16 +417894,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "todoStatus" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "status" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "status" + "source": "versioned_parameter_binding", + "value": "todoStatus" }, "required": { "candidates": [ @@ -417363,7 +417954,8 @@ "value": "string" } }, - "property": "status", + "interface_description": "待办完成状态。true:已完成;false:未完成。", + "property": "todoStatus", "required": false, "type": "string" } @@ -417374,7 +417966,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "get_user_todos_in_current_org", + "title": "查询待办列表", "use_when": [ "需要按状态、优先级、角色或截止日期查询待办列表时" ] @@ -417402,11 +417994,8 @@ "cli_name": "list", "cli_path": "todo comment list", "confirmation": "not_required", - "description": "获取待办的评论", + "description": "查询待办评论列表", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -417505,44 +418094,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取待办的评论" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待办评论列表" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取待办的评论" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取待办的评论" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询待办评论列表" }, "effect": { "candidates": [ @@ -417683,22 +418250,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "list_todo_comment" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询待办评论列表" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "list_todo_comment" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "list_todo_comment" + "source": "cobra_help", + "value": "查询待办评论列表" }, "use_when": { "candidates": [ @@ -418058,7 +418625,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "list_todo_comment", + "title": "查询待办评论列表", "use_when": [ "需要查询待办评论列表时" ] @@ -418089,9 +418656,6 @@ "confirmation": "user_required", "description": "移除待办执行人", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -418197,45 +418761,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除待办执行人" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "移除待办执行人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除待办执行人" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -418389,22 +418931,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "remove_task_executors" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除待办执行人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "remove_task_executors" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "remove_task_executors" + "source": "cobra_help", + "value": "移除待办执行人" }, "use_when": { "candidates": [ @@ -418639,7 +419181,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "remove_task_executors", + "title": "移除待办执行人", "use_when": [ "用户明确要求移除待办执行人时" ] @@ -418670,9 +419212,6 @@ "confirmation": "user_required", "description": "移除待办参与人", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -418778,45 +419317,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除待办参与人" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "移除待办参与人" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除待办参与人" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -418970,22 +419487,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "remove_task_participants" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移除待办参与人" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "remove_task_participants" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "remove_task_participants" + "source": "cobra_help", + "value": "移除待办参与人" }, "use_when": { "candidates": [ @@ -419220,7 +419737,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "remove_task_participants", + "title": "移除待办参与人", "use_when": [ "用户明确要求移除待办参与人时" ] @@ -419250,9 +419767,6 @@ "confirmation": "not_required", "description": "重置待办提醒", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -419351,45 +419865,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "重置待办提醒" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "重置待办提醒" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "重置待办提醒" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -419529,22 +420021,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "reset_todo_reminder" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "重置待办提醒" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "reset_todo_reminder" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "reset_todo_reminder" + "source": "cobra_help", + "value": "重置待办提醒" }, "use_when": { "candidates": [ @@ -419773,7 +420265,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "reset_todo_reminder", + "title": "重置待办提醒", "use_when": [ "需要重置待办提醒规则时" ] @@ -419806,9 +420298,6 @@ "confirmation": "not_required", "description": "修改执行者的待办完成状态", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -419907,45 +420396,23 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改执行者的待办完成状态" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "修改执行者的待办完成状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改执行者的待办完成状态" }, - "dry_run": { - "candidates": [ - { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - } - ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } - }, "effect": { "candidates": [ { @@ -420091,21 +420558,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改执行者的待办完成状态" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "修改执行者的待办完成状态" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "修改执行者的待办完成状态" }, "use_when": { @@ -420153,6 +420620,12 @@ "source": "cobra_usage", "value": "完成状态: true=已完成, false=未完成 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "需要修改待办完成状态结果。true:已完成;false未完成。" + }, { "precedence": "default", "selected": false, @@ -420168,22 +420641,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "isDone" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "status" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "status" + "source": "versioned_parameter_binding", + "value": "isDone" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -420194,9 +420679,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -420228,7 +420713,8 @@ "value": "string" } }, - "property": "status", + "interface_description": "需要修改待办完成状态结果。true:已完成;false未完成。", + "property": "isDone", "required": true, "type": "string" }, @@ -420373,11 +420859,8 @@ "cli_name": "update", "cli_path": "todo task update", "confirmation": "not_required", - "description": "修改整个待办任务", + "description": "修改待办任务", "display": "待办任务管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -420476,44 +420959,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改整个待办任务" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改待办任务" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改整个待办任务" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改整个待办任务" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "修改待办任务" }, "effect": { "candidates": [ @@ -420660,22 +421121,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改整个待办任务" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "修改待办任务" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改整个待办任务" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改整个待办任务" + "source": "cobra_help", + "value": "修改待办任务" }, "use_when": { "candidates": [ @@ -420737,16 +421198,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.isDone" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "done" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "done" + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.isDone" }, "required": { "candidates": [ @@ -420791,7 +421258,7 @@ "value": "string" } }, - "property": "done", + "property": "TodoUpdateRequest.isDone", "required": false, "type": "string" }, @@ -420841,16 +421308,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.dueTime" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "due" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "due" + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.dueTime" }, "required": { "candidates": [ @@ -420896,7 +421369,7 @@ } }, "format": "date-time", - "property": "due", + "property": "TodoUpdateRequest.dueTime", "required": false, "type": "string" }, @@ -420926,16 +421399,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.priority" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "priority" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "priority" + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.priority" }, "required": { "candidates": [ @@ -420980,7 +421459,7 @@ "value": "string" } }, - "property": "priority", + "property": "TodoUpdateRequest.priority", "required": false, "type": "string" }, @@ -421010,16 +421489,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.taskId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "taskId" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "taskId" + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.taskId" }, "required": { "candidates": [ @@ -421070,7 +421555,7 @@ "value": "string" } }, - "property": "taskId", + "property": "TodoUpdateRequest.taskId", "required": true, "type": "string" }, @@ -421100,16 +421585,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.subject" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "title" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "title" + "source": "versioned_parameter_binding", + "value": "TodoUpdateRequest.subject" }, "required": { "candidates": [ @@ -421154,7 +421645,7 @@ "value": "string" } }, - "property": "title", + "property": "TodoUpdateRequest.subject", "required": false, "type": "string" } @@ -421165,7 +421656,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "修改整个待办任务", + "title": "修改待办任务", "use_when": [ "需要修改待办任务时" ] @@ -421194,11 +421685,8 @@ "cli_name": "add", "cli_path": "wiki member add", "confirmation": "not_required", - "description": "为知识库添加指定角色的成员。\r\n\r\n支持添加用户(USER)成员类型。\r\n添加成功后,被授权的成员即可按指定角色访问该知识库下的所有内容。\r\n\r\n适用场景:\r\n- 新员工入职,需要授予知识库访问权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\r\n- 单次请求最多传 30 个成员,超出需分批调用。", + "description": "为指定知识库添加一个或多个成员,并授予指定角色。\n\n通过 --users 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n支持通过 --workspace 传入知识库 ID 或知识库 URL,系统自动识别。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -421297,44 +421785,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "为知识库添加指定角色的成员。\r\n\r\n支持添加用户(USER)成员类型。\r\n添加成功后,被授权的成员即可按指定角色访问该知识库下的所有内容。\r\n\r\n适用场景:\r\n- 新员工入职,需要授予知识库访问权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\r\n- 单次请求最多传 30 个成员,超出需分批调用。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "为指定知识库添加一个或多个成员,并授予指定角色。\n\n通过 --users 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n支持通过 --workspace 传入知识库 ID 或知识库 URL,系统自动识别。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "为知识库添加指定角色的成员。\r\n\r\n支持添加用户(USER)成员类型。\r\n添加成功后,被授权的成员即可按指定角色访问该知识库下的所有内容。\r\n\r\n适用场景:\r\n- 新员工入职,需要授予知识库访问权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\r\n- 单次请求最多传 30 个成员,超出需分批调用。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "为知识库添加指定角色的成员。\r\n\r\n支持添加用户(USER)成员类型。\r\n添加成功后,被授权的成员即可按指定角色访问该知识库下的所有内容。\r\n\r\n适用场景:\r\n- 新员工入职,需要授予知识库访问权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\r\n- 单次请求最多传 30 个成员,超出需分批调用。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "为指定知识库添加一个或多个成员,并授予指定角色。\n\n通过 --users 传入逗号分隔的 userId 列表,多个用户将被授予同一角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员,可读写、管理成员\n EDITOR 编辑者,可查看、编辑、上传内容\n DOWNLOADER 查看下载者,可查看并下载内容\n READER 仅可查看者,仅可查看,不可下载\n\n注意:\n- OWNER 角色不可通过此接口添加,知识库创建者默认为所有者。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。\n\n支持通过 --workspace 传入知识库 ID 或知识库 URL,系统自动识别。\n用户 uid 可通过「钉钉通讯录」相关命令检索,如:\n dws contact user search --keyword \"姓名\"" }, "effect": { "candidates": [ @@ -421475,21 +421941,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加知识库成员" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "添加知识库成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "添加知识库成员" }, "use_when": { @@ -421537,6 +422003,12 @@ "source": "cobra_usage", "value": "权限角色: MANAGER / EDITOR / DOWNLOADER / READER (必填,大小写不敏感)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -421552,22 +422024,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -421578,9 +422062,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -421612,7 +422096,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "授予成员的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -421627,6 +422112,12 @@ "source": "cobra_usage", "value": "被添加的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -421639,25 +422130,57 @@ "source": "cobra_usage", "value": "被添加的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -421668,9 +422191,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -421702,7 +422225,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "被授权的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -421717,6 +422242,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -421732,22 +422263,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -421758,9 +422301,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -421792,7 +422335,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -421834,11 +422378,8 @@ "cli_name": "create", "cli_path": "wiki node create", "confirmation": "not_required", - "description": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。", + "description": "在指定知识库中创建文档、文件夹或其他类型的节点。\n\n通过 --type 指定节点类型(服务端支持以下值,asheet 不被支持):\n adoc 在线文档 (默认)\n axls 在线电子表格\n able 多维表\n appt 在线演示\n adraw 白板/画板\n amind 脑图\n folder 文件夹\n\n通过 --folder 指定父节点,不传则创建在知识库根目录。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -421937,44 +422478,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定知识库中创建文档、文件夹或其他类型的节点。\n\n通过 --type 指定节点类型(服务端支持以下值,asheet 不被支持):\n adoc 在线文档 (默认)\n axls 在线电子表格\n able 多维表\n appt 在线演示\n adraw 白板/画板\n amind 脑图\n folder 文件夹\n\n通过 --folder 指定父节点,不传则创建在知识库根目录。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "在指定位置创建一个新的文件(文档、表格、演示、白板、脑图、多维表或文件夹)。\r\n\r\n支持三种创建位置(按优先级):\r\n1. 指定 folderId:在该文件夹下创建\r\n2. 仅指定 workspaceId(不传 folderId):在该知识库的根目录下创建\r\n3. 都不传:在用户\"我的文档\"根目录下创建\r\n4. type 要创建的文件类型,必填。支持以下值:adoc(钉钉在线文档)、axls(钉钉表格)、appt(钉钉演示)、adraw(钉钉白板)、amind(钉钉脑图)、able(钉钉多维表)、folder(文件夹)\r\n操作受权限控制,仅当调用者对目标位置有写入权限时可成功创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定知识库中创建文档、文件夹或其他类型的节点。\n\n通过 --type 指定节点类型(服务端支持以下值,asheet 不被支持):\n adoc 在线文档 (默认)\n axls 在线电子表格\n able 多维表\n appt 在线演示\n adraw 白板/画板\n amind 脑图\n folder 文件夹\n\n通过 --folder 指定父节点,不传则创建在知识库根目录。" }, "effect": { "candidates": [ @@ -422123,22 +422642,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在知识库中创建节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建节点" + "source": "cobra_help", + "value": "在知识库中创建节点" }, "use_when": { "candidates": [ @@ -422185,6 +422704,12 @@ "source": "cobra_usage", "value": "父节点 nodeId (选填,不传则在根目录创建)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。" + }, { "precedence": "default", "selected": false, @@ -422200,16 +422725,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -422254,7 +422785,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则创建在该知识库根目录下,否则创建在用户'我的文档'根目录下。", + "property": "folderId", "required": false, "type": "string" }, @@ -422476,6 +423008,12 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持知识库 ID 或知识库 URL。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -422491,16 +423029,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -422551,7 +423095,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持知识库 ID 或知识库 URL。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": true, "type": "string" } @@ -422562,7 +423107,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "创建节点", + "title": "在知识库中创建节点", "use_when": [ "需要在指定知识库中创建文档、文件夹或其他类型的节点时" ] @@ -422590,11 +423135,8 @@ "cli_name": "create", "cli_path": "wiki space create", "confirmation": "not_required", - "description": "创建一个新的钉钉文档知识库(WikiSpace)。\r\n知识库是组织内文档的核心容器,可在其中创建文档、文件夹等内容。\r\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档(create_document)或遍历文件(list_nodes)。\r\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。", + "description": "创建一个新的钉钉文档知识库(WikiSpace)。\n\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档或遍历文件。\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -422693,44 +423235,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "创建一个新的钉钉文档知识库(WikiSpace)。\r\n知识库是组织内文档的核心容器,可在其中创建文档、文件夹等内容。\r\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档(create_document)或遍历文件(list_nodes)。\r\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "创建一个新的钉钉文档知识库(WikiSpace)。\n\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档或遍历文件。\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "创建一个新的钉钉文档知识库(WikiSpace)。\r\n知识库是组织内文档的核心容器,可在其中创建文档、文件夹等内容。\r\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档(create_document)或遍历文件(list_nodes)。\r\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "创建一个新的钉钉文档知识库(WikiSpace)。\r\n知识库是组织内文档的核心容器,可在其中创建文档、文件夹等内容。\r\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档(create_document)或遍历文件(list_nodes)。\r\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "创建一个新的钉钉文档知识库(WikiSpace)。\n\n创建成功后返回新知识库的 workspaceId,可用于后续在该知识库下创建文档或遍历文件。\n操作受权限控制,仅当调用者具备在当前组织内创建知识库的权限时可成功创建。" }, "effect": { "candidates": [ @@ -422871,21 +423391,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建知识库" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "创建知识库" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "创建知识库" }, "use_when": { @@ -422933,6 +423453,12 @@ "source": "cobra_usage", "value": "知识库描述 (选填,不超过 500 字符)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "知识库描述信息,不超过50个字符。" + }, { "precedence": "default", "selected": false, @@ -422948,16 +423474,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "description" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "desc" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "desc" + "source": "versioned_parameter_binding", + "value": "description" }, "required": { "candidates": [ @@ -423002,7 +423534,8 @@ "value": "string" } }, - "property": "desc", + "interface_description": "知识库描述信息,不超过50个字符。", + "property": "description", "required": false, "type": "string" }, @@ -423032,16 +423565,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "runtime extension sends icon, which is absent from the pinned create_wikiSpace metadata", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "icon" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "icon" + "review_reason": "runtime extension sends icon, which is absent from the pinned create_wikiSpace metadata", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -423086,7 +423627,6 @@ "value": "string" } }, - "property": "icon", "required": false, "type": "string" }, @@ -423236,7 +423776,7 @@ "cli_name": "delete", "cli_path": "wiki node delete", "confirmation": "user_required", - "description": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站", + "description": "将知识库中的节点移入回收站。\n\n注意: 这是一个危险操作。执行前需要确认,或传入 --yes 跳过确认。\n删除后节点会进入回收站,有保留期限可恢复。\n\n权限要求: 对节点有\"管理\"权限。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", "effect": "destructive", "effect_source": "agent-hint", @@ -423343,22 +423883,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将知识库中的节点移入回收站。\n\n注意: 这是一个危险操作。执行前需要确认,或传入 --yes 跳过确认。\n删除后节点会进入回收站,有保留期限可恢复。\n\n权限要求: 对节点有\"管理\"权限。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移入回收站,30 天内可从回收站恢复,超过 30 天将被永久删除。\r\n\r\n支持范围:\r\n- 知识库(workspace)下的文档节点、文件夹节点\r\n- 钉盘「我的文件」或「团队空间(space)」下的文件、文件夹节点(但钉盘操作仍建议走钉盘MCP服务)\r\n\r\n不支持的操作:\r\n- 不支持直接删除知识库本身(workspace)\r\n- 不支持直接删除团队空间(space)\r\n\r\n权限要求:\r\n- 对目标节点有管理权限(owner 或被授予管理权限的成员)\r\n\r\n注意事项:\r\n- 删除操作不可立即撤销,请在调用前向用户确认\r\n- 删除文件夹时,文件夹内的所有子节点也会一并移入回收站" + "source": "cobra_help", + "value": "将知识库中的节点移入回收站。\n\n注意: 这是一个危险操作。执行前需要确认,或传入 --yes 跳过确认。\n删除后节点会进入回收站,有保留期限可恢复。\n\n权限要求: 对节点有\"管理\"权限。" }, "effect": { "candidates": [ @@ -423521,22 +424061,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "删除节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "删除知识库节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "删除节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "删除节点" + "source": "cobra_help", + "value": "删除知识库节点" }, "use_when": { "candidates": [ @@ -423583,6 +424123,12 @@ "source": "cobra_usage", "value": "节点 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。" + }, { "precedence": "default", "selected": false, @@ -423598,22 +424144,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -423624,9 +424182,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -423658,7 +424216,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要删除的节点标识,支持以下格式:1) 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid};2) dentryUuid(32 位字母数字字符串)。", + "property": "nodeId", "required": true, "type": "string" }, @@ -423688,16 +424247,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local validation/authorization context; not sent to delete_document", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "review_reason": "local validation/authorization context; not sent to delete_document", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -423748,7 +424315,6 @@ "value": "string" } }, - "property": "workspace", "required": true, "type": "string" } @@ -423759,7 +424325,7 @@ "reviewed": true, "risk": "high", "source": "reviewed_command_registry", - "title": "删除节点", + "title": "删除知识库节点", "use_when": [ "需要将知识库中的节点移入回收站时" ] @@ -423788,7 +424354,7 @@ "cli_name": "delete", "cli_path": "wiki space delete", "confirmation": "user_required", - "description": "将指定知识库移入回收站。\r\n\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n删除后知识库会进入回收站,可在回收站中恢复。\r\n\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\r\nworkspaceId 为字母数字字符串。\r\n\r\n注意事项:\r\n- **权限要求**:操作者必须具备知识库的「所有者(OWNER)」角色。\r\n- 删除操作不可逆(从回收站恢复除外),请确认后再执行。\r\n- 不支持跨组织删除。", + "description": "将指定知识库移入回收站。\n\n删除后知识库会进入回收站,可在回收站中恢复(有保留期限)。\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\n\n注意:\n- 操作者必须具备知识库的 OWNER 角色。\n- 这是一个危险操作,执行前请确认。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", "effect": "destructive", "effect_source": "agent-hint", @@ -423896,22 +424462,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定知识库移入回收站。\r\n\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n删除后知识库会进入回收站,可在回收站中恢复。\r\n\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\r\nworkspaceId 为字母数字字符串。\r\n\r\n注意事项:\r\n- **权限要求**:操作者必须具备知识库的「所有者(OWNER)」角色。\r\n- 删除操作不可逆(从回收站恢复除外),请确认后再执行。\r\n- 不支持跨组织删除。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将指定知识库移入回收站。\n\n删除后知识库会进入回收站,可在回收站中恢复(有保留期限)。\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\n\n注意:\n- 操作者必须具备知识库的 OWNER 角色。\n- 这是一个危险操作,执行前请确认。" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定知识库移入回收站。\r\n\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n删除后知识库会进入回收站,可在回收站中恢复。\r\n\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\r\nworkspaceId 为字母数字字符串。\r\n\r\n注意事项:\r\n- **权限要求**:操作者必须具备知识库的「所有者(OWNER)」角色。\r\n- 删除操作不可逆(从回收站恢复除外),请确认后再执行。\r\n- 不支持跨组织删除。" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定知识库移入回收站。\r\n\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n删除后知识库会进入回收站,可在回收站中恢复。\r\n\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\r\nworkspaceId 为字母数字字符串。\r\n\r\n注意事项:\r\n- **权限要求**:操作者必须具备知识库的「所有者(OWNER)」角色。\r\n- 删除操作不可逆(从回收站恢复除外),请确认后再执行。\r\n- 不支持跨组织删除。" + "source": "cobra_help", + "value": "将指定知识库移入回收站。\n\n删除后知识库会进入回收站,可在回收站中恢复(有保留期限)。\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview\n\n注意:\n- 操作者必须具备知识库的 OWNER 角色。\n- 这是一个危险操作,执行前请确认。" }, "effect": { "candidates": [ @@ -424068,21 +424634,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除知识库" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "删除知识库" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "删除知识库" }, "use_when": { @@ -424130,6 +424696,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -424145,22 +424717,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -424171,9 +424755,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -424205,7 +424789,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -424244,11 +424829,8 @@ "cli_name": "get", "cli_path": "wiki space get", "confirmation": "not_required", - "description": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overviewworkspaceId 为字母数字字符串。\r\n仅限用户对该知识库具备\"可阅读\"权限时可获取。不支持跨组织查询。", + "description": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\n\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -424347,44 +424929,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overviewworkspaceId 为字母数字字符串。\r\n仅限用户对该知识库具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\n\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overviewworkspaceId 为字母数字字符串。\r\n仅限用户对该知识库具备\"可阅读\"权限时可获取。不支持跨组织查询。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\r\n通过 workspaceId 定位知识库,支持传入知识库 ID 或知识库 URL,系统自动识别。\r\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overviewworkspaceId 为字母数字字符串。\r\n仅限用户对该知识库具备\"可阅读\"权限时可获取。不支持跨组织查询。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取指定知识库的详细信息,包括名称、描述、创建者、创建时间、成员数量等。\n\n支持传入知识库 ID 或知识库 URL,系统自动识别。\n知识库 URL 格式:https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview" }, "effect": { "candidates": [ @@ -424525,22 +425085,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取知识库" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查看知识库详情" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取知识库" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取知识库" + "source": "cobra_help", + "value": "查看知识库详情" }, "use_when": { "candidates": [ @@ -424587,6 +425147,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -424602,22 +425168,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -424628,9 +425206,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -424662,7 +425240,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -424673,7 +425252,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取知识库", + "title": "查看知识库详情", "use_when": [ "已知 workspace,需要查看知识库详情时" ] @@ -424701,11 +425280,8 @@ "cli_name": "list", "cli_path": "wiki member list", "confirmation": "not_required", - "description": "查询知识库当前的成员权限列表,支持按角色过滤。\r\n\r\n适用场景:\r\n- 获取知识库成员角色列表。\r\n\r\n每条记录包含成员的类型、名称及其角色信息。\r\n\r\n注意:\r\n- 底层接口一次性返回全量成员,不支持服务端游标分页。\r\n- 出参中包含 totalCount(全量成员总数)和 truncated(是否被截断)。当 truncated=true 时,说明知识库实际成员数超过 maxResults,建议通过 filterRoleIds 收窄查询范围;若仍超出 maxResults 上限,请引导用户去前端管理界面查看完整列表。\r\n- ORG 类型授权不会出现在查询结果中。", + "description": "查询指定知识库的成员列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围;\nORG 类型授权不会出现在查询结果中。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -424804,44 +425380,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "查询知识库当前的成员权限列表,支持按角色过滤。\r\n\r\n适用场景:\r\n- 获取知识库成员角色列表。\r\n\r\n每条记录包含成员的类型、名称及其角色信息。\r\n\r\n注意:\r\n- 底层接口一次性返回全量成员,不支持服务端游标分页。\r\n- 出参中包含 totalCount(全量成员总数)和 truncated(是否被截断)。当 truncated=true 时,说明知识库实际成员数超过 maxResults,建议通过 filterRoleIds 收窄查询范围;若仍超出 maxResults 上限,请引导用户去前端管理界面查看完整列表。\r\n- ORG 类型授权不会出现在查询结果中。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "查询指定知识库的成员列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围;\nORG 类型授权不会出现在查询结果中。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "查询知识库当前的成员权限列表,支持按角色过滤。\r\n\r\n适用场景:\r\n- 获取知识库成员角色列表。\r\n\r\n每条记录包含成员的类型、名称及其角色信息。\r\n\r\n注意:\r\n- 底层接口一次性返回全量成员,不支持服务端游标分页。\r\n- 出参中包含 totalCount(全量成员总数)和 truncated(是否被截断)。当 truncated=true 时,说明知识库实际成员数超过 maxResults,建议通过 filterRoleIds 收窄查询范围;若仍超出 maxResults 上限,请引导用户去前端管理界面查看完整列表。\r\n- ORG 类型授权不会出现在查询结果中。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "查询知识库当前的成员权限列表,支持按角色过滤。\r\n\r\n适用场景:\r\n- 获取知识库成员角色列表。\r\n\r\n每条记录包含成员的类型、名称及其角色信息。\r\n\r\n注意:\r\n- 底层接口一次性返回全量成员,不支持服务端游标分页。\r\n- 出参中包含 totalCount(全量成员总数)和 truncated(是否被截断)。当 truncated=true 时,说明知识库实际成员数超过 maxResults,建议通过 filterRoleIds 收窄查询范围;若仍超出 maxResults 上限,请引导用户去前端管理界面查看完整列表。\r\n- ORG 类型授权不会出现在查询结果中。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "查询指定知识库的成员列表,返回每位成员的 userId、姓名、角色等信息。\n\n注意:底层不支持游标分页,--limit 仅控制单次返回的最大条数(最大 200)。\n若结果被截断(出参 truncated=true),可通过 --filter-role 收窄查询范围;\nORG 类型授权不会出现在查询结果中。" }, "effect": { "candidates": [ @@ -424982,21 +425536,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询知识库成员列表" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "查询知识库成员列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "查询知识库成员列表" }, "use_when": { @@ -425044,6 +425598,12 @@ "source": "cobra_usage", "value": "按角色过滤(逗号分隔):OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。" + }, { "precedence": "default", "selected": false, @@ -425056,19 +425616,45 @@ "source": "cobra_usage", "value": "按角色过滤(逗号分隔):OWNER / MANAGER / EDITOR / DOWNLOADER / READER" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "filterRoleIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "filterRole" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "filterRole" + "source": "versioned_parameter_binding", + "value": "filterRoleIds" }, "required": { "candidates": [ @@ -425113,7 +425699,9 @@ "value": "string" } }, - "property": "filterRole", + "interface_description": "按角色过滤成员列表,选填。取值:OWNER、MANAGER、EDITOR、DOWNLOADER、READER。不传时返回所有角色的成员。", + "interface_type": "array", + "property": "filterRoleIds", "required": false, "type": "string" }, @@ -425129,6 +425717,12 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。" + }, { "precedence": "default", "selected": false, @@ -425141,19 +425735,45 @@ "source": "cobra_usage", "value": "返回成员数上限,默认 30,最大 200" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "maxResults" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "maxResults" }, "required": { "candidates": [ @@ -425204,7 +425824,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "期望返回的最大成员条数,默认 30,最大 200。底层一次性返回全量成员后在内存中按本字段截断;本接口不支持游标翻页,不存在 nextToken。若发生截断(出参 truncated=true),可通过出参 totalCount 感知全量成员数,并通过 filterRoleIds 收窄查询范围。", + "interface_type": "number", + "property": "maxResults", "required": false, "type": "integer" }, @@ -425219,6 +425841,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -425234,22 +425862,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -425260,9 +425900,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -425294,7 +425934,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -425335,11 +425976,8 @@ "cli_name": "list", "cli_path": "wiki node list", "confirmation": "not_required", - "description": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。", + "description": "列出指定知识库下的直接子节点(文档、文件夹、表格等)。\n\n通过 --folder 指定父节点可列出子目录内容;不传 --folder 则列出知识库根目录。\n支持分页,通过 --cursor 传入上次返回的 pageToken 获取下一页。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -425438,44 +426076,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出指定知识库下的直接子节点(文档、文件夹、表格等)。\n\n通过 --folder 指定父节点可列出子目录内容;不传 --folder 则列出知识库根目录。\n支持分页,通过 --cursor 传入上次返回的 pageToken 获取下一页。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定文件夹或知识库下的直接子节点列表(文件夹/文档/文件等),支持分页。\r\n\r\n返回结果基于当前 MCP 会话用户的可访问权限进行过滤。\r\n返回的节点列表包含多种类型:在线文档、文件夹、PDF、docx、表格、脑图、白板等。\r\n\r\n定位方式(按优先级):\r\n1. 传 folderId:列出该文件夹下的直接子节点\r\n2. 仅传 workspaceId(不传 folderId):列出该知识库根目录下的直接子节点\r\n3. 都不传:列出用户\"我的文档\"根目录下的直接子节点\r\n\r\n返回的 nodeId 可直接用于其他工具(如 get_document_content、update_document、create_document 等)。\r\n若 nodeType=folder 且 hasChildren=true,可将该 nodeId 作为 folderId 再次调用本工具进行递归遍历。\r\n若 contentType=alidoc,可调用 get_document_content(nodeId=nodeId) 获取文档内容。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "列出指定知识库下的直接子节点(文档、文件夹、表格等)。\n\n通过 --folder 指定父节点可列出子目录内容;不传 --folder 则列出知识库根目录。\n支持分页,通过 --cursor 传入上次返回的 pageToken 获取下一页。" }, "effect": { "candidates": [ @@ -425624,22 +426240,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出知识库节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "列出指定文件夹或知识库下的直接子节点列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "列出指定文件夹或知识库下的直接子节点列表" + "source": "cobra_help", + "value": "列出知识库节点" }, "use_when": { "candidates": [ @@ -425686,6 +426302,12 @@ "source": "cobra_usage", "value": "分页游标" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次请求的返回结果中获取 nextPageToken。首次请求不传。" + }, { "precedence": "default", "selected": false, @@ -425701,16 +426323,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "pageToken" }, "required": { "candidates": [ @@ -425755,7 +426383,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次请求的返回结果中获取 nextPageToken。首次请求不传。", + "property": "pageToken", "required": false, "type": "string" }, @@ -425770,6 +426399,12 @@ "source": "cobra_usage", "value": "父节点 nodeId (选填,不传则列出根目录)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要遍历的文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则列出该知识库根目录,否则列出用户'我的文档'根目录。" + }, { "precedence": "default", "selected": false, @@ -425785,16 +426420,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "folderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "folderId" }, "required": { "candidates": [ @@ -425839,7 +426480,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "要遍历的文件夹的节点 ID(dentryUuid),支持传入文件夹链接 URL 或 ID。不传时:如果提供了 workspaceId 则列出该知识库根目录,否则列出用户'我的文档'根目录。", + "property": "folderId", "required": false, "type": "string" }, @@ -425854,6 +426496,12 @@ "source": "cobra_usage", "value": "每页数量 (默认 50,最大 50)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的节点数量,默认 50,最大 50。" + }, { "precedence": "default", "selected": false, @@ -425866,19 +426514,45 @@ "source": "cobra_usage", "value": "每页数量 (默认 50,最大 50)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -425929,7 +426603,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的节点数量,默认 50,最大 50。", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -425944,6 +426620,12 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "知识库 ID。当需要遍历某个知识库时使用。如果同时传了 folderId,则以 folderId 为准。" + }, { "precedence": "default", "selected": false, @@ -425959,16 +426641,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -426019,7 +426707,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "知识库 ID。当需要遍历某个知识库时使用。如果同时传了 folderId,则以 folderId 为准。", + "property": "workspaceId", "required": true, "type": "string" } @@ -426030,7 +426719,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "列出指定文件夹或知识库下的直接子节点列表", + "title": "列出知识库节点", "use_when": [ "需要浏览指定知识库或文件夹的直接子节点时" ] @@ -426060,11 +426749,8 @@ "cli_name": "list", "cli_path": "wiki space list", "confirmation": "not_required", - "description": "获取当前用户有权访问的知识库列表,支持按类型区分。\r\n\r\n通过 wikiSpaceType 参数控制返回范围:\r\n- myWikiSpace:返回当前用户的「我的文档」个人空间(固定返回 1 条,不支持分页)\r\n- orgWikiSpace(默认):返回当前用户在组织内有权访问的知识库列表,支持分页\r\n\r\n返回结果包含知识库 ID、名称、描述、访问链接等信息。\r\n返回的 workspaceId 可直接用于其他工具(如 get_wikiSpace、create_document、list_nodes 等)。", + "description": "获取当前用户有权访问的空间列表。统一管理两种空间类型。\n\n通过 --type 参数控制返回范围:\n orgWikiSpace — 组织知识库列表(默认,支持分页)\n myWikiSpace — 当前用户的「我的文档」个人空间(固定 1 条)\n orgSpace — 钉盘企业空间(团队文件)列表\n mySpace — 钉盘「我的文件」个人空间", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -426163,44 +426849,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取当前用户有权访问的知识库列表,支持按类型区分。\r\n\r\n通过 wikiSpaceType 参数控制返回范围:\r\n- myWikiSpace:返回当前用户的「我的文档」个人空间(固定返回 1 条,不支持分页)\r\n- orgWikiSpace(默认):返回当前用户在组织内有权访问的知识库列表,支持分页\r\n\r\n返回结果包含知识库 ID、名称、描述、访问链接等信息。\r\n返回的 workspaceId 可直接用于其他工具(如 get_wikiSpace、create_document、list_nodes 等)。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "获取当前用户有权访问的空间列表。统一管理两种空间类型。\n\n通过 --type 参数控制返回范围:\n orgWikiSpace — 组织知识库列表(默认,支持分页)\n myWikiSpace — 当前用户的「我的文档」个人空间(固定 1 条)\n orgSpace — 钉盘企业空间(团队文件)列表\n mySpace — 钉盘「我的文件」个人空间" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取当前用户有权访问的知识库列表,支持按类型区分。\r\n\r\n通过 wikiSpaceType 参数控制返回范围:\r\n- myWikiSpace:返回当前用户的「我的文档」个人空间(固定返回 1 条,不支持分页)\r\n- orgWikiSpace(默认):返回当前用户在组织内有权访问的知识库列表,支持分页\r\n\r\n返回结果包含知识库 ID、名称、描述、访问链接等信息。\r\n返回的 workspaceId 可直接用于其他工具(如 get_wikiSpace、create_document、list_nodes 等)。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取当前用户有权访问的知识库列表,支持按类型区分。\r\n\r\n通过 wikiSpaceType 参数控制返回范围:\r\n- myWikiSpace:返回当前用户的「我的文档」个人空间(固定返回 1 条,不支持分页)\r\n- orgWikiSpace(默认):返回当前用户在组织内有权访问的知识库列表,支持分页\r\n\r\n返回结果包含知识库 ID、名称、描述、访问链接等信息。\r\n返回的 workspaceId 可直接用于其他工具(如 get_wikiSpace、create_document、list_nodes 等)。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "获取当前用户有权访问的空间列表。统一管理两种空间类型。\n\n通过 --type 参数控制返回范围:\n orgWikiSpace — 组织知识库列表(默认,支持分页)\n myWikiSpace — 当前用户的「我的文档」个人空间(固定 1 条)\n orgSpace — 钉盘企业空间(团队文件)列表\n mySpace — 钉盘「我的文件」个人空间" }, "effect": { "candidates": [ @@ -426259,7 +426923,7 @@ "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "selected": true, "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" }, { "precedence": "mcp_fallback", @@ -426272,27 +426936,47 @@ "resolution": "highest_precedence", "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", "source": "internal/cli/schema_hints/selection-review.json", - "value": "mcp" + "value": "composite" + }, + "interface_reason": { + "candidates": [ + { + "precedence": "reviewed_explicit", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "selected": true, + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface." + } + ], + "precedence": "reviewed_explicit", + "resolution": "highest_precedence", + "review_reason": "agent-selection-contract-v1 is a reviewed Agent hint source", + "source": "internal/cli/schema_hints/selection-review.json", + "value": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface." }, "interface_ref": { "candidates": [ { - "precedence": "mcp_fallback", + "precedence": "reviewed_explicit", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", "selected": true, - "source": "internal/cli/schema_mcp_metadata.json#tools.wiki.list_wikiSpaces.interface_ref", - "value": { - "product_id": "wiki", - "rpc_name": "list_wikiSpaces" - } + "source": "internal/cli/schema_hints/selection-review.json", + "value": null } ], - "precedence": "mcp_fallback", - "resolution": "highest_precedence", - "source": "internal/cli/schema_mcp_metadata.json#tools.wiki.list_wikiSpaces.interface_ref", - "value": { - "product_id": "wiki", - "rpc_name": "list_wikiSpaces" - } + "overridden_candidates": [ + { + "precedence": "mcp_fallback", + "selected": false, + "source": "internal/cli/schema_mcp_metadata.json#tools.wiki.list_wikiSpaces.interface_ref", + "value": "wiki.list_wikiSpaces" + } + ], + "precedence": "reviewed_explicit", + "resolution": "interface_disposition_matrix", + "review_reason": "final interface mode composite forbids a direct MCP interface_ref", + "source": "internal/cli/schema_hints/selection-review.json", + "value": null }, "metadata_source": { "candidates": [ @@ -426341,22 +427025,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "获取知识库列表" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "列出空间(知识库 / 钉盘空间)" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "获取知识库列表" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "获取知识库列表" + "source": "cobra_help", + "value": "列出空间(知识库 / 钉盘空间)" }, "use_when": { "candidates": [ @@ -426382,11 +427066,8 @@ "group": "space", "has_parameters": true, "idempotency": "idempotent", - "interface_mode": "mcp", - "interface_ref": { - "product_id": "wiki", - "rpc_name": "list_wikiSpaces" - }, + "interface_mode": "composite", + "interface_reason": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface.", "is_alias": false, "metadata_source": "embedded-mcp-metadata", "name": "list_wikiSpaces", @@ -426418,16 +427099,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "composite route maps to pageToken for wiki.list_wikiSpaces or nextToken for drive.list_spaces", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "review_reason": "composite route maps to pageToken for wiki.list_wikiSpaces or nextToken for drive.list_spaces", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -426472,7 +427161,6 @@ "value": "string" } }, - "property": "cursor", "required": false, "type": "string" }, @@ -426502,16 +427190,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "composite route maps to pageSize for wiki.list_wikiSpaces or maxResults for drive.list_spaces", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "review_reason": "composite route maps to pageSize for wiki.list_wikiSpaces or maxResults for drive.list_spaces", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -426562,7 +427258,6 @@ "value": "string" } }, - "property": "limit", "required": false, "type": "string" }, @@ -426593,16 +427288,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "route selector maps to wikiSpaceType or spaceType on different composite branches", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "route selector maps to wikiSpaceType or spaceType on different composite branches", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -426653,7 +427356,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" } @@ -426664,7 +427366,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "获取知识库列表", + "title": "列出空间(知识库 / 钉盘空间)", "use_when": [ "需要枚举当前用户可访问的知识库或钉盘空间时" ] @@ -426693,11 +427395,8 @@ "cli_name": "copy", "cli_path": "wiki node copy", "confirmation": "not_required", - "description": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。", + "description": "将知识库中的节点复制到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时复制到 --workspace 指定知识库的根目录。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -426796,44 +427495,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将知识库中的节点复制到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时复制到 --workspace 指定知识库的根目录。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时复制到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有可查看下载权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:复制操作底层可能异步执行,异步时操作已提交但新节点 ID 无法立即返回,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将知识库中的节点复制到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时复制到 --workspace 指定知识库的根目录。" }, "effect": { "candidates": [ @@ -426982,22 +427659,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "复制知识库节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点复制到目标文件夹" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点复制到目标文件夹" + "source": "cobra_help", + "value": "复制知识库节点" }, "use_when": { "candidates": [ @@ -427044,6 +427721,12 @@ "source": "cobra_usage", "value": "目标文件夹 nodeId (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -427059,16 +427742,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -427113,7 +427802,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),复制后的节点将放置在此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -427128,6 +427818,12 @@ "source": "cobra_usage", "value": "源节点 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -427143,22 +427839,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -427169,9 +427877,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -427203,7 +427911,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要复制的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -427218,6 +427927,12 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。" + }, { "precedence": "default", "selected": false, @@ -427233,16 +427948,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -427293,7 +428014,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,复制到该知识库的根目录下。与 targetFolderId 至少传一个。", + "property": "workspaceId", "required": true, "type": "string" } @@ -427304,7 +428026,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "将指定节点复制到目标文件夹", + "title": "复制知识库节点", "use_when": [ "需要将知识库中的节点复制到指定位置时" ] @@ -427333,11 +428055,8 @@ "cli_name": "move", "cli_path": "wiki node move", "confirmation": "not_required", - "description": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。", + "description": "将知识库中的节点移动到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时移动到 --workspace 指定知识库的根目录。\n\n注意:跨知识库移动需要同时具备源和目标的相应权限。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -427436,44 +428155,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "将知识库中的节点移动到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时移动到 --workspace 指定知识库的根目录。\n\n注意:跨知识库移动需要同时具备源和目标的相应权限。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "将指定节点移动到目标文件夹。\r\n\r\n支持的节点类型:知识库节点(文档、文件夹)、钉盘文件/文件夹。\r\nnodeId 支持文档 URL 或 dentryUuid(32 位字母数字字符串)。\r\ntargetFolderId 为目标文件夹的 dentryUuid;workspaceId 为目标知识库标识,不传 targetFolderId 时移动到该知识库根目录,如果不传 targetFolderId 和 workspaceId,默认到当前用户所在组织的「我的文档」下\r\n\r\n权限要求:\r\n- 对源节点有编辑权限\r\n- 对目标文件夹有写入权限\r\n\r\n注意:移动操作底层可能异步执行,异步时操作已提交但无法立即确认完成,请稍后查看目标文件夹确认结果。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "将知识库中的节点移动到指定位置。\n\n通过 --node 指定源节点,通过 --folder 指定目标文件夹。\n不传 --folder 时移动到 --workspace 指定知识库的根目录。\n\n注意:跨知识库移动需要同时具备源和目标的相应权限。" }, "effect": { "candidates": [ @@ -427622,22 +428319,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "移动节点" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "移动知识库节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "移动节点" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "移动节点" + "source": "cobra_help", + "value": "移动知识库节点" }, "use_when": { "candidates": [ @@ -427684,6 +428381,12 @@ "source": "cobra_usage", "value": "目标文件夹 nodeId (选填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。" + }, { "precedence": "default", "selected": false, @@ -427699,16 +428402,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "targetFolderId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "folder" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "folder" + "source": "versioned_parameter_binding", + "value": "targetFolderId" }, "required": { "candidates": [ @@ -427753,7 +428462,8 @@ "value": "string" } }, - "property": "folder", + "interface_description": "目标文件夹的 dentryUuid(32 位字母数字字符串),节点将被移动到此文件夹下。", + "property": "targetFolderId", "required": false, "type": "string" }, @@ -427768,6 +428478,12 @@ "source": "cobra_usage", "value": "源节点 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)" + }, { "precedence": "default", "selected": false, @@ -427783,22 +428499,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "nodeId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "node" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "node" + "source": "versioned_parameter_binding", + "value": "nodeId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -427809,9 +428537,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -427843,7 +428571,8 @@ "value": "string" } }, - "property": "node", + "interface_description": "要移动的节点标识,支持以下格式:\\n1. 文档/文件夹 URL,如 https://alidocs.dingtalk.com/i/nodes/{dentryUuid}\\n2. dentryUuid(32 位字母数字字符串)", + "property": "nodeId", "required": true, "type": "string" }, @@ -427858,6 +428587,12 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。" + }, { "precedence": "default", "selected": false, @@ -427873,16 +428608,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ @@ -427933,7 +428674,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。当 targetFolderId 不传时,移动到该知识库的根目录下。如果同时传了 targetFolderId,则以 targetFolderId 为准。", + "property": "workspaceId", "required": true, "type": "string" } @@ -427944,7 +428686,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "移动节点", + "title": "移动知识库节点", "use_when": [ "需要将知识库中的节点移动到指定位置时" ] @@ -427974,11 +428716,8 @@ "cli_name": "search", "cli_path": "wiki node search", "confirmation": "not_required", - "description": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集", + "description": "在指定知识库内搜索文档/文件夹/表格等节点。\n\n通过 --workspace 限定搜索范围到某个知识库,通过 --query 指定搜索关键词。\n支持按文件扩展名过滤(--extensions),如 adoc、asheet、pdf 等。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -428077,44 +428816,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在指定知识库内搜索文档/文件夹/表格等节点。\n\n通过 --workspace 限定搜索范围到某个知识库,通过 --query 指定搜索关键词。\n支持按文件扩展名过滤(--extensions),如 adoc、asheet、pdf 等。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词和多种过滤条件搜索当前用户有权限访问的文档列表。\r\n\r\n支持的过滤条件:\r\n- keyword:关键词匹配文档标题和内容\r\n- extensions:按文件扩展名精确过滤(pdf/docx/png 等)\r\n- createdTimeFrom / createdTimeTo:按创建时间范围过滤\r\n- visitedTimeFrom / visitedTimeTo:按访问时间范围过滤\r\n- creatorUserIds:按创建者用户 ID 过滤\r\n - editorUserIds:按编辑者用户 ID 过滤\r\n- mentionedUserIds:按文档中 @提及的用户 ID 过滤\r\n- workspaceIds:按知识库范围过滤(支持知识库 URL)\r\n\r\n支持分页获取结果。搜索范围为用户在当前组织内有权限访问的所有文档数据。\r\n所有过滤条件均为可选,不传则不过滤。多个条件同时传入时取交集" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "在指定知识库内搜索文档/文件夹/表格等节点。\n\n通过 --workspace 限定搜索范围到某个知识库,通过 --query 指定搜索关键词。\n支持按文件扩展名过滤(--extensions),如 adoc、asheet、pdf 等。" }, "effect": { "candidates": [ @@ -428263,22 +428980,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "搜索文档" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "在知识库中搜索节点" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索文档" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "搜索文档" + "source": "cobra_help", + "value": "在知识库中搜索节点" }, "use_when": { "candidates": [ @@ -428325,6 +429042,12 @@ "source": "cobra_usage", "value": "分页游标" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "分页游标,从上一次请求的返回结果中获取 nextPageToken" + }, { "precedence": "default", "selected": false, @@ -428340,16 +429063,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageToken" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "cursor" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "cursor" + "source": "versioned_parameter_binding", + "value": "pageToken" }, "required": { "candidates": [ @@ -428394,7 +429123,8 @@ "value": "string" } }, - "property": "cursor", + "interface_description": "分页游标,从上一次请求的返回结果中获取 nextPageToken", + "property": "pageToken", "required": false, "type": "string" }, @@ -428500,6 +429230,12 @@ "source": "cobra_usage", "value": "每页数量 (默认 10,最大 30)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "每页返回的文档数量,默认 10,最大 30" + }, { "precedence": "default", "selected": false, @@ -428512,19 +429248,45 @@ "source": "cobra_usage", "value": "每页数量 (默认 10,最大 30)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "integer" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -428575,7 +429337,9 @@ "value": "integer" } }, - "property": "limit", + "interface_description": "每页返回的文档数量,默认 10,最大 30", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "integer" }, @@ -428590,6 +429354,12 @@ "source": "cobra_usage", "value": "搜索关键词 (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词,匹配文档标题和内容。不传则返回最近访问的文档列表。" + }, { "precedence": "default", "selected": false, @@ -428605,16 +429375,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ @@ -428665,7 +429441,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "搜索关键词,匹配文档标题和内容。不传则返回最近访问的文档列表。", + "property": "keyword", "required": true, "type": "string" }, @@ -428680,6 +429457,12 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "按知识库范围过滤,支持知识库 URL" + }, { "precedence": "default", "selected": false, @@ -428692,19 +429475,45 @@ "source": "cobra_usage", "value": "知识库 ID (必填)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceIds" }, "required": { "candidates": [ @@ -428755,7 +429564,9 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "按知识库范围过滤,支持知识库 URL", + "interface_type": "array", + "property": "workspaceIds", "required": true, "type": "string" } @@ -428766,7 +429577,7 @@ "reviewed": true, "risk": "low", "source": "reviewed_command_registry", - "title": "搜索文档", + "title": "在知识库中搜索节点", "use_when": [ "已知 workspace,需要在该知识库内按关键词搜索节点时" ] @@ -428795,11 +429606,8 @@ "cli_name": "remove", "cli_path": "wiki member remove", "confirmation": "user_required", - "description": "从知识库中移除指定的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除知识库成员,移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\r\n\r\n适用场景:\r\n- 员工离职或转岗,需要撤销知识库访问权限。\r\n- 清理不再需要访问知识库的历史成员。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求**:操作者必须具备知识库的「可管理(MANAGER)」及以上角色(OWNER 或 MANAGER)。EDITOR / DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。", + "description": "从指定知识库中移除一个或多个成员(仅支持 USER 类型)。\n\n移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "destructive", "effect_source": "agent-hint", "examples": [ @@ -428906,44 +429714,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "从知识库中移除指定的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除知识库成员,移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\r\n\r\n适用场景:\r\n- 员工离职或转岗,需要撤销知识库访问权限。\r\n- 清理不再需要访问知识库的历史成员。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求**:操作者必须具备知识库的「可管理(MANAGER)」及以上角色(OWNER 或 MANAGER)。EDITOR / DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "从指定知识库中移除一个或多个成员(仅支持 USER 类型)。\n\n移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "从知识库中移除指定的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除知识库成员,移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\r\n\r\n适用场景:\r\n- 员工离职或转岗,需要撤销知识库访问权限。\r\n- 清理不再需要访问知识库的历史成员。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求**:操作者必须具备知识库的「可管理(MANAGER)」及以上角色(OWNER 或 MANAGER)。EDITOR / DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "从知识库中移除指定的企业用户成员(仅支持 USER 类型)。\r\n\r\n通过传入 userIds 列表批量移除知识库成员,移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\r\n\r\n适用场景:\r\n- 员工离职或转岗,需要撤销知识库访问权限。\r\n- 清理不再需要访问知识库的历史成员。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口移除。\r\n- **权限要求**:操作者必须具备知识库的「可管理(MANAGER)」及以上角色(OWNER 或 MANAGER)。EDITOR / DOWNLOADER / READER / 非成员调用会返回 `forbidden.accessDenied`,错误信息会明确提示所需的最低角色。\r\n- 单次请求 `userIds` 列表最多传 30 个,超出需分批调用。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "从指定知识库中移除一个或多个成员(仅支持 USER 类型)。\n\n移除后相关用户将无法访问该知识库下的内容(除非通过节点级权限另行授权)。\n\n注意:\n- OWNER 角色不可通过此接口移除。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n- 单次请求最多 30 个成员,超出请分批调用。" }, "effect": { "candidates": [ @@ -429100,21 +429886,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除知识库成员" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "移除知识库成员" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "移除知识库成员" }, "use_when": { @@ -429162,6 +429948,12 @@ "source": "cobra_usage", "value": "被移除的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要移除的用户 userId 列表(钉钉组织内部用户 ID),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户,故入参直接以扁平的 userId 列表呈现。" + }, { "precedence": "default", "selected": false, @@ -429174,25 +429966,57 @@ "source": "cobra_usage", "value": "被移除的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -429203,9 +430027,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -429237,7 +430061,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要移除的用户 userId 列表(钉钉组织内部用户 ID),至少包含一个 userId,单次最多 30 个。当前 Agent 写操作仅支持移除企业用户,故入参直接以扁平的 userId 列表呈现。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -429252,6 +430078,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -429267,22 +430099,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -429293,9 +430137,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -429327,7 +430171,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -429374,11 +430219,8 @@ ] ] }, - "description": "根据关键词搜索当前用户有权限访问的知识库列表。\r\n返回匹配的知识库列表,包括知识库 ID、名称、描述和访问链接。\r\n搜索范围为用户在当前组织内有权限访问的所有知识库。", + "description": "根据关键词搜索当前用户有权限访问的知识库列表,匹配知识库名称和描述。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "read", "effect_source": "command-verb", "examples": [ @@ -429477,44 +430319,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "根据关键词搜索当前用户有权限访问的知识库列表。\r\n返回匹配的知识库列表,包括知识库 ID、名称、描述和访问链接。\r\n搜索范围为用户在当前组织内有权限访问的所有知识库。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "根据关键词搜索当前用户有权限访问的知识库列表,匹配知识库名称和描述。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "根据关键词搜索当前用户有权限访问的知识库列表。\r\n返回匹配的知识库列表,包括知识库 ID、名称、描述和访问链接。\r\n搜索范围为用户在当前组织内有权限访问的所有知识库。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "根据关键词搜索当前用户有权限访问的知识库列表。\r\n返回匹配的知识库列表,包括知识库 ID、名称、描述和访问链接。\r\n搜索范围为用户在当前组织内有权限访问的所有知识库。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "根据关键词搜索当前用户有权限访问的知识库列表,匹配知识库名称和描述。" }, "effect": { "candidates": [ @@ -429655,21 +430475,21 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索知识库" }, { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": false, - "source": "cobra_help", + "source": "mcp_metadata", "value": "搜索知识库" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", + "source": "cobra_help", "value": "搜索知识库" }, "use_when": { @@ -429717,6 +430537,12 @@ "source": "cobra_usage", "value": "返回数量 1-20 (默认 10)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "最多返回的知识库数量,默认 10,最大 20。" + }, { "precedence": "default", "selected": false, @@ -429729,19 +430555,45 @@ "source": "cobra_usage", "value": "返回数量 1-20 (默认 10)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "number" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "number" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "pageSize" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "limit" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "limit" + "source": "versioned_parameter_binding", + "value": "pageSize" }, "required": { "candidates": [ @@ -429792,7 +430644,9 @@ "value": "string" } }, - "property": "limit", + "interface_description": "最多返回的知识库数量,默认 10,最大 20。", + "interface_type": "number", + "property": "pageSize", "required": false, "type": "string" }, @@ -429807,6 +430661,12 @@ "source": "cobra_usage", "value": "搜索关键词 (搜索组织知识库时必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "搜索关键词,匹配知识库名称和描述。" + }, { "precedence": "default", "selected": false, @@ -429822,16 +430682,22 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "keyword" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "query" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "query" + "source": "versioned_parameter_binding", + "value": "keyword" }, "required": { "candidates": [ @@ -429841,6 +430707,12 @@ "source": "require_one_of_constraint", "value": false }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": true + }, { "precedence": "default", "selected": false, @@ -429882,7 +430754,8 @@ "value": "string" } }, - "property": "query", + "interface_description": "搜索关键词,匹配知识库名称和描述。", + "property": "keyword", "required": false, "type": "string" }, @@ -429939,16 +430812,24 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", + "review_reason": "local route selector; myWikiSpace invokes list_wikiSpaces instead", "selected": true, + "source": "reviewed_mapping_exclusion", + "value": "" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "type" } ], - "precedence": "inference", + "precedence": "reviewed_mapping_exclusion", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "type" + "review_reason": "local route selector; myWikiSpace invokes list_wikiSpaces instead", + "source": "reviewed_mapping_exclusion", + "value": "" }, "required": { "candidates": [ @@ -429999,7 +430880,6 @@ "value": "string" } }, - "property": "type", "required": false, "type": "string" } @@ -430038,11 +430918,8 @@ "cli_name": "update", "cli_path": "wiki member update", "confirmation": "not_required", - "description": "修改成员在知识库中的角色。\r\n\r\n同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n支持变更用户(USER)角色。\r\n\r\n适用场景:\r\n- 成员晋升为管理员,需要提升其知识库权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 当前 Agent 调用场景下,**暂不支持 CONVERSATION(群会话)和 DEPT(部门)类型**。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。", + "description": "更新指定知识库已有成员的角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n\n仅可更新已存在成员关系的成员,新增成员请使用 dws wiki member add。", "display": "知识库 / 空间管理 / 节点管理 / 成员管理", - "dry_run": { - "preview_kind": "invocation" - }, "effect": "write", "effect_source": "command-verb", "examples": [ @@ -430141,44 +431018,22 @@ "description": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改成员在知识库中的角色。\r\n\r\n同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n支持变更用户(USER)角色。\r\n\r\n适用场景:\r\n- 成员晋升为管理员,需要提升其知识库权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 当前 Agent 调用场景下,**暂不支持 CONVERSATION(群会话)和 DEPT(部门)类型**。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新指定知识库已有成员的角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n\n仅可更新已存在成员关系的成员,新增成员请使用 dws wiki member add。" - } - ], - "precedence": "mcp_metadata", - "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改成员在知识库中的角色。\r\n\r\n同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n支持变更用户(USER)角色。\r\n\r\n适用场景:\r\n- 成员晋升为管理员,需要提升其知识库权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 当前 Agent 调用场景下,**暂不支持 CONVERSATION(群会话)和 DEPT(部门)类型**。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。" - }, - "dry_run": { - "candidates": [ + }, { - "precedence": "reviewed_explicit", - "review_reason": "reviewed positive dry-run capability", - "selected": true, - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改成员在知识库中的角色。\r\n\r\n同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\r\n\r\n支持变更用户(USER)角色。\r\n\r\n适用场景:\r\n- 成员晋升为管理员,需要提升其知识库权限。\r\n\r\n注意事项:\r\n- OWNER 角色不可通过此接口变更。\r\n- 当前 Agent 调用场景下,**暂不支持 CONVERSATION(群会话)和 DEPT(部门)类型**。\r\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。" } ], - "precedence": "reviewed_explicit", - "resolution": "exact_canonical_lookup", - "review_reason": "reviewed positive dry-run capability", - "source": "reviewed_dry_run_registry", - "source_ref": "internal/cli/schema_dry_run_capabilities.go", - "value": { - "preview_kind": "invocation" - } + "precedence": "cobra_help", + "resolution": "highest_precedence", + "source": "cobra_help", + "value": "更新指定知识库已有成员的角色。\n\n支持的角色 (--role)(必须大写):\n MANAGER 管理员\n EDITOR 编辑者\n DOWNLOADER 查看下载者\n READER 仅可查看者\n\n注意:\n- OWNER 角色不可通过此接口变更。\n- 同一成员在同一知识库只能拥有一个角色,变更后旧角色自动替换。\n- 操作者需具备知识库的 OWNER 或 MANAGER 权限。\n\n仅可更新已存在成员关系的成员,新增成员请使用 dws wiki member add。" }, "effect": { "candidates": [ @@ -430319,22 +431174,22 @@ "title": { "candidates": [ { - "precedence": "mcp_metadata", + "precedence": "cobra_help", "selected": true, - "source": "mcp_metadata", - "value": "修改知识库成员角色" - }, - { - "precedence": "inference", - "selected": false, "source": "cobra_help", "value": "更新知识库成员权限" + }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "修改知识库成员角色" } ], - "precedence": "mcp_metadata", + "precedence": "cobra_help", "resolution": "highest_precedence", - "source": "mcp_metadata", - "value": "修改知识库成员角色" + "source": "cobra_help", + "value": "更新知识库成员权限" }, "use_when": { "candidates": [ @@ -430381,6 +431236,12 @@ "source": "cobra_usage", "value": "新权限角色: MANAGER / EDITOR / DOWNLOADER / READER (必填,大小写不敏感)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。" + }, { "precedence": "default", "selected": false, @@ -430396,22 +431257,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "roleId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "role" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "role" + "source": "versioned_parameter_binding", + "value": "roleId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -430422,9 +431295,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -430456,7 +431329,8 @@ "value": "string" } }, - "property": "role", + "interface_description": "变更后的角色,取值:MANAGER、EDITOR、DOWNLOADER、READER。", + "property": "roleId", "required": true, "type": "string" }, @@ -430471,6 +431345,12 @@ "source": "cobra_usage", "value": "被更新的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。" + }, { "precedence": "default", "selected": false, @@ -430483,25 +431363,57 @@ "source": "cobra_usage", "value": "被更新的用户 userId 列表,逗号分隔 (必填,单次最多 30 个)" }, + "interface_type": { + "candidates": [ + { + "precedence": "mcp_metadata", + "selected": true, + "source": "mcp_metadata", + "value": "array" + }, + { + "precedence": "fallback", + "selected": false, + "source": "cobra_flag_type", + "value": "string" + } + ], + "precedence": "mcp_metadata", + "resolution": "highest_precedence", + "source": "mcp_metadata", + "value": "array" + }, "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "userIds" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "users" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "users" + "source": "versioned_parameter_binding", + "value": "userIds" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -430512,9 +431424,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -430546,7 +431458,9 @@ "value": "string" } }, - "property": "users", + "interface_description": "要变更角色的用户 userId 列表(钉钉 staffId / 外部 userId 格式,由钉钉开放平台体系下颁发;通常为数字字符串),至少包含一个 userId,单次最多 30 个。如果你只有 unionId,请先调用钉钉开放平台「根据 unionId 获取 userId」接口换取 userId。", + "interface_type": "array", + "property": "userIds", "required": true, "type": "string" }, @@ -430561,6 +431475,12 @@ "source": "cobra_usage", "value": "知识库 ID 或 URL (必填)" }, + { + "precedence": "mcp_metadata", + "selected": false, + "source": "mcp_metadata", + "value": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。" + }, { "precedence": "default", "selected": false, @@ -430576,22 +431496,34 @@ "property": { "candidates": [ { - "precedence": "inference", + "precedence": "versioned_binding", "selected": true, + "source": "versioned_parameter_binding", + "value": "workspaceId" + }, + { + "precedence": "inference", + "selected": false, "source": "flag_name_inference", "value": "workspace" } ], - "precedence": "inference", + "precedence": "versioned_binding", "resolution": "highest_precedence", - "source": "flag_name_inference", - "value": "workspace" + "source": "versioned_parameter_binding", + "value": "workspaceId" }, "required": { "candidates": [ { - "precedence": "inference", + "precedence": "mcp_metadata", "selected": true, + "source": "mcp_metadata", + "value": true + }, + { + "precedence": "inference", + "selected": false, "source": "usage_required_inference", "value": true }, @@ -430602,9 +431534,9 @@ "value": false } ], - "precedence": "inference", + "precedence": "mcp_metadata", "resolution": "highest_precedence", - "source": "usage_required_inference", + "source": "mcp_metadata", "value": true }, "required_when": { @@ -430636,7 +431568,8 @@ "value": "string" } }, - "property": "workspace", + "interface_description": "目标知识库的标识,支持两种格式:1) 知识库 ID(纯字符串);2) 知识库 URL,如 https://alidocs.dingtalk.com/i/spaces/{workspaceId}/overview,系统自动提取其中的 workspaceId。", + "property": "workspaceId", "required": true, "type": "string" } @@ -430647,7 +431580,7 @@ "reviewed": true, "risk": "medium", "source": "reviewed_command_registry", - "title": "修改知识库成员角色", + "title": "更新知识库成员权限", "use_when": [ "需要更新指定知识库已有成员的角色时" ] diff --git a/internal/cli/schema_catalog_test.go b/internal/cli/schema_catalog_test.go index afd8421b..6c7cc129 100644 --- a/internal/cli/schema_catalog_test.go +++ b/internal/cli/schema_catalog_test.go @@ -9,9 +9,17 @@ package cli import ( "sort" + "strings" "testing" ) +func TestBuildSchemaCatalogSnapshotRejectsUnresolvedSource(t *testing.T) { + _, err := BuildSchemaCatalogSnapshot(ResolvedSchemaBuild{}, SchemaCatalogBuildOptions{}) + if err == nil || !strings.Contains(err.Error(), "ResolveSchemaBuild") { + t.Fatalf("BuildSchemaCatalogSnapshot() error = %v, want resolved-source requirement", err) + } +} + func TestEmbeddedSchemaCatalogIntegrity(t *testing.T) { loaded := embeddedSchemaCatalog() if !embeddedSchemaCatalogAvailable() { @@ -143,6 +151,87 @@ func TestEmbeddedCatalogPreservesRegistryIdentityAndManualParameterContract(t *t } } +func TestEmbeddedCatalogModelsAitableExportBranches(t *testing.T) { + leaf, err := embeddedSchemaPayload([]string{"aitable export data"}) + if err != nil { + t.Fatal(err) + } + parameters := schemaMap(leaf["parameters"]) + if _, exists := parameters["format"]; exists { + t.Fatal("business export format still shadows the global --format output flag") + } + exportFormat := parameters["export-format"] + if exportFormat["property"] != "format" || exportFormat["required"] != false { + t.Fatalf("export-format parameter = %#v", exportFormat) + } + if got, want := schemaStringSlice(exportFormat["enum"]), []string{"excel", "attachment", "excel_and_attachment", "excel_with_inline_images"}; !equalStringSlices(got, want) { + t.Fatalf("export-format enum = %v, want %v", got, want) + } + if parameters["scope"]["required"] != false { + t.Fatalf("scope must be conditional, got %#v", parameters["scope"]) + } + if got := parameters["table-id"]["required_when"]; got != "scope is table or view" { + t.Fatalf("table-id required_when = %#v", got) + } + if got := parameters["view-id"]["required_when"]; got != "scope is view" { + t.Fatalf("view-id required_when = %#v", got) + } + + constraints, ok := leaf["constraints"].(map[string]any) + if !ok { + t.Fatalf("constraints = %#v", leaf["constraints"]) + } + hasGroup := func(field string, want ...string) bool { + groups, _ := constraints[field].([]any) + for _, raw := range groups { + if equalStringSlices(schemaStringSlice(raw), want) { + return true + } + } + return false + } + if !hasGroup("require_one_of", "scope", "task-id") || + !hasGroup("require_one_of", "export-format", "task-id") || + !hasGroup("require_together", "scope", "export-format") { + t.Fatalf("branch constraints = %#v", constraints) + } +} + +func TestEmbeddedCatalogKeepsSharedFlagSemanticsCommandScoped(t *testing.T) { + queryLeaf, err := embeddedSchemaPayload([]string{"aitable record query"}) + if err != nil { + t.Fatal(err) + } + getLeaf, err := embeddedSchemaPayload([]string{"aitable record get"}) + if err != nil { + t.Fatal(err) + } + queryRecordIDs := schemaMap(queryLeaf["parameters"])["record-ids"] + getRecordIDs := schemaMap(getLeaf["parameters"])["record-ids"] + if queryRecordIDs["required"] != false { + t.Fatalf("record query --record-ids = %#v, want optional", queryRecordIDs) + } + if getRecordIDs["required"] != true { + t.Fatalf("record get --record-ids = %#v, want required", getRecordIDs) + } + getProvenance := schemaMap(getRecordIDs["field_provenance"])["required"] + if getProvenance["source"] != "typed_parameter_metadata" { + t.Fatalf("record get required provenance = %#v", getProvenance) + } +} + +func equalStringSlices(left, right []string) bool { + if len(left) != len(right) { + return false + } + for index := range left { + if left[index] != right[index] { + return false + } + } + return true +} + func TestStripSchemaPayloadCompactLeaf(t *testing.T) { leaf, err := embeddedSchemaPayload([]string{"calendar event create"}) if err != nil { diff --git a/internal/cli/schema_cobra_binding.go b/internal/cli/schema_cobra_binding.go index 1364c866..662d1bec 100644 --- a/internal/cli/schema_cobra_binding.go +++ b/internal/cli/schema_cobra_binding.go @@ -4,8 +4,10 @@ package cli import ( + "bytes" "encoding/json" "fmt" + "io" "reflect" "sort" "strings" @@ -22,10 +24,53 @@ import ( type AliasKind string const ( - AliasKindCobraAlias AliasKind = "cobra_alias" - AliasKindCompatibilityLeaf AliasKind = "compatibility_leaf" + AliasKindCobraAlias AliasKind = "cobra_alias" + AliasKindCompatibilityLeaf AliasKind = "compatibility_leaf" + runtimeCompatibilityEquivalenceAnnotation = "dws.schema.compatibility_equivalence" ) +// RuntimeCompatibilityEquivalence is an implementation-side review record +// for two separately registered Cobra leaves that intentionally share one +// Schema identity despite using different execution handlers. Registry alias +// review alone is not enough: different handlers may inject fixed arguments or +// route to different business operations while exposing identical flags. +type RuntimeCompatibilityEquivalence struct { + ID string `json:"id"` + Reason string `json:"reason"` + Reviewed bool `json:"reviewed"` +} + +// AnnotateRuntimeCompatibilityEquivalence records the same typed review on +// both sides of one independently executable compatibility pair. Invalid +// review data panics during command construction so production cannot silently +// accept an unreviewed handler mismatch. +func AnnotateRuntimeCompatibilityEquivalence(primary, compatibility *cobra.Command, review RuntimeCompatibilityEquivalence) { + if primary == nil || compatibility == nil { + panic("runtime compatibility equivalence requires two commands") + } + review.ID = strings.TrimSpace(review.ID) + review.Reason = strings.TrimSpace(review.Reason) + if review.ID == "" || review.Reason == "" || !review.Reviewed { + panic("runtime compatibility equivalence requires a reviewed id and reason") + } + encoded, err := json.Marshal(review) + if err != nil { + panic(fmt.Sprintf("encode runtime compatibility equivalence: %v", err)) + } + commands := []*cobra.Command{primary, compatibility} + for _, command := range commands { + if existing, exists := command.Annotations[runtimeCompatibilityEquivalenceAnnotation]; exists && existing != string(encoded) { + panic(fmt.Sprintf("runtime compatibility equivalence for %q conflicts with an existing reviewed marker", command.CommandPath())) + } + } + for _, command := range commands { + if command.Annotations == nil { + command.Annotations = map[string]string{} + } + command.Annotations[runtimeCompatibilityEquivalenceAnnotation] = string(encoded) + } +} + // BoundAlias is one reviewed alias path resolved against the live Cobra tree. type BoundAlias struct { Path string @@ -70,6 +115,9 @@ func BindEffectiveCommandRegistry(root *cobra.Command, effective EffectiveComman if root == nil { return BoundCommandRegistry{}, fmt.Errorf("bind effective Schema command registry: root is nil") } + if err := ValidateEmbeddedSchemaParameterBindings(); err != nil { + return BoundCommandRegistry{}, fmt.Errorf("validate reviewed Schema parameter bindings: %w", err) + } validated, err := newEffectiveCommandRegistry(effective.Commands) if err != nil { return BoundCommandRegistry{}, fmt.Errorf("bind effective Schema command registry: %w", err) @@ -189,7 +237,12 @@ type compatibilityFlagRequiredContract struct { // even while both paths still resolve to the same canonical identity. func validateCompatibilityLeafContract(spec CommandSpec, primary, alias *cobra.Command, aliasPath string) error { problems := make([]string, 0) - problems = append(problems, compatibilityFlagContractProblems(spec.CanonicalPath, primary, alias)...) + problems = append(problems, compatibilityHandlerContractProblems(primary, alias)...) + flagProblems, err := compatibilityFlagContractProblems(spec.CanonicalPath, primary, alias) + if err != nil { + return fmt.Errorf("validate reviewed Schema parameter bindings for compatibility leaf %q: %w", aliasPath, err) + } + problems = append(problems, flagProblems...) problems = append(problems, compatibilityArgsContractProblems(primary, alias)...) primaryConstraints, err := strictCompatibilityConstraints(primary, spec.CanonicalPath) @@ -230,9 +283,107 @@ func validateCompatibilityLeafContract(spec CommandSpec, primary, alias *cobra.C ) } -func compatibilityFlagContractProblems(canonicalPath string, primary, alias *cobra.Command) []string { - primaryFlags := effectiveCompatibilityFlagContracts(primary, canonicalPath) - aliasFlags := effectiveCompatibilityFlagContracts(alias, canonicalPath) +func compatibilityHandlerContractProblems(primary, alias *cobra.Command) []string { + if primary == nil || alias == nil { + return []string{"execution handlers cannot be compared for a nil command"} + } + + differences := make([]string, 0) + for _, handler := range []struct { + name string + primary any + alias any + }{ + {name: "PersistentPreRun", primary: primary.PersistentPreRun, alias: alias.PersistentPreRun}, + {name: "PersistentPreRunE", primary: primary.PersistentPreRunE, alias: alias.PersistentPreRunE}, + {name: "PreRun", primary: primary.PreRun, alias: alias.PreRun}, + {name: "PreRunE", primary: primary.PreRunE, alias: alias.PreRunE}, + {name: "Run", primary: primary.Run, alias: alias.Run}, + {name: "RunE", primary: primary.RunE, alias: alias.RunE}, + {name: "PostRun", primary: primary.PostRun, alias: alias.PostRun}, + {name: "PostRunE", primary: primary.PostRunE, alias: alias.PostRunE}, + {name: "PersistentPostRun", primary: primary.PersistentPostRun, alias: alias.PersistentPostRun}, + {name: "PersistentPostRunE", primary: primary.PersistentPostRunE, alias: alias.PersistentPostRunE}, + } { + if compatibilityHandlerPointer(handler.primary) != compatibilityHandlerPointer(handler.alias) { + differences = append(differences, handler.name) + } + } + + primaryReview, primaryPresent, primaryErr := runtimeCompatibilityEquivalence(primary) + aliasReview, aliasPresent, aliasErr := runtimeCompatibilityEquivalence(alias) + problems := make([]string, 0) + if primaryErr != nil { + problems = append(problems, "primary compatibility equivalence is invalid: "+primaryErr.Error()) + } + if aliasErr != nil { + problems = append(problems, "compatibility equivalence is invalid: "+aliasErr.Error()) + } + reviewMatches := primaryPresent && aliasPresent && primaryErr == nil && aliasErr == nil && reflect.DeepEqual(primaryReview, aliasReview) + if !primaryPresent && !aliasPresent { + problems = append(problems, "independent compatibility leaves require the same reviewed typed compatibility equivalence on both commands") + } else if primaryPresent != aliasPresent { + problems = append(problems, "reviewed compatibility equivalence must be present on both commands") + } else if primaryPresent && aliasPresent && primaryErr == nil && aliasErr == nil && !reflect.DeepEqual(primaryReview, aliasReview) { + problems = append(problems, fmt.Sprintf("reviewed compatibility equivalence differs: primary=%s compatibility=%s", + compatibilityJSON(primaryReview), compatibilityJSON(aliasReview))) + } + if len(differences) > 0 && !reviewMatches { + problems = append(problems, fmt.Sprintf("execution handler implementation differs for %s; add the same reviewed typed compatibility equivalence to both commands or model them as distinct canonical tools", strings.Join(differences, ", "))) + } + return problems +} + +func compatibilityHandlerPointer(handler any) uintptr { + if handler == nil { + return 0 + } + value := reflect.ValueOf(handler) + if value.Kind() != reflect.Func || value.IsNil() { + return 0 + } + return value.Pointer() +} + +func runtimeCompatibilityEquivalence(command *cobra.Command) (RuntimeCompatibilityEquivalence, bool, error) { + if command == nil || command.Annotations == nil { + return RuntimeCompatibilityEquivalence{}, false, nil + } + raw, present := command.Annotations[runtimeCompatibilityEquivalenceAnnotation] + if !present { + return RuntimeCompatibilityEquivalence{}, false, nil + } + raw = strings.TrimSpace(raw) + if raw == "" { + return RuntimeCompatibilityEquivalence{}, true, fmt.Errorf("annotation is empty") + } + var review RuntimeCompatibilityEquivalence + decoder := json.NewDecoder(bytes.NewBufferString(raw)) + decoder.DisallowUnknownFields() + if err := decoder.Decode(&review); err != nil { + return RuntimeCompatibilityEquivalence{}, true, err + } + if err := decoder.Decode(&struct{}{}); err != io.EOF { + if err == nil { + err = fmt.Errorf("multiple JSON values") + } + return RuntimeCompatibilityEquivalence{}, true, err + } + if review.ID == "" || review.ID != strings.TrimSpace(review.ID) || review.Reason == "" || review.Reason != strings.TrimSpace(review.Reason) || !review.Reviewed { + return RuntimeCompatibilityEquivalence{}, true, fmt.Errorf("annotation requires an exact reviewed id and reason") + } + return review, true, nil +} + +func compatibilityFlagContractProblems(canonicalPath string, primary, alias *cobra.Command) ([]string, error) { + primaryFlags, err := effectiveCompatibilityFlagContracts(primary, canonicalPath) + if err != nil { + return nil, err + } + aliasFlags, err := effectiveCompatibilityFlagContracts(alias, canonicalPath) + if err != nil { + return nil, err + } names := make([]string, 0, len(primaryFlags)+len(aliasFlags)) seen := map[string]bool{} for name := range primaryFlags { @@ -291,16 +442,20 @@ func compatibilityFlagContractProblems(canonicalPath string, primary, alias *cob name, compatibilityJSON(primaryFlag.Annotations), compatibilityJSON(aliasFlag.Annotations))) } } - return problems + return problems, nil } -func effectiveCompatibilityFlagContracts(command *cobra.Command, canonicalPath string) map[string]compatibilityFlagContract { +func effectiveCompatibilityFlagContracts(command *cobra.Command, canonicalPath string) (map[string]compatibilityFlagContract, error) { contracts := map[string]compatibilityFlagContract{} if command == nil { - return contracts + return contracts, nil } canonicalPath = strings.TrimSpace(canonicalPath) - bindings := runtimeSchemaParameterBindingData().Bindings[canonicalPath] + snapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + return nil, err + } + bindings := snapshot.Bindings[canonicalPath] metadata := runtimeSchemaParameterMetadataByCanonical[canonicalPath] // Ask Cobra to materialize inherited flags, then visit every contributing // set explicitly. In particular, a newly-added persistent flag on a leaf is @@ -343,7 +498,7 @@ func effectiveCompatibilityFlagContracts(command *cobra.Command, canonicalPath s command.Flags().VisitAll(visit) command.PersistentFlags().VisitAll(visit) command.InheritedFlags().VisitAll(visit) - return contracts + return contracts, nil } // effectiveCompatibilityFlagAnnotations overlays canonical, code-owned diff --git a/internal/cli/schema_cobra_binding_test.go b/internal/cli/schema_cobra_binding_test.go index 40aced00..24148e37 100644 --- a/internal/cli/schema_cobra_binding_test.go +++ b/internal/cli/schema_cobra_binding_test.go @@ -13,6 +13,7 @@ import ( func TestBuildEffectiveCommandRegistryMergesReviewedManualCommands(t *testing.T) { root := commandRegistryTestRoot("item get", "item legacy", "helper add") + annotateTestCompatibilityPair(exactSchemaCommand(root, "item get"), exactSchemaCommand(root, "item legacy")) reviewed := mustCommandRegistry(t, []CommandSpec{{ CanonicalPath: "item.get_item", PrimaryCLIPath: "item get", @@ -155,6 +156,7 @@ func TestBindEffectiveCommandRegistryResolvesCompatibilityAliasLeaf(t *testing.T primary := exactSchemaCommand(root, "item get") alias := exactSchemaCommand(root, "item legacy") alias.Hidden = true + annotateTestCompatibilityPair(primary, alias) hidden := exactSchemaCommand(root, "compat hidden") hidden.Hidden = true AttachRuntimeSchema(primary, "item", "get_item", "test") @@ -192,6 +194,7 @@ func TestBindEffectiveCommandRegistryAcceptsEquivalentCompatibilityLeafContract( primary := exactSchemaCommand(root, "item get") alias := exactSchemaCommand(root, "item legacy") alias.Hidden = true + annotateTestCompatibilityPair(primary, alias) primary.Use = "get " alias.Use = "legacy " argsValidator := cobra.ExactArgs(1) @@ -229,11 +232,101 @@ func TestBindEffectiveCommandRegistryAcceptsEquivalentCompatibilityLeafContract( } } +func TestBindEffectiveCommandRegistryRejectsDifferentCompatibilityHandlersWithoutTypedReview(t *testing.T) { + root := commandRegistryTestRoot("item get", "item legacy") + primary := exactSchemaCommand(root, "item get") + alias := exactSchemaCommand(root, "item legacy") + alias.Hidden = true + primary.Run = nil + alias.Run = nil + primary.RunE = compatibilityPrimaryRunE + alias.RunE = compatibilityAliasRunE + + effective := mustEffectiveCommandRegistry(t, []CommandSpec{{ + CanonicalPath: "item.get_item", + PrimaryCLIPath: "item get", + Aliases: []string{"item legacy"}, + }}) + _, err := BindEffectiveCommandRegistry(root, effective) + if err == nil || !strings.Contains(err.Error(), "execution handler implementation differs for RunE") { + t.Fatalf("handler mismatch error = %v", err) + } + if !strings.Contains(err.Error(), "distinct canonical tools") { + t.Fatalf("handler mismatch error is not actionable: %v", err) + } +} + +func TestBindEffectiveCommandRegistryRejectsIndependentLeafWithoutTypedReviewEvenWithSameHandler(t *testing.T) { + root := commandRegistryTestRoot("item get", "item legacy") + exactSchemaCommand(root, "item get") + alias := exactSchemaCommand(root, "item legacy") + alias.Hidden = true + + effective := mustEffectiveCommandRegistry(t, []CommandSpec{{ + CanonicalPath: "item.get_item", + PrimaryCLIPath: "item get", + Aliases: []string{"item legacy"}, + }}) + _, err := BindEffectiveCommandRegistry(root, effective) + if err == nil || !strings.Contains(err.Error(), "independent compatibility leaves require the same reviewed typed compatibility equivalence") { + t.Fatalf("missing compatibility review error = %v", err) + } +} + +func TestBindEffectiveCommandRegistryAcceptsDifferentHandlersWithMatchingTypedReview(t *testing.T) { + root := commandRegistryTestRoot("item get", "item legacy") + primary := exactSchemaCommand(root, "item get") + alias := exactSchemaCommand(root, "item legacy") + alias.Hidden = true + primary.Run = nil + alias.Run = nil + primary.RunE = compatibilityPrimaryRunE + alias.RunE = compatibilityAliasRunE + AnnotateRuntimeCompatibilityEquivalence(primary, alias, RuntimeCompatibilityEquivalence{ + ID: "item-get-legacy-v1", + Reason: "The compatibility wrapper adds presentation-only behavior before invoking the exact primary operation.", + Reviewed: true, + }) + + effective := mustEffectiveCommandRegistry(t, []CommandSpec{{ + CanonicalPath: "item.get_item", + PrimaryCLIPath: "item get", + Aliases: []string{"item legacy"}, + }}) + if _, err := BindEffectiveCommandRegistry(root, effective); err != nil { + t.Fatalf("reviewed handler equivalence was rejected: %v", err) + } +} + +func TestAnnotateRuntimeCompatibilityEquivalenceRejectsConflictingExistingReview(t *testing.T) { + root := commandRegistryTestRoot("item get", "item legacy", "item older") + primary := exactSchemaCommand(root, "item get") + legacy := exactSchemaCommand(root, "item legacy") + older := exactSchemaCommand(root, "item older") + AnnotateRuntimeCompatibilityEquivalence(primary, legacy, RuntimeCompatibilityEquivalence{ + ID: "item-get-legacy-v1", Reason: "Reviewed first compatibility contract.", Reviewed: true, + }) + + defer func() { + if recovered := recover(); recovered == nil { + t.Fatal("conflicting compatibility review silently overwrote the existing marker") + } + }() + AnnotateRuntimeCompatibilityEquivalence(primary, older, RuntimeCompatibilityEquivalence{ + ID: "item-get-older-v1", Reason: "Conflicting compatibility contract.", Reviewed: true, + }) +} + +func compatibilityPrimaryRunE(*cobra.Command, []string) error { return nil } + +func compatibilityAliasRunE(*cobra.Command, []string) error { return nil } + func TestBindEffectiveCommandRegistryIgnoresLazilyMaterializedHelpFlag(t *testing.T) { root := commandRegistryTestRoot("item get", "item legacy") primary := exactSchemaCommand(root, "item get") alias := exactSchemaCommand(root, "item legacy") alias.Hidden = true + annotateTestCompatibilityPair(primary, alias) // Cobra does this only for the command selected by Execute. Binding after // parsing must remain independent of whether the primary or compatibility // path was selected first. @@ -278,6 +371,7 @@ func TestBindEffectiveCommandRegistryCompatibilityGateIsOrderIndependentOfCanoni root := commandRegistryTestRoot("item get", "item legacy") primary := exactSchemaCommand(root, "item get") alias := exactSchemaCommand(root, "item legacy") + annotateTestCompatibilityPair(primary, alias) primary.Flags().String("query", "", "query") alias.Flags().String("query", "", "query") AnnotateRuntimeFlagFormat(primary, "query", "native-format") @@ -339,12 +433,14 @@ func TestBindEffectiveCommandRegistryTreatsManualParameterHintsAsCanonicalProjec primary := exactSchemaCommand(root, "item get") alias := exactSchemaCommand(root, "item legacy") alias.Hidden = true + annotateTestCompatibilityPair(primary, alias) primary.Flags().Bool("include-archived", false, "include archived items") alias.Flags().Bool("include-archived", false, "include archived items") required := false if err := annotateManualSchemaParameter( - primary.Flags().Lookup("include-archived"), + primary, + "include-archived", ManualSchemaParameterHint{Required: &required}, "Reviewed canonical projection may lower the Agent-facing required value.", ); err != nil { @@ -359,7 +455,7 @@ func TestBindEffectiveCommandRegistryTreatsManualParameterHintsAsCanonicalProjec if _, err := BindEffectiveCommandRegistry(root, effective); err != nil { t.Fatalf("manual canonical projection must not create compatibility-leaf executable drift: %v", err) } - if _, _, ok, err := runtimeManualSchemaParameter(alias.Flags().Lookup("include-archived")); err != nil || ok { + if _, _, ok, err := runtimeManualSchemaParameter(alias, "include-archived"); err != nil || ok { t.Fatalf("manual projection was copied to compatibility leaf: present=%t err=%v", ok, err) } } @@ -522,6 +618,7 @@ func TestBindEffectiveCommandRegistryPrefersExactNameOverCobraAlias(t *testing.T compatibility := exactSchemaCommand(root, "item fetch") primary.Aliases = []string{"fetch"} compatibility.Hidden = true + annotateTestCompatibilityPair(primary, compatibility) effective := mustEffectiveCommandRegistry(t, []CommandSpec{{ CanonicalPath: "item.get_item", PrimaryCLIPath: "item get", @@ -826,3 +923,11 @@ func mustEffectiveCommandRegistry(t *testing.T, commands []CommandSpec) Effectiv } return registry } + +func annotateTestCompatibilityPair(primary, alias *cobra.Command) { + AnnotateRuntimeCompatibilityEquivalence(primary, alias, RuntimeCompatibilityEquivalence{ + ID: "test-compatibility-pair-v1", + Reason: "The focused test explicitly reviews these independently registered leaves as semantically equivalent.", + Reviewed: true, + }) +} diff --git a/internal/cli/schema_command_registry.go b/internal/cli/schema_command_registry.go index 42cfea1d..b5913c1f 100644 --- a/internal/cli/schema_command_registry.go +++ b/internal/cli/schema_command_registry.go @@ -405,6 +405,9 @@ func BuildEffectiveCommandRegistry(root *cobra.Command) (EffectiveCommandRegistr if root == nil { return EffectiveCommandRegistry{}, fmt.Errorf("build effective Schema command registry: root is nil") } + if err := ValidateEmbeddedSchemaParameterBindings(); err != nil { + return EffectiveCommandRegistry{}, fmt.Errorf("validate reviewed Schema parameter bindings: %w", err) + } reviewed, err := loadEmbeddedCommandRegistry() if err != nil { return EffectiveCommandRegistry{}, err diff --git a/internal/cli/schema_command_registry.json b/internal/cli/schema_command_registry.json index f19a08f7..7bdbcf13 100644 --- a/internal/cli/schema_command_registry.json +++ b/internal/cli/schema_command_registry.json @@ -1702,13 +1702,17 @@ "canonical_path": "minutes.list_my_hotwords", "cli_path": "minutes hot-word list" }, + { + "canonical_path": "minutes.list_accessible_minutes", + "cli_path": "minutes list all" + }, { "canonical_path": "minutes.list_by_keyword_and_time_range", - "cli_path": "minutes list mine", - "aliases": [ - "minutes list all", - "minutes list shared" - ] + "cli_path": "minutes list mine" + }, + { + "canonical_path": "minutes.list_shared_minutes", + "cli_path": "minutes list shared" }, { "canonical_path": "minutes.create_mind_graph", diff --git a/internal/cli/schema_command_registry_contract_test.go b/internal/cli/schema_command_registry_contract_test.go index 5fe6ede5..772d05b1 100644 --- a/internal/cli/schema_command_registry_contract_test.go +++ b/internal/cli/schema_command_registry_contract_test.go @@ -152,3 +152,33 @@ func TestNewCommandRegistryRejectsAliasAndCanonicalCollisions(t *testing.T) { }) } } + +func TestMinutesFixedScopeLeavesRemainDistinctRegistryIdentities(t *testing.T) { + registry, err := loadEmbeddedCommandRegistry() + if err != nil { + t.Fatalf("load embedded command registry: %v", err) + } + want := map[string]string{ + "minutes list all": "minutes.list_accessible_minutes", + "minutes list mine": "minutes.list_by_keyword_and_time_range", + "minutes list shared": "minutes.list_shared_minutes", + } + seen := map[string]bool{} + for path, canonical := range want { + spec, ok := registry.ByCLIPath[path] + if !ok { + t.Errorf("registry path %q is missing", path) + continue + } + if spec.CanonicalPath != canonical { + t.Errorf("registry path %q canonical = %q, want %q", path, spec.CanonicalPath, canonical) + } + if len(spec.Aliases) != 0 { + t.Errorf("registry path %q aliases = %v, want none for fixed request scope", path, spec.Aliases) + } + seen[spec.CanonicalPath] = true + } + if len(seen) != len(want) { + t.Fatalf("minutes fixed-scope leaves collapsed to %d canonical identities, want %d", len(seen), len(want)) + } +} diff --git a/internal/cli/schema_completeness.go b/internal/cli/schema_completeness.go index 7bea5a1d..92ad38a4 100644 --- a/internal/cli/schema_completeness.go +++ b/internal/cli/schema_completeness.go @@ -85,11 +85,27 @@ func ValidateEmbeddedRuntimeSchemaCompleteness(root *cobra.Command) error { if _, err := ApplyEmbeddedManualSchemaHints(root); err != nil { return err } + effective, err := BuildEffectiveCommandRegistry(root) + if err != nil { + return err + } + bound, err := BindEffectiveCommandRegistry(root, effective) + if err != nil { + return err + } + return validateResolvedRuntimeSchemaCompleteness(root, bound) +} + +// validateResolvedRuntimeSchemaCompleteness checks the executable tree against +// the exact BoundCommandRegistry produced by the active resolution pass. It +// must not discover or bind commands again: Catalog generation uses this gate +// to ensure every pre-delivery check observes the same identity candidate. +func validateResolvedRuntimeSchemaCompleteness(root *cobra.Command, bound BoundCommandRegistry) error { exclusions, err := EmbeddedRuntimeSchemaExclusions() if err != nil { return err } - report := RuntimeSchemaCompleteness(root, exclusions) + report := runtimeSchemaCompletenessFromBound(root, exclusions, bound) if len(report.DeliveryErrors) > 0 { return fmt.Errorf("invalid effective Schema command registry: %s", strings.Join(report.DeliveryErrors, "; ")) } @@ -105,23 +121,19 @@ func ValidateEmbeddedRuntimeSchemaCompleteness(root *cobra.Command) error { return nil } -// ValidateSchemaCatalogDeliveryCompleteness enforces that every public Cobra -// leaf is queryable from the newly built Catalog snapshot (or has an exact, -// reviewed exclusion). It deliberately validates the in-memory build result, -// never the previously embedded Catalog, so stale generated data cannot prove -// its own completeness. -func ValidateSchemaCatalogDeliveryCompleteness(root *cobra.Command, snapshot SchemaCatalogSnapshot) error { - if _, err := ApplyEmbeddedManualSchemaHints(root); err != nil { - return err - } +// validateResolvedSchemaCatalogDeliveryCompleteness compares the serialized +// delivery with the exact bound registry that produced its SchemaRegistry. +// This closes the final path where completeness used to rebuild identity from +// Cobra after the source registry had already passed generation gates. +func validateResolvedSchemaCatalogDeliveryCompleteness(root *cobra.Command, bound BoundCommandRegistry, snapshot SchemaCatalogSnapshot) error { exclusions, err := EmbeddedRuntimeSchemaExclusions() if err != nil { return err } - return validateSchemaCatalogDeliveryCompleteness(root, snapshot, exclusions) + return validateSchemaCatalogDeliveryCompletenessFromBound(root, bound, snapshot, exclusions) } -func validateSchemaCatalogDeliveryCompleteness(root *cobra.Command, snapshot SchemaCatalogSnapshot, exclusions []RuntimeSchemaExclusion) error { +func validateSchemaCatalogDeliveryCompletenessFromBound(root *cobra.Command, bound BoundCommandRegistry, snapshot SchemaCatalogSnapshot, exclusions []RuntimeSchemaExclusion) error { encoded, err := json.Marshal(snapshot) if err != nil { return fmt.Errorf("encode final Schema Catalog for delivery validation: %w", err) @@ -130,7 +142,7 @@ func validateSchemaCatalogDeliveryCompleteness(root *cobra.Command, snapshot Sch if err != nil { return fmt.Errorf("load final Schema Catalog through production loader: %w", err) } - report := schemaCatalogDeliveryCompletenessAgainstLoaded(root, loaded, exclusions) + report := schemaCatalogDeliveryCompletenessAgainstLoadedAndBound(root, loaded, exclusions, bound) if len(report.DeliveryErrors) > 0 { return fmt.Errorf("invalid final Schema Catalog delivery: %s", strings.Join(report.DeliveryErrors, "; ")) } @@ -151,11 +163,11 @@ func validateSchemaCatalogDeliveryCompleteness(root *cobra.Command, snapshot Sch // reviewed CommandRegistry or have a reviewed exclusion with a non-empty // reason. func RuntimeSchemaCompleteness(root *cobra.Command, exclusions []RuntimeSchemaExclusion) RuntimeSchemaCompletenessReport { - coveredPaths := map[string]bool{} entries, err := collectRuntimeSchemaEntries(root) if err != nil { return RuntimeSchemaCompletenessReport{DeliveryErrors: []string{err.Error()}} } + coveredPaths := map[string]bool{} for _, entry := range entries { addSchemaCoveredPath(coveredPaths, entry.CLIPath) addSchemaCoveredPath(coveredPaths, entry.PrimaryCLIPath) @@ -166,20 +178,22 @@ func RuntimeSchemaCompleteness(root *cobra.Command, exclusions []RuntimeSchemaEx return runtimeSchemaCompletenessAgainstPaths(root, exclusions, coveredPaths) } -// SchemaCatalogDeliveryCompleteness scans the real command tree against paths -// present in the final generated snapshot. A runtime annotation alone is not -// sufficient: the command must belong to the EffectiveCommandRegistry and be -// addressable through its primary CLI path or an alias. -func SchemaCatalogDeliveryCompleteness(root *cobra.Command, snapshot SchemaCatalogSnapshot, exclusions []RuntimeSchemaExclusion) RuntimeSchemaCompletenessReport { - loaded, err := loadSchemaCatalogSnapshot(snapshot) - if err != nil { - return RuntimeSchemaCompletenessReport{DeliveryErrors: []string{err.Error()}} +func runtimeSchemaCompletenessFromBound(root *cobra.Command, exclusions []RuntimeSchemaExclusion, bound BoundCommandRegistry) RuntimeSchemaCompletenessReport { + coveredPaths := map[string]bool{} + for _, command := range bound.Commands { + if command.Visibility != SchemaVisibilityPublic { + continue + } + addSchemaCoveredPath(coveredPaths, command.PrimaryCLIPath) + for _, alias := range command.Aliases { + addSchemaCoveredPath(coveredPaths, alias) + } } - return schemaCatalogDeliveryCompletenessAgainstLoaded(root, loaded, exclusions) + return runtimeSchemaCompletenessAgainstPaths(root, exclusions, coveredPaths) } -func schemaCatalogDeliveryCompletenessAgainstLoaded(root *cobra.Command, loaded loadedSchemaCatalog, exclusions []RuntimeSchemaExclusion) RuntimeSchemaCompletenessReport { - expectedByPath, mappingErrors := runtimeSchemaIdentityByCLIPath(root) +func schemaCatalogDeliveryCompletenessAgainstLoadedAndBound(root *cobra.Command, loaded loadedSchemaCatalog, exclusions []RuntimeSchemaExclusion, bound BoundCommandRegistry) RuntimeSchemaCompletenessReport { + expectedByPath, mappingErrors := runtimeSchemaIdentityByBound(bound) return schemaCatalogDeliveryCompletenessAgainstLoadedAndIdentity(root, loaded, exclusions, expectedByPath, mappingErrors) } @@ -376,28 +390,27 @@ type runtimeSchemaResolvedIdentity struct { Source string } -func runtimeSchemaIdentityByCLIPath(root *cobra.Command) (map[string]runtimeSchemaResolvedIdentity, []string) { +func runtimeSchemaIdentityByBound(bound BoundCommandRegistry) (map[string]runtimeSchemaResolvedIdentity, []string) { identityByPath := map[string]runtimeSchemaResolvedIdentity{} var conflicts []string - entries, err := collectRuntimeSchemaEntries(root) - if err != nil { - return identityByPath, []string{err.Error()} - } - for _, entry := range entries { - canonical := strings.TrimSpace(entry.ProductID + "." + entry.ToolName) - paths := append([]string{entry.PrimaryCLIPath, entry.CLIPath}, entry.Aliases...) + for _, command := range bound.Commands { + if command.Visibility != SchemaVisibilityPublic { + continue + } + canonical := strings.TrimSpace(command.CanonicalPath) + paths := append([]string{command.PrimaryCLIPath}, command.Aliases...) for _, rawPath := range paths { path := normalizeSchemaCLIPath(rawPath) - if path == "" || canonical == "." { + if path == "" || canonical == "" { continue } if existing := identityByPath[path]; existing.CanonicalPath != "" && existing.CanonicalPath != canonical { - conflicts = append(conflicts, fmt.Sprintf("runtime Schema path %q belongs to both %s and %s", path, existing.CanonicalPath, canonical)) + conflicts = append(conflicts, fmt.Sprintf("bound Schema path %q belongs to both %s and %s", path, existing.CanonicalPath, canonical)) continue } identityByPath[path] = runtimeSchemaResolvedIdentity{ CanonicalPath: canonical, - Source: strings.TrimSpace(entry.Source), + Source: strings.TrimSpace(command.Source), } } } diff --git a/internal/cli/schema_completeness_test.go b/internal/cli/schema_completeness_test.go index 3522adac..eac41762 100644 --- a/internal/cli/schema_completeness_test.go +++ b/internal/cli/schema_completeness_test.go @@ -149,6 +149,7 @@ func TestSchemaCatalogDeliveryCompletenessAcceptsDeliveredAlias(t *testing.T) { product := &cobra.Command{Use: "sample"} current := &cobra.Command{Use: "current", Hidden: true, Run: func(*cobra.Command, []string) {}} legacy := &cobra.Command{Use: "legacy", Run: func(*cobra.Command, []string) {}} + annotateTestCompatibilityPair(current, legacy) AttachRuntimeSchema(current, "sample", "current", "test") AttachRuntimeSchema(legacy, "sample", "current", "test") product.AddCommand(current, legacy) diff --git a/internal/cli/schema_constraints_runtime.go b/internal/cli/schema_constraints_runtime.go index 3b884a31..1292ecd0 100644 --- a/internal/cli/schema_constraints_runtime.go +++ b/internal/cli/schema_constraints_runtime.go @@ -5,6 +5,20 @@ package cli func init() { + RegisterRuntimeSchemaConstraints("aitable.export_data", RuntimeSchemaConstraints{ + MutuallyExclusive: [][]string{ + {"task-id", "scope"}, + {"task-id", "export-format"}, + {"task-id", "table-id"}, + {"task-id", "view-id"}, + }, + RequireOneOf: [][]string{ + {"scope", "task-id"}, + {"export-format", "task-id"}, + }, + RequireTogether: [][]string{{"scope", "export-format"}}, + }) + registerRequireOneOf("aitable.field_update", "name", "config", "ai-config") registerRequireOneOf("aitable.view_update_aggregate", "json", "field-id", "clear-field-id") registerRequireTogether("aitable.view_update_aggregate", "field-id", "action") RegisterRuntimeSchemaConstraints("aitable.view_update_card", RuntimeSchemaConstraints{ @@ -18,6 +32,7 @@ func init() { registerRequireTogether("aitable.view_update_field_widths", "field-id", "width") registerRequireOneOf("aitable.view_update_timebar", "json", "start-field", "end-field", "display-field-id", "timeline-scale", "official-holiday", "color-configs") registerRequireOneOf("aitable.table_update", "name", "description", "record-name-key") + registerRequireOneOf("attendance.vacation_update_type", "name", "unit", "paid", "per-hours", "when-can-leave", "visibility-rules") registerRequireTogether("calendar.create_calendar_event", "recurrence-type", "recurrence-interval", "recurrence-range-type") registerRequireOneOf("calendar.query_busy_status", "users", "rooms") registerRequireTogether("calendar.update_calendar_event", "recurrence-type", "recurrence-interval", "recurrence-range-type") diff --git a/internal/cli/schema_dry_run_capabilities.go b/internal/cli/schema_dry_run_capabilities.go index 7c91f6a9..63712be2 100644 --- a/internal/cli/schema_dry_run_capabilities.go +++ b/internal/cli/schema_dry_run_capabilities.go @@ -17,486 +17,14 @@ type dryRunCapabilityGroup struct { CanonicalPaths []string } -// reviewedDryRunCapabilityGroups is a versioned authoring input, not generated -// at runtime. The initial candidates were produced by the exhaustive real-Cobra -// audit and grouped by their observed preview contract, then committed for -// review. CI consumes this list but never mutates it. +// reviewedDryRunCapabilityGroups contains only command-owned preview paths. +// Inheriting the root --dry-run flag or reaching the generic EchoRunner is not +// evidence of a stable capability and must never add a command to this list. +// CI executes each selected example and compares the observed preview kind to +// this reviewed declaration. var reviewedDryRunCapabilityGroups = []dryRunCapabilityGroup{ - {PreviewKind: DryRunPreviewInvocation, CanonicalPaths: []string{ - "aisearch.enterprise_person_search", - "aisearch.search_enterprise", - "aisearch.search_enterprise_behavior", - "aitable.advperm_disable", - "aitable.advperm_enable", - "aitable.advperm_role_create", - "aitable.advperm_role_get", - "aitable.advperm_role_list", - "aitable.advperm_role_update", - "aitable.attachment_upload", - "aitable.base_copy", - "aitable.base_create", - "aitable.base_get", - "aitable.base_get_primary_doc_id", - "aitable.base_list", - "aitable.base_search", - "aitable.base_update", - "aitable.chart_create", - "aitable.chart_get", - "aitable.chart_share_get", - "aitable.chart_share_update", - "aitable.chart_update", - "aitable.chart_widgets_example", - "aitable.create", - "aitable.dashboard_arrange", - "aitable.dashboard_config_example", - "aitable.dashboard_create", - "aitable.dashboard_get", - "aitable.dashboard_share_get", - "aitable.dashboard_share_update", - "aitable.dashboard_update", - "aitable.export_data", - "aitable.field_create", - "aitable.field_get", - "aitable.field_list", - "aitable.field_search_options", - "aitable.field_update", - "aitable.form_create", - "aitable.form_field_hide", - "aitable.form_field_list", - "aitable.form_field_update", - "aitable.form_list", - "aitable.form_questions_create", - "aitable.form_share_get", - "aitable.form_share_update", - "aitable.form_update", - "aitable.import_data", - "aitable.import_upload", - "aitable.info", - "aitable.list", - "aitable.query_records", - "aitable.record_batch_update", - "aitable.record_create", - "aitable.record_get", - "aitable.record_history_list", - "aitable.record_primary_doc_create", - "aitable.record_primary_doc_get", - "aitable.record_query_empty", - "aitable.record_share_url", - "aitable.record_update", - "aitable.record_upsert", - "aitable.search", - "aitable.section_create", - "aitable.section_delete", - "aitable.section_list_empty", - "aitable.section_list_nodes", - "aitable.section_move_node", - "aitable.section_rename", - "aitable.section_reorder", - "aitable.table_create", - "aitable.table_get", - "aitable.table_list", - "aitable.table_update", - "aitable.template_search", - "aitable.view_create", - "aitable.view_duplicate", - "aitable.view_get_frozen_cols", - "aitable.view_get_lock", - "aitable.view_get_row_height", - "aitable.view_list", - "aitable.view_lock", - "aitable.view_update_fill_color_rule", - "aitable.view_update_filter", - "aitable.view_update_frozen_cols", - "aitable.view_update_group", - "aitable.view_update_name", - "aitable.view_update_row_height", - "aitable.view_update_sort", - "aitable.view_update_visible_fields", - "aitable.workflow_enable", - "aitable.workflow_get", - "aitable.workflow_list", - "attendance.adjustment_get", - "attendance.adjustment_search", - "attendance.approve_list", - "attendance.approve_templates", - "attendance.batch_get_employee_shifts", - "attendance.check_record", - "attendance.check_result", - "attendance.checkin_records", - "attendance.class_get", - "attendance.class_search", - "attendance.get_attendance_summary", - "attendance.get_user_attendance_record", - "attendance.globalsetting_get", - "attendance.group_filtered_get", - "attendance.group_get", - "attendance.group_search", - "attendance.overtime_get", - "attendance.overtime_search", - "attendance.query_attendance_group_or_rules", - "attendance.report_columns", - "attendance.report_query_data", - "attendance.report_query_leave", - "attendance.schedule_get", - "attendance.selfsetting_get", - "attendance.vacation_balance", - "attendance.vacation_records", - "attendance.vacation_types", - "calendar.add_attachments", - "calendar.add_calendar_participant", - "calendar.add_meeting_room", - "calendar.create_calendar_event", - "calendar.delete_calendar_event", - "calendar.delete_meeting_room", - "calendar.get_calendar", - "calendar.get_calendar_detail", - "calendar.get_calendar_participants", - "calendar.list_acls", - "calendar.list_calendar_events", - "calendar.list_calendars", - "calendar.list_meeting_room_groups", - "calendar.list_suggested_event_times", - "calendar.remove_calendar_participant", - "calendar.respond", - "calendar.search_calendar", - "calendar.update_calendar_event", - "chat.add_custom_group_role", - "chat.add_emoji_reaction", - "chat.add_group_member", - "chat.add_message_favorite", - "chat.add_robot_to_group", - "chat.add_text_emotion", - "chat.combine_forward_messages", - "chat.create_and_send_card", - "chat.create_smart_conv_category", - "chat.create_text_emotion", - "chat.dismiss_group", - "chat.forward_message", - "chat.forward_topic", - "chat.get_conv_info_by_group_id", - "chat.get_conversation_info", - "chat.get_group_invite_url", - "chat.list_conversation_message_v2", - "chat.list_conversations_by_category", - "chat.list_custom_group_roles", - "chat.list_group_bots", - "chat.list_individual_chat_message", - "chat.list_message_favorites", - "chat.list_messages_by_ids", - "chat.list_owned_or_admin_groups", - "chat.list_pin_messages", - "chat.list_special_focus_messages", - "chat.list_top_conversations", - "chat.list_topic_replies", - "chat.list_user_define_conv_categories", - "chat.query_custom_user_roles", - "chat.query_message_send_status", - "chat.query_msg_read_status", - "chat.quit_group", - "chat.recall_message", - "chat.recall_robot_message", - "chat.remove_custom_group_role", - "chat.remove_custom_user_roles", - "chat.remove_emoji_reaction", - "chat.remove_message_favorite", - "chat.remove_robot_in_group", - "chat.remove_text_emotion", - "chat.search_at_me_message", - "chat.search_bots", - "chat.search_common_groups", - "chat.search_groups", - "chat.search_messages", - "chat.search_messages_by_keyword", - "chat.search_messages_by_sender", - "chat.search_messages_by_time_range", - "chat.search_my_robots", - "chat.send_message_by_custom_robot", - "chat.send_personal_message", - "chat.send_robot_message", - "chat.set_custom_user_roles", - "chat.set_group_member_mute_list", - "chat.set_group_mute", - "chat.set_pin_message", - "chat.set_top_conversation", - "chat.transfer_group_owner", - "chat.unread_message_conversation_list", - "chat.unset_pin_message", - "chat.update_conv_member_roles", - "chat.update_custom_group_role", - "chat.update_group_icon", - "chat.update_group_name", - "chat.update_group_settings", - "chat.update_notification_off", - "chat.update_show_history_msg_option", - "chat.update_streaming_card", - "contact.get_authorized_emp_rosterInfo", - "contact.get_current_user_profile", - "contact.get_dept_info_by_dept_id", - "contact.get_dept_members_by_deptId", - "contact.get_sub_depts_by_dept_id", - "contact.get_user_info_by_user_ids", - "contact.list_authorized_roster_fields", - "contact.list_my_followings", - "contact.query_dismission_employee_list", - "contact.search_contact_by_key_word", - "contact.search_dept_by_keyword", - "contact.search_user_by_mobile", - "dev.search_open_platform_docs_rag", - "devdoc.search_open_platform_docs_rag", - "ding.recall_ding_message", - "ding.send_ding_message", - "doc.add_permission", - "doc.copy_document", - "doc.create_comment", - "doc.create_document", - "doc.create_file", - "doc.create_folder", - "doc.create_inline_comment", - "doc.download_doc_attachment", - "doc.get_document_content", - "doc.get_document_info", - "doc.insert_document_block", - "doc.list_comments", - "doc.list_document_blocks", - "doc.list_nodes", - "doc.list_permission", - "doc.move_document", - "doc.remove_permission", - "doc.rename_document", - "doc.reply_comment", - "doc.search_documents", - "doc.template_apply", - "doc.template_list", - "doc.template_search", - "doc.update_comment", - "doc.update_document_block", - "doc.update_permission", - "doc.version_list", - "doc.version_save", - "drive.add_permission", - "drive.commit_upload", - "drive.copy_document", - "drive.create_folder", - "drive.create_shortcut", - "drive.get_node_stats", - "drive.get_upload_info", - "drive.list_files", - "drive.list_permission", - "drive.list_spaces", - "drive.move_document", - "drive.permission_remove", - "drive.permission_update", - "drive.publish_get", - "drive.recent", - "drive.recycle_list", - "drive.recycle_restore", - "drive.rename_document", - "live.get_my_lives", - "mail.batch_delete_message", - "mail.batch_delete_user_mail_contacts", - "mail.batch_move_message", - "mail.create_draft", - "mail.create_mail_folder", - "mail.create_user_mail_contact", - "mail.create_user_message_template", - "mail.delete_mail_folder", - "mail.delete_user_message_template", - "mail.get_email_by_message_id", - "mail.get_thread", - "mail.get_user_message_template", - "mail.list_emails", - "mail.list_folders", - "mail.list_mail_attachments", - "mail.list_tags", - "mail.list_user_mail_contacts", - "mail.list_user_mailboxes", - "mail.list_user_message_templates", - "mail.search_emails", - "mail.search_mail_users", - "mail.send_draft", - "mail.send_email", - "mail.update_draft", - "mail.update_mail_folder", - "mail.update_user_mail_contact", - "mail.update_user_message_template", - "minutes.add_member_permission", - "minutes.add_personal_hot_word", - "minutes.batch_get_minutes_details", - "minutes.cancel_upload_session", - "minutes.complete_upload_session", - "minutes.create_mind_graph", - "minutes.create_speaker_summary", - "minutes.create_upload_session", - "minutes.get_minutes_ai_summary", - "minutes.get_minutes_basic_info", - "minutes.get_minutes_keywords", - "minutes.get_minutes_transcription", - "minutes.get_speaker_summary", - "minutes.list_by_keyword_and_time_range", - "minutes.list_minutes_todos", - "minutes.list_my_hotwords", - "minutes.query_mind_graph_status", - "minutes.query_minutes_audio_url", - "minutes.query_minutes_by_tag_id", - "minutes.query_user_tag_list", - "minutes.record_pause", - "minutes.record_resume", - "minutes.record_start", - "minutes.record_stop", - "minutes.remove_member_permission", - "minutes.replace_minutes_text", - "minutes.replace_speaker", - "minutes.update_minutes_summary", - "minutes.update_minutes_title", - "oa.approve_processInstance", - "oa.dingflow_comments", - "oa.get_done_tasks", - "oa.get_noticed_instances", - "oa.get_processInstance_detail", - "oa.get_processInstance_records", - "oa.get_submitted_instances", - "oa.list_initiated_instances", - "oa.list_pending_approvals", - "oa.list_pending_tasks", - "oa.list_user_visible_process", - "oa.oa_cc_noticer", - "oa.redirect_task", - "oa.reject_processInstance", - "report.create_report", - "report.get_available_report_templates", - "report.get_received_report_list", - "report.get_report_entry_details", - "report.get_report_statistics_by_id", - "report.get_send_report_list", - "report.get_template_details_by_name", - "sheet.add_dimension", - "sheet.append_rows", - "sheet.batch_update", - "sheet.chart_create", - "sheet.chart_list", - "sheet.chart_update", - "sheet.clear_range", - "sheet.copy_sheet", - "sheet.create_cond_format", - "sheet.create_filter", - "sheet.create_filter_view", - "sheet.create_float_image", - "sheet.create_pivot_table", - "sheet.create_sheet", - "sheet.create_workspace_sheet", - "sheet.delete_dimension", - "sheet.delete_dropdown_lists", - "sheet.delete_filter", - "sheet.delete_filter_view", - "sheet.delete_float_image", - "sheet.delete_sheet", - "sheet.fill_range", - "sheet.filter_clear_criteria", - "sheet.filter_view_delete_criteria", - "sheet.filter_view_update_criteria", - "sheet.find_cells", - "sheet.get_all_sheets", - "sheet.get_cond_format", - "sheet.get_dropdown_lists", - "sheet.get_filter", - "sheet.get_filter_views", - "sheet.get_float_image", - "sheet.get_range_as_csv", - "sheet.group_dimension", - "sheet.hide_gridline", - "sheet.info", - "sheet.insert_dimension", - "sheet.list_float_images", - "sheet.list_pivot_tables", - "sheet.merge_cells", - "sheet.move_dimension", - "sheet.range_batch_clear", - "sheet.range_batch_set_style", - "sheet.range_copy_to", - "sheet.range_move_to", - "sheet.range_set_style", - "sheet.range_update", - "sheet.replace_all", - "sheet.set_dropdown_lists", - "sheet.set_range_from_csv", - "sheet.show_gridline", - "sheet.sort_filter", - "sheet.sort_range", - "sheet.table_get", - "sheet.table_put", - "sheet.template_apply", - "sheet.template_list", - "sheet.template_search", - "sheet.ungroup_dimension", - "sheet.unmerge_range", - "sheet.update_cond_format", - "sheet.update_dimension", - "sheet.update_filter", - "sheet.update_filter_view", - "sheet.update_float_image", - "sheet.update_pivot_table", - "sheet.update_sheet", - "todo.add_task_executors", - "todo.add_task_participants", - "todo.add_todo_comment", - "todo.add_todo_reminder", - "todo.create_personal_sub_todo", - "todo.create_personal_todo", - "todo.get_user_todos_in_current_org", - "todo.list_todo_comment", - "todo.remove_task_executors", - "todo.remove_task_participants", - "todo.reset_todo_reminder", - "todo.update_todo_done_status", - "todo.update_todo_task", - "wiki.add_member", - "wiki.create_file", - "wiki.create_wikiSpace", - "wiki.get_wikiSpace", - "wiki.list_member", - "wiki.list_nodes", - "wiki.list_wikiSpaces", - "wiki.node_copy", - "wiki.node_move", - "wiki.node_search", - "wiki.remove_member", - "wiki.search_wikiSpaces", - "wiki.update_member", - }}, {PreviewKind: DryRunPreviewRequest, CanonicalPaths: []string{ - "dev.add_dev_app_members", - "dev.apply_dev_app_permissions", - "dev.create_dev_app", - "dev.create_dev_app_version", - "dev.delete_dev_app", - "dev.disable_dev_app", - "dev.disable_dev_app_robot", - "dev.enable_dev_app", - "dev.enable_dev_app_robot", - "dev.get_dev_app", - "dev.get_dev_app_credentials", - "dev.get_dev_app_version_detail", - "dev.get_dev_app_version_status", - "dev.get_extension_robot_config", - "dev.get_extension_webapp_config", - "dev.list_dev_app", - "dev.list_dev_app_events", - "dev.list_dev_app_members", - "dev.list_dev_app_permissions", - "dev.list_dev_app_versions", - "dev.publish_dev_app_version", - "dev.query_robot_create_result", - "dev.remove_dev_app_members", - "dev.remove_dev_app_permissions", - "dev.set_extension_robot_config", - "dev.set_extension_webapp_config", - "dev.submit_robot_create_task", - "dev.subscribe_dev_app_events", - "dev.unsubscribe_dev_app_events", - "dev.update_dev_app", - "dev.update_dev_app_security_config", "event.stop", - "pat.batch_grant", }}, {PreviewKind: DryRunPreviewPlan, CanonicalPaths: []string{ "chat.download_media", @@ -582,7 +110,8 @@ func reviewedDryRunCapability(canonical string) (*DryRunSpec, error) { } // ValidateReviewedDryRunCapabilityDelivery proves that every positive source -// entry reaches the final typed registry and no serializer invents one. +// entry reaches the final typed registry and no serializer invents one. It +// deliberately imposes no minimum capability count or all-command coverage. func ValidateReviewedDryRunCapabilityDelivery(registry SchemaRegistry) error { expected, err := loadReviewedDryRunCapabilities() if err != nil { diff --git a/internal/cli/schema_hints/README.md b/internal/cli/schema_hints/README.md index 1f5759ab..7556a2ca 100644 --- a/internal/cli/schema_hints/README.md +++ b/internal/cli/schema_hints/README.md @@ -23,11 +23,13 @@ The Agent metadata generator also reads the committed `internal/cli/schema_mcp_m 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 selection contract for every public -tool: `use_when`, `avoid_when`, safe examples, `interface_mode`, availability, -and the reason for local, composite, or unavailable implementations. These -values are build inputs; the generator must not derive them from the previous -Catalog. +`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 @@ -56,9 +58,9 @@ An entry containing only `interface_ref` participates in interface projection bu `interface_mode` and `availability` are orthogonal reviewed fields. `interface_mode` has exactly three values: -- `mcp`: exactly one fixed `interface_ref` implements the command. -- `composite`: multiple RPC/local steps implement the command; a singular ref would be misleading. -- `local`: the command only changes local process or policy state. +- `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 @@ -74,9 +76,10 @@ 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 provenance to `selection-review.json` or -`runtime-surface-completeness.json`. This makes newly added CLI tools explicit -without rewriting historical MCP evidence. +availability disposition and retain reviewed provenance to +`selection-review.json`, `zz-interface-disposition-review.json`, 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, so a candidate may raise or diff --git a/internal/cli/schema_hints/runtime-surface-completeness.json b/internal/cli/schema_hints/runtime-surface-completeness.json index 7f2dfb61..61a56707 100644 --- a/internal/cli/schema_hints/runtime-surface-completeness.json +++ b/internal/cli/schema_hints/runtime-surface-completeness.json @@ -7,7 +7,7 @@ "channel": "open-source" }, "coverage": { - "source_tools": 559, + "source_tools": 561, "matched_tools": 71 }, "tools": { @@ -26,9 +26,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_delete": { @@ -46,9 +43,6 @@ "risk": "high", "confirmation": "user_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_field_hide": { @@ -66,9 +60,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_field_list": { @@ -86,9 +77,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_field_update": { @@ -106,9 +94,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_get": { @@ -126,9 +111,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_list": { @@ -146,9 +128,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_questions_create": { @@ -166,9 +145,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_questions_delete": { @@ -186,9 +162,6 @@ "risk": "high", "confirmation": "user_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_share_get": { @@ -206,9 +179,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_share_update": { @@ -226,9 +196,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.form_update": { @@ -246,9 +213,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "aitable.record_batch_update": { @@ -266,9 +230,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.adjustment_get": { @@ -287,9 +248,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.adjustment_search": { @@ -310,9 +268,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.approve_list": { @@ -332,9 +287,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.approve_templates": { @@ -353,9 +305,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.boss_check": { @@ -374,9 +323,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.check_record": { @@ -395,9 +341,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.check_result": { @@ -415,9 +358,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.checkin_records": { @@ -437,9 +377,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.class_create": { @@ -457,9 +394,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.class_get": { @@ -478,9 +412,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.class_search": { @@ -501,9 +432,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.class_update": { @@ -523,9 +451,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.globalsetting_get": { @@ -544,9 +469,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.globalsetting_save": { @@ -564,9 +486,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_create": { @@ -586,9 +505,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_filtered_get": { @@ -608,9 +524,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_get": { @@ -630,9 +543,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_search": { @@ -654,9 +564,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_update": { @@ -676,9 +583,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.group_update_members": { @@ -698,9 +602,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.overtime_get": { @@ -719,9 +620,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.overtime_search": { @@ -742,9 +640,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.report_columns": { @@ -763,9 +658,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.report_query_data": { @@ -785,9 +677,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.report_query_leave": { @@ -807,9 +696,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.schedule_get": { @@ -827,9 +713,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.schedule_import": { @@ -847,9 +730,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.selfsetting_get": { @@ -870,9 +750,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.selfsetting_save": { @@ -895,9 +772,6 @@ "risk": "high", "confirmation": "user_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.vacation_balance": { @@ -922,9 +796,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.vacation_records": { @@ -944,9 +815,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.vacation_save_balance": { @@ -968,9 +836,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.vacation_types": { @@ -989,9 +854,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "attendance.vacation_update_type": { @@ -1013,9 +875,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.import_get": { @@ -1034,9 +893,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.template_apply": { @@ -1054,9 +910,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.template_list": { @@ -1074,9 +927,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.template_search": { @@ -1094,9 +944,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.version_list": { @@ -1114,9 +961,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.version_revert": { @@ -1134,9 +978,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "doc.version_save": { @@ -1154,9 +995,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.publish_get": { @@ -1175,9 +1013,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.publish_set": { @@ -1196,9 +1031,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.publish_unset": { @@ -1217,9 +1049,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.recent": { @@ -1238,9 +1067,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.recycle_list": { @@ -1260,9 +1086,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "drive.recycle_restore": { @@ -1282,9 +1105,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.batch_update": { @@ -1299,13 +1119,10 @@ "dws sheet batch-update --node --operations '[", "dws sheet batch-update --node --continue-on-error --operations '[...]'" ], - "effect": "write", - "risk": "medium", - "confirmation": "not_required", + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.chart_create": { @@ -1326,9 +1143,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.chart_delete": { @@ -1346,9 +1160,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.chart_list": { @@ -1370,9 +1181,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.chart_update": { @@ -1391,9 +1199,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.group_dimension": { @@ -1414,9 +1219,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.range_batch_clear": { @@ -1431,13 +1233,10 @@ "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": "write", - "risk": "medium", - "confirmation": "not_required", + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.template_apply": { @@ -1455,9 +1254,6 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "unknown", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.template_list": { @@ -1475,9 +1271,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.template_search": { @@ -1495,9 +1288,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false }, "sheet.ungroup_dimension": { @@ -1517,9 +1307,6 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "interface_mode": "local", - "availability": "available", - "interface_reason": "当前命令来自本地 Cobra 命令树或复合 helper,无固定 MCP interface_ref", "reviewed": false } } diff --git a/internal/cli/schema_hints/selection-review.json b/internal/cli/schema_hints/selection-review.json index d51a4e88..12e24bd7 100644 --- a/internal/cli/schema_hints/selection-review.json +++ b/internal/cli/schema_hints/selection-review.json @@ -8,7 +8,7 @@ "channel": "open-source" }, "coverage": { - "source_tools": 511 + "source_tools": 513 }, "tools": { "aisearch.enterprise_person_search": { @@ -497,7 +497,7 @@ "aitable.export_data": { "use_when": [ "第一步:创建任务(按 scope 传必要参数)", - "第一步:创建任务(按 scope 传必要参数)——注意:不要加 --format json!", + "第一步:创建任务时使用 --export-format 指定导出格式,并保持 --format json 作为结构化输出", "第二步:拿 taskId 继续轮询,直到返回 downloadUrl", "续等导出:拿到 downloadUrl 后再 curl 下载(见下方警告)" ], @@ -505,8 +505,8 @@ "需要创建、修改或删除数据时不要使用;本命令只用于“导出数据(不传 --task-id 创建新任务并等待,传入 --task-id 继续等待)”" ], "examples": [ - "dws aitable export data --base-id --scope table --table-id --format excel --timeout-ms 1000", - "dws aitable export data --base-id --task-id --timeout-ms 3000" + "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" @@ -1064,9 +1064,7 @@ ], "examples": [ "dws aitable view get aggregate --view-id VIEW_ID --format json # Grid" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_card": { "use_when": [ @@ -1078,9 +1076,7 @@ "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" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_field_widths": { "use_when": [ @@ -1091,9 +1087,7 @@ ], "examples": [ "dws aitable view get field-widths --view-id VIEW_ID --format json # Grid" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_fill_color_rule": { "use_when": [ @@ -1106,9 +1100,7 @@ "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" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_filter": { "use_when": [ @@ -1119,9 +1111,7 @@ ], "examples": [ "dws aitable view get filter --view-id VIEW_ID --format json # 所有" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_frozen_cols": { "use_when": [ @@ -1145,9 +1135,7 @@ ], "examples": [ "dws aitable view get group --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_lock": { "use_when": [ @@ -1184,9 +1172,7 @@ ], "examples": [ "dws aitable view get sort --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_timebar": { "use_when": [ @@ -1197,9 +1183,7 @@ ], "examples": [ "dws aitable view get timebar --view-id VIEW_ID --format json # Gantt" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_get_visible_fields": { "use_when": [ @@ -1210,9 +1194,7 @@ ], "examples": [ "dws aitable view get visible-fields --view-id VIEW_ID --format json" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "aitable.view_list": { "use_when": [ @@ -1253,8 +1235,10 @@ "examples": [ "dws aitable view update aggregate --view-id GRID_ID --field-id fldX --action SUM" ], - "interface_mode": "mcp", - "availability": "available" + "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": [ @@ -1267,8 +1251,10 @@ "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": "mcp", - "availability": "available" + "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": [ @@ -1281,8 +1267,10 @@ "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": "mcp", - "availability": "available" + "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": [ @@ -1394,8 +1382,10 @@ "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": "mcp", - "availability": "available" + "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": [ @@ -1490,9 +1480,7 @@ "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" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "attendance.get_user_attendance_record": { "use_when": [ @@ -2494,9 +2482,7 @@ "examples": [ "dws chat search --query \"项目冲刺\"", "dws chat search --query \"项目冲刺\" --limit 20 --cursor 0" - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "chat.search_messages": { "use_when": [ @@ -4735,8 +4721,10 @@ "dws drive list --help", "dws drive list --limit 20" ], - "interface_mode": "mcp", - "availability": "available" + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface." }, "drive.list_permission": { "use_when": [ @@ -4871,10 +4859,7 @@ "risk": "medium", "confirmation": "not_required", "idempotency": "non_idempotent", - "reviewed": true, - "interface_mode": "local", - "availability": "available", - "interface_reason": "命令由 CLI 编排个人事件订阅、本地 event bus 和 Stream 消费,不绑定为单一 pinned MCP RPC" + "reviewed": true }, "event.list": { "agent_summary": "列出当前支持的个人事件目录及其规则、状态和说明。", @@ -4931,10 +4916,7 @@ "risk": "low", "confirmation": "not_required", "idempotency": "idempotent", - "reviewed": true, - "interface_mode": "local", - "availability": "available", - "interface_reason": "命令聚合个人订阅控制面与本地 event bus/consume 状态,不绑定为单一 pinned MCP RPC" + "reviewed": true }, "event.stop": { "agent_summary": "取消个人事件订阅并停止对应本地消费。", @@ -4951,10 +4933,7 @@ "risk": "high", "confirmation": "user_required", "idempotency": "unknown", - "reviewed": true, - "interface_mode": "local", - "availability": "available", - "interface_reason": "命令编排取消个人订阅、停止本地 consume 和按需停止 event bus,不绑定为单一 pinned MCP RPC" + "reviewed": true }, "live.get_my_lives": { "use_when": [ @@ -5628,34 +5607,42 @@ "interface_mode": "mcp", "availability": "available" }, - "minutes.list_by_keyword_and_time_range": { + "minutes.list_accessible_minutes": { "use_when": [ - "1. 查看我的听记列表 — 提取 taskUuid", - "1b. 查看共享给我的听记", - "1c. 查看我有权限访问的所有听记(支持关键字和时间范围筛选)", - "从我创建的/我发起的听记里找XX", - "从我的听记里仅按关键词搜索(\"从我的听记里搜技术方案\")", - "从我的听记里按关键词 + 上月时间范围搜索(\"上月听记里有没有提到OKR\")", - "从我的听记里按关键词 + 今日时间范围搜索(\"帮我从今天听记里找需求评审\")", - "关键词 + 时间范围组合", - "别人给我的听记/共享听记/共享给我的", - "我创建的听记/我发起的听记/我自己录的听记", - "我可访问的听记/我能看到的听记/我有权限的听记/所有听记/全部听记", - "我的听记", - "我的听记里找XX", - "按关键词搜索", - "按关键词搜索共享听记", - "按时间范围搜索", - "某时间段内的听记/按时间查听记/按关键词查听记" + "查看当前用户有权限访问的全部听记", + "未限定创建来源时按关键词和时间范围搜索听记", + "我可访问的听记/我能看到的听记/所有听记/全部听记" ], "avoid_when": [ - "需要创建、修改或删除数据时不要使用;本命令只用于“新版:查询我的听记列表,支持输入关键词或者时间范围查询,返回听记列表。”" + "明确只查询自己创建的听记时使用 dws minutes list mine;明确只查询别人共享的听记时使用 dws minutes list shared;修改数据时不要使用" ], "examples": [ - "dws minutes list mine" + "dws minutes list all --format json" + ] + }, + "minutes.list_by_keyword_and_time_range": { + "use_when": [ + "查看我自己创建的听记列表并提取 taskUuid", + "从我创建、我发起或我自己录制的听记中按关键词和时间范围搜索" ], - "interface_mode": "mcp", - "availability": "available" + "avoid_when": [ + "查询别人共享的听记时使用 dws minutes list shared;覆盖全部可访问听记时使用 dws minutes list all;修改数据时不要使用" + ], + "examples": [ + "dws minutes list mine --format json" + ] + }, + "minutes.list_shared_minutes": { + "use_when": [ + "查看别人共享给我的听记列表", + "在共享听记中按关键词和时间范围搜索" + ], + "avoid_when": [ + "查询自己创建的听记时使用 dws minutes list mine;覆盖全部可访问听记时使用 dws minutes list all;修改数据时不要使用" + ], + "examples": [ + "dws minutes list shared --format json" + ] }, "minutes.list_minutes_todos": { "use_when": [ @@ -6906,8 +6893,10 @@ "dws sheet range batch-set-style --node --batch ./styles.json", "dws sheet range batch-set-style --node --batch ./styles.json --continue-on-error" ], - "interface_mode": "mcp", - "availability": "available" + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "The CLI reads a local batch file and performs multiple sheet/update_range calls with local continue-on-error control; the workflow has no single direct MCP interface." }, "sheet.range_copy_to": { "use_when": [ @@ -6954,9 +6943,7 @@ "examples": [ "dws sheet range read --node ", "dws sheet range read --node --sheet-id " - ], - "interface_mode": "mcp", - "availability": "available" + ] }, "sheet.range_set_style": { "use_when": [ @@ -7674,8 +7661,10 @@ "dws wiki space list --format json # 组织知识库(默认)", "dws wiki space list --type myWikiSpace --format json # 我的文档" ], - "interface_mode": "mcp", - "availability": "available" + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "The CLI command routes by --type between wiki/list_wikiSpaces and drive/list_spaces, so the reviewed executable wrapper has no single direct MCP interface." }, "wiki.node_copy": { "use_when": [ diff --git a/internal/cli/schema_hints/zz-interface-disposition-review.json b/internal/cli/schema_hints/zz-interface-disposition-review.json index 5fb65104..358cda5f 100644 --- a/internal/cli/schema_hints/zz-interface-disposition-review.json +++ b/internal/cli/schema_hints/zz-interface-disposition-review.json @@ -2,322 +2,883 @@ "version": 1, "source": { "kind": "explicit", - "name": "unverified-direct-interface-review-v1", + "name": "reviewed-interface-disposition-v2", "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", - "channel": "open-source" + "channel": "open-source", + "reviewed": true }, "tools": { "chat.create_smart_conv_category": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.add_dev_app_members": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.apply_dev_app_permissions": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.create_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.create_dev_app_version": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.delete_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.disable_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.disable_dev_app_robot": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.enable_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.enable_dev_app_robot": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_dev_app_credentials": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_dev_app_version_detail": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_dev_app_version_status": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_extension_robot_config": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.get_extension_webapp_config": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.list_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.list_dev_app_events": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.list_dev_app_members": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.list_dev_app_permissions": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.list_dev_app_versions": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.publish_dev_app_version": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.query_robot_create_result": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.remove_dev_app_members": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.remove_dev_app_permissions": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.set_extension_robot_config": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.set_extension_webapp_config": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.submit_robot_create_task": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.subscribe_dev_app_events": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.unsubscribe_dev_app_events": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.update_dev_app": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "dev.update_dev_app_security_config": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "minutes.record_pause": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "minutes.record_resume": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "minutes.record_start": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "minutes.record_stop": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.filter_view_update_criteria": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "CLI helper is executable, but its backing RPC is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "chat.add_message_favorite": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but im/add_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "chat.list_message_favorites": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but im/list_message_favorites is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "chat.remove_message_favorite": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but im/remove_message_favorite is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "doc.delete_comment": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/delete_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "doc.update_comment": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but doc-comment/update_comment is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "drive.create_shortcut": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/create_shortcut is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "drive.get_node_stats": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but drive/get_node_stats is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.create_pivot_table": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/create_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.delete_pivot_table": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/delete_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.hide_gridline": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper fixes visibility=hidden, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.list_pivot_tables": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/list_pivot_tables is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.show_gridline": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper fixes visibility=visible, but sheet/set_gridline_visibility is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.table_get": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_get is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.table_put": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/table_put is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null }, "sheet.update_pivot_table": { - "interface_mode": "local", + "interface_mode": "composite", "availability": "available", - "interface_reason": "The reviewed CLI wrapper is executable, but sheet/update_pivot_table is absent from the pinned MCP metadata snapshot; do not advertise a direct MCP interface.", - "reviewed": true + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.", + "interface_ref": null + }, + "aitable.form_create": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite wrapper: the CLI constrains pinned aitable/create_view to FormDesigner and applies form-specific argument semantics, so it is not a direct parameter-equivalent RPC projection." + }, + "aitable.form_delete": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_field_hide": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_field_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_field_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_questions_create": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite wrapper: the CLI converts single-question flags or batch JSON into the pinned aitable/create_fields request, so it is not a direct parameter-equivalent RPC projection." + }, + "aitable.form_questions_delete": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "delete_field" + } + }, + "aitable.form_share_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_share_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.form_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "aitable.record_batch_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite wrapper: the CLI expands record IDs and shared cells into the pinned aitable/update_records request, so it is not a direct parameter-equivalent RPC projection." + }, + "attendance.adjustment_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.adjustment_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.approve_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.approve_templates": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.boss_check": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.check_record": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.check_result": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.checkin_records": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.class_create": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.class_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.class_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.class_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.globalsetting_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.globalsetting_save": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_create": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_filtered_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.group_update_members": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.overtime_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.overtime_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.report_columns": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.report_query_data": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.report_query_leave": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.schedule_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.schedule_import": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.selfsetting_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.selfsetting_save": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.vacation_balance": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.vacation_records": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.vacation_save_balance": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.vacation_types": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.vacation_update_type": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.import_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.template_apply": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.template_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.template_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.version_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.version_revert": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "doc.version_save": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.publish_get": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.publish_set": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.publish_unset": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.recent": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.recycle_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "drive.recycle_restore": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.batch_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.chart_create": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.chart_delete": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.chart_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.chart_update": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.group_dimension": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.range_batch_clear": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.template_apply": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.template_list": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.template_search": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "sheet.ungroup_dimension": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command." + }, + "attendance.get_attendance_summary": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls attendance-wukong/get_user_attendance_summary, which is absent from the pinned MCP metadata snapshot; the incompatible attendance/get_attendance_summary contract must not be advertised." + }, + "chat.search_groups": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls im/search_groups with a flat payload, while the pinned snapshot only contains the incompatible chat/search_groups_by_keyword contract." + }, + "sheet.range_read": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed unpinned remote adapter: the CLI calls sheet/get_cell_infos, which is absent from the pinned MCP metadata snapshot; the incompatible sheet/get_range contract must not be advertised." + }, + "event.consume": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite workflow: the command creates or reuses a remote personal-event subscription and coordinates the local event bus and Stream consumer; no single pinned RPC represents the workflow." + }, + "event.status": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite workflow: the command reads the remote personal-event subscription control plane and combines it with local bus and consumer state; no single pinned RPC represents the result." + }, + "event.stop": { + "interface_mode": "composite", + "availability": "available", + "interface_ref": null, + "interface_reason": "Reviewed composite workflow: the command deletes remote personal-event subscriptions, interrupts local consumers, updates local state, and may stop the local bus; no single pinned RPC represents the workflow." + }, + "aitable.view_get_aggregate": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_card": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_field_widths": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_fill_color_rule": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_filter": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_group": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_sort": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_timebar": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "aitable.view_get_visible_fields": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "aitable", + "rpc_name": "get_views" + } + }, + "minutes.list_accessible_minutes": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + }, + "minutes.list_by_keyword_and_time_range": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } + }, + "minutes.list_shared_minutes": { + "interface_mode": "mcp", + "availability": "available", + "interface_ref": { + "product_id": "minutes", + "rpc_name": "list_by_keyword_and_time_range" + } } } } diff --git a/internal/cli/schema_hints/zz-runtime-confirmation-review.json b/internal/cli/schema_hints/zz-runtime-confirmation-review.json index 71275bfc..a7f0f4a6 100644 --- a/internal/cli/schema_hints/zz-runtime-confirmation-review.json +++ b/internal/cli/schema_hints/zz-runtime-confirmation-review.json @@ -2,13 +2,13 @@ "version": 1, "source": { "kind": "explicit", - "name": "runtime-confirmation-review-v1", + "name": "runtime-confirmation-review-v2", "repository": "DingTalk-Real-AI/dingtalk-workspace-cli", "channel": "open-source" }, "coverage": { - "source_tools": 10, - "matched_tools": 10 + "source_tools": 37, + "matched_tools": 37 }, "tools": { "doc.delete_comment": { @@ -122,6 +122,202 @@ "confirmation": "not_required", "idempotency": "idempotent", "reviewed": true + }, + "aitable.form_field_hide": { + "effect": "write", + "risk": "medium", + "confirmation": "not_required", + "idempotency": "idempotent", + "reviewed": true + }, + "chat.dismiss_group": { + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "drive.recycle_restore": { + "effect": "write", + "risk": "medium", + "confirmation": "not_required", + "idempotency": "unknown", + "reviewed": true + }, + "minutes.create_speaker_summary": { + "effect": "write", + "risk": "medium", + "confirmation": "not_required", + "idempotency": "unknown", + "reviewed": true + }, + "sheet.clear_range": { + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "sheet.batch_update": { + "agent_summary": "批量执行多个工作表写操作,其中可包含清除、删除等不可恢复子操作。", + "use_when": [ + "用户明确要求将多个已审查的工作表写操作作为一个批次执行时。" + ], + "avoid_when": [ + "只需读取或预览、子操作未完整审查,或用户尚未确认可能的清除/删除影响时不要实际执行。" + ], + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "sheet.group_dimension": { + "effect": "write", + "risk": "medium", + "confirmation": "not_required", + "idempotency": "unknown", + "reviewed": true + }, + "sheet.ungroup_dimension": { + "effect": "write", + "risk": "medium", + "confirmation": "not_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.add_dev_app_members": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.apply_dev_app_permissions": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.create_dev_app": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.create_dev_app_version": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.delete_dev_app": { + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.disable_dev_app": { + "effect": "write", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.disable_dev_app_robot": { + "effect": "write", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.enable_dev_app": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.enable_dev_app_robot": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.publish_dev_app_version": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.remove_dev_app_members": { + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.remove_dev_app_permissions": { + "effect": "destructive", + "risk": "high", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.set_extension_robot_config": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.set_extension_webapp_config": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.submit_robot_create_task": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.subscribe_dev_app_events": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.unsubscribe_dev_app_events": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.update_dev_app": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true + }, + "dev.update_dev_app_security_config": { + "effect": "write", + "risk": "medium", + "confirmation": "user_required", + "idempotency": "unknown", + "reviewed": true } } } diff --git a/internal/cli/schema_hints/zz-sheet-range-filter-review.json b/internal/cli/schema_hints/zz-sheet-range-filter-review.json index 1809e326..854724f8 100644 --- a/internal/cli/schema_hints/zz-sheet-range-filter-review.json +++ b/internal/cli/schema_hints/zz-sheet-range-filter-review.json @@ -229,10 +229,10 @@ "仅更新筛选条件用 sheet filter update", "读取数据排序结果用 sheet range read" ], - "effect": "read", - "risk": "low", + "effect": "write", + "risk": "medium", "confirmation": "not_required", - "idempotency": "idempotent", + "idempotency": "unknown", "reviewed": true }, "sheet.delete_filter": { diff --git a/internal/cli/schema_hints_aitable.go b/internal/cli/schema_hints_aitable.go index 72f99143..84acf85d 100644 --- a/internal/cli/schema_hints_aitable.go +++ b/internal/cli/schema_hints_aitable.go @@ -35,11 +35,6 @@ func init() { "name": {Required: boolPtr(true)}, }, }, - "export_data": { - Parameters: map[string]ParameterSchemaHint{ - "scope": {Required: boolPtr(true)}, - }, - }, "field_create": { Parameters: map[string]ParameterSchemaHint{ "fields": {Required: boolPtr(true)}, diff --git a/internal/cli/schema_lazy_metadata_test.go b/internal/cli/schema_lazy_metadata_test.go index 7f5aca8f..5a046ff0 100644 --- a/internal/cli/schema_lazy_metadata_test.go +++ b/internal/cli/schema_lazy_metadata_test.go @@ -36,7 +36,7 @@ func TestRuntimeSchemaMetadataLoadsOnlyOnDemand(t *testing.T) { defer wait.Done() _ = runtimeAgentMetadata() _ = runtimeMCPMetadata() - _ = runtimeSchemaParameterBindingData() + _, _ = runtimeSchemaParameterBindingData() }() } wait.Wait() diff --git a/internal/cli/schema_manual_hints.go b/internal/cli/schema_manual_hints.go index fc6887f1..91270c27 100644 --- a/internal/cli/schema_manual_hints.go +++ b/internal/cli/schema_manual_hints.go @@ -100,21 +100,24 @@ type ManualAgentToolHint struct { } // ManualAgentExampleMode controls only how an already contract-validated -// example is exercised. Every example defaults to dry_run. contract_only is a -// precise reviewed exception for examples whose runtime preconditions cannot -// be exercised safely and deterministically in the isolated test process. +// example is exercised. Contract validation is the default. dry_run is used +// only when the final ToolSpec publishes an explicit reviewed capability; +// contract_only remains a precise reviewed exception for such a capability +// whose runtime preconditions cannot be exercised safely and deterministically +// in the isolated test process. type ManualAgentExampleMode string const ( + ManualAgentExampleModeContract ManualAgentExampleMode = "contract" ManualAgentExampleModeDryRun ManualAgentExampleMode = "dry_run" ManualAgentExampleModeContractOnly ManualAgentExampleMode = "contract_only" ) // ManualAgentExampleReasonCode is a closed taxonomy for reviewed -// contract-only exceptions. High-risk/user-confirmed operations are not an -// exception: they must still prove their fail-closed --dry-run path without -// injecting --yes. There is deliberately no generic "skip" or "unsupported" -// value: a reviewer must identify the concrete precondition. +// contract-only exceptions to an explicit dry-run capability. Safety and +// confirmation remain independently enforced and cannot be weakened through +// an example disposition. There is deliberately no generic "skip" value: a +// reviewer must identify the concrete precondition. type ManualAgentExampleReasonCode string const ( @@ -122,9 +125,9 @@ const ( ManualAgentExampleReasonStatefulPreflight ManualAgentExampleReasonCode = "stateful_preflight" ) -// ManualAgentExampleDisposition changes one exact example index from the -// default dry-run mode to contract-only. Index is a pointer so a missing JSON -// field cannot silently select example zero. +// ManualAgentExampleDisposition narrows one exact example with an explicit +// typed dry-run capability to contract-only. Index is a pointer so a missing +// JSON field cannot silently select example zero. type ManualAgentExampleDisposition struct { Index *int `json:"index"` Mode ManualAgentExampleMode `json:"mode"` @@ -146,8 +149,8 @@ type ManualAgentExampleExecution struct { Source ManualAgentExampleDispositionSource } -// ManualAgentExampleDispositionSource makes automatic typed-safety -// classification distinguishable from narrow reviewed manual exceptions. +// ManualAgentExampleDispositionSource distinguishes the normal typed-contract +// classification from narrow reviewed manual exceptions. type ManualAgentExampleDispositionSource string const ( @@ -156,11 +159,13 @@ const ( ) // ManualAgentExampleExecutionPlan is a stable, typed report used by the -// exhaustive real-Cobra dry-run test. Counts are derived only from committed -// reviewed dispositions; runtime failures can never add implicit skips. +// exhaustive real-Cobra dry-run test. Counts are derived only from the final +// typed dry-run capability and committed reviewed dispositions; runtime +// failures can never add implicit skips. type ManualAgentExampleExecutionPlan struct { Examples []ManualAgentExampleExecution Total int + Contract int DryRun int ContractOnly int ReviewedContractOnly int @@ -347,7 +352,7 @@ func validateManualAgentExampleDispositions(canonical string, examples []string, return fmt.Errorf("agent_hints tool %s example disposition index %d must be reviewed", canonical, index) } if disposition.Mode != ManualAgentExampleModeContractOnly { - return fmt.Errorf("agent_hints tool %s example disposition index %d has invalid mode %q; only %q overrides the default %q mode", canonical, index, disposition.Mode, ManualAgentExampleModeContractOnly, ManualAgentExampleModeDryRun) + return fmt.Errorf("agent_hints tool %s example disposition index %d has invalid mode %q; only %q may narrow an explicit dry_run capability", canonical, index, disposition.Mode, ManualAgentExampleModeContractOnly) } if !validManualAgentExampleReasonCode(disposition.ReasonCode) { return fmt.Errorf("agent_hints tool %s example disposition index %d has invalid reason_code %q", canonical, index, disposition.ReasonCode) @@ -458,9 +463,9 @@ func mapKeysManualAgentTools(values map[string]ManualAgentToolHint) map[string]b // ValidateManualAgentHintExamples is the pre-generation validation layer. It // binds every authored example to the exact reviewed primary/alias path and // rejects flags and required arguments not accepted by the live Cobra command. -// Final typed constraints, safety, and exact delivery coverage are validated -// later by BuildManualAgentExampleExecutionPlan after generated Agent metadata -// exists. It never executes an example. +// Final typed constraints, dry-run capability, and exact delivery coverage are +// validated later by BuildManualAgentExampleExecutionPlan after generated +// Agent metadata exists. It never executes an example. func ValidateManualAgentHintExamples(bound BoundCommandRegistry, hints ManualAgentHintSet) error { _, err := buildManualAgentExampleExecutionPlan(bound, nil, hints) return err @@ -479,11 +484,12 @@ func ValidateEmbeddedManualAgentExampleDelivery(bound BoundCommandRegistry, regi } // BuildManualAgentExampleExecutionPlan validates every example against its -// real BoundCommand/Cobra contract. High-risk or user-confirmed operations -// remain dry_run and must demonstrate a fail-closed preview without --yes. -// Only unavoidable local-state or stateful-preflight requirements may use an -// exact reviewed manual disposition. Missing dispositions always remain -// dry_run, and callers must never turn a runtime failure into an implicit skip. +// real BoundCommand/Cobra contract. Runtime dry-run execution is opt-in and +// comes only from the final typed ToolSpec; a globally accepted --dry-run flag +// is not capability evidence. Only unavoidable local-state or stateful- +// preflight requirements may narrow an explicit capability through an exact +// reviewed manual disposition. Callers must never turn a runtime failure into +// an implicit skip. func BuildManualAgentExampleExecutionPlan(bound BoundCommandRegistry, registry SchemaRegistry, hints ManualAgentHintSet) (ManualAgentExampleExecutionPlan, error) { tools := make(map[string]ToolSpec, len(bound.Commands)) for _, product := range registry.Products { @@ -578,15 +584,19 @@ func buildManualAgentExampleExecutionPlan(bound BoundCommandRegistry, typedTools CanonicalPath: canonical, Index: index, Example: example, - Mode: ManualAgentExampleModeDryRun, + Mode: ManualAgentExampleModeContract, Source: ManualAgentExampleDispositionDefault, } if typedTool.DryRun != nil { dryRun := *typedTool.DryRun execution.DryRun = &dryRun + execution.Mode = ManualAgentExampleModeDryRun } disposition, hasManualDisposition := dispositions[index] if hasManualDisposition { + if typedTools != nil && execution.DryRun == nil { + return ManualAgentExampleExecutionPlan{}, fmt.Errorf("agent_hints tool %s example disposition index %d narrows no explicit dry_run capability", canonical, index) + } execution.Mode = disposition.Mode execution.ReasonCode = disposition.ReasonCode execution.Reason = strings.TrimSpace(disposition.Reason) @@ -594,8 +604,10 @@ func buildManualAgentExampleExecutionPlan(bound BoundCommandRegistry, typedTools plan.ContractOnly++ plan.ReviewedContractOnly++ plan.ContractOnlyByReason[disposition.ReasonCode]++ - } else { + } else if execution.DryRun != nil { plan.DryRun++ + } else { + plan.Contract++ } plan.Examples = append(plan.Examples, execution) plan.Total++ @@ -1076,8 +1088,7 @@ func applyManualSchemaHints(root *cobra.Command, snapshot ManualSchemaHintSnapsh sort.Strings(flagNames) for _, flagName := range flagNames { parameter := item.hint.Parameters[flagName] - flag := runtimeCommandFlag(item.command, flagName) - if err := annotateManualSchemaParameter(flag, parameter, item.hint.Reason); err != nil { + if err := annotateManualSchemaParameter(item.command, flagName, parameter, item.hint.Reason); err != nil { return ManualSchemaHintReport{}, fmt.Errorf("manual Schema hint %q flag --%s: %w", item.hint.CLIPath, flagName, err) } report.Parameters = append(report.Parameters, item.hint.CLIPath+" --"+flagName) @@ -1117,22 +1128,30 @@ func runtimeManualSchemaIdentity(cmd *cobra.Command) (productID, toolName, reaso // annotation instead of overwriting the annotations used by bindings, Cobra // adapters, and code-owned runtime metadata. The renderer resolves these // independent candidates field by field and can therefore retain provenance. -func annotateManualSchemaParameter(flag *pflag.Flag, hint ManualSchemaParameterHint, reason string) error { - if flag == nil { - return fmt.Errorf("flag is nil") +func annotateManualSchemaParameter(command *cobra.Command, flagName string, hint ManualSchemaParameterHint, reason string) error { + flagName = strings.TrimSpace(flagName) + if command == nil { + return fmt.Errorf("command is nil") + } + if flagName == "" || runtimeCommandFlag(command, flagName) == nil { + return fmt.Errorf("flag --%s is missing", flagName) } hint = normalizeManualSchemaParameterHint(hint) encoded, err := json.Marshal(hint) if err != nil { return fmt.Errorf("encode reviewed parameter: %w", err) } - setFlagAnnotation(flag, runtimeSchemaManualParameterAnnotation, string(encoded)) - setFlagAnnotation(flag, runtimeSchemaManualReasonAnnotation, strings.TrimSpace(reason)) + setRuntimeCommandAnnotation(command, runtimeManualSchemaParameterKey(runtimeSchemaManualParameterAnnotation, flagName), string(encoded)) + setRuntimeCommandAnnotation(command, runtimeManualSchemaParameterKey(runtimeSchemaManualReasonAnnotation, flagName), strings.TrimSpace(reason)) return nil } -func runtimeManualSchemaParameter(flag *pflag.Flag) (ManualSchemaParameterHint, string, bool, error) { - raw := firstFlagAnnotation(flag, runtimeSchemaManualParameterAnnotation) +func runtimeManualSchemaParameter(command *cobra.Command, flagName string) (ManualSchemaParameterHint, string, bool, error) { + if command == nil || command.Annotations == nil { + return ManualSchemaParameterHint{}, "", false, nil + } + flagName = strings.TrimSpace(flagName) + raw := strings.TrimSpace(command.Annotations[runtimeManualSchemaParameterKey(runtimeSchemaManualParameterAnnotation, flagName)]) if raw == "" { return ManualSchemaParameterHint{}, "", false, nil } @@ -1140,7 +1159,12 @@ func runtimeManualSchemaParameter(flag *pflag.Flag) (ManualSchemaParameterHint, if err := json.Unmarshal([]byte(raw), &hint); err != nil { return ManualSchemaParameterHint{}, "", false, fmt.Errorf("decode reviewed manual parameter hint: %w", err) } - return normalizeManualSchemaParameterHint(hint), firstFlagAnnotation(flag, runtimeSchemaManualReasonAnnotation), true, nil + reason := strings.TrimSpace(command.Annotations[runtimeManualSchemaParameterKey(runtimeSchemaManualReasonAnnotation, flagName)]) + return normalizeManualSchemaParameterHint(hint), reason, true, nil +} + +func runtimeManualSchemaParameterKey(prefix, flagName string) string { + return strings.TrimSpace(prefix) + "." + strings.TrimSpace(flagName) } func normalizeManualSchemaParameterHint(hint ManualSchemaParameterHint) ManualSchemaParameterHint { diff --git a/internal/cli/schema_manual_hints.json b/internal/cli/schema_manual_hints.json index c13c14d0..5421d0b6 100644 --- a/internal/cli/schema_manual_hints.json +++ b/internal/cli/schema_manual_hints.json @@ -1070,7 +1070,7 @@ "skills/mono/references/products/aitable.md" ], "examples": [ - "dws aitable export data --base-id BASE_ID --scope all --format excel" + "dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json" ], "reason": "AI 语义审阅:依据 Registry 主路径、Cobra help 与 AITable 参考文档明确命令选择边界并校验示例。", "reviewed": true, @@ -4372,7 +4372,7 @@ "skills/mono/references/products/chat.md" ], "examples": [ - "dws chat group list-my-groups --role owner --limit 100" + "dws chat group list-my-groups --role OWNER --limit 100" ], "reason": "AI 生成并复核的 Agent 选择语义,依据精确 CommandRegistry identity、真实 Cobra help 与产品参考,不改写执行、安全或接口事实。", "reviewed": true, @@ -8625,10 +8625,31 @@ "当用户需要查询发言人段落总结任务的结果,返回每位发言人的发言汇总,并能提供命令所需的查询条件时使用。" ] }, - "minutes.list_by_keyword_and_time_range": { - "agent_summary": "查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选。", + "minutes.list_accessible_minutes": { + "agent_summary": "查询当前用户有权限访问的全部听记,包括自己创建和他人共享的听记,并支持分页、关键字和时间范围筛选。", "avoid_when": [ - "用户需要修改数据而不是查询当前状态时不要使用。" + "用户明确只查询自己创建的听记时改用 dws minutes list mine;明确只查询他人共享的听记时改用 dws minutes list shared;修改数据时不要使用。" + ], + "evidence": [ + "internal/cli/schema_command_registry.json", + "cobra-help:dws minutes list all --help", + "skills/mono/references/products/minutes.md", + "skills/mono/references/best_practices/07-minutes.md" + ], + "examples": [ + "dws minutes list all --format json" + ], + "reason": "依据 reviewed CommandRegistry、dws minutes list all --help 与 mono 产品参考,审阅 noLimit 范围的 Agent 选择语义和示例。", + "reviewed": true, + "revision": "ai-agent-contract-2026-07-13-v1", + "use_when": [ + "当用户需要查询自己有权限访问的全部听记,或未限定仅自己创建/仅他人共享,并需要按关键字或时间范围筛选时使用。" + ] + }, + "minutes.list_by_keyword_and_time_range": { + "agent_summary": "查询当前用户自己创建的听记列表,支持分页、关键字和时间范围筛选。", + "avoid_when": [ + "用户要查询他人共享的听记时改用 dws minutes list shared;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" ], "evidence": [ "internal/cli/schema_command_registry.json", @@ -8639,11 +8660,32 @@ "examples": [ "dws minutes list mine --format json" ], - "reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅该工具的 Agent 选择语义和示例。", + "reason": "依据 reviewed CommandRegistry、dws minutes list mine --help 与 mono 产品参考,审阅 created 范围的 Agent 选择语义和示例。", "reviewed": true, "revision": "ai-agent-contract-2026-07-13-v1", "use_when": [ - "当用户需要查询我创建的听记列表,支持分页,支持按关键字和时间范围筛选,并能提供命令所需的查询条件时使用。" + "当用户明确查询自己创建、自己发起或自己录制的听记,并需要分页、关键字或时间范围筛选时使用。" + ] + }, + "minutes.list_shared_minutes": { + "agent_summary": "查询他人共享给当前用户的听记列表,支持分页、关键字和时间范围筛选。", + "avoid_when": [ + "用户只查询自己创建的听记时改用 dws minutes list mine;要覆盖全部可访问听记时改用 dws minutes list all;修改数据时不要使用。" + ], + "evidence": [ + "internal/cli/schema_command_registry.json", + "cobra-help:dws minutes list shared --help", + "skills/mono/references/products/minutes.md", + "skills/mono/references/best_practices/07-minutes.md" + ], + "examples": [ + "dws minutes list shared --format json" + ], + "reason": "依据 reviewed CommandRegistry、dws minutes list shared --help 与 mono 产品参考,审阅 shared 范围的 Agent 选择语义和示例。", + "reviewed": true, + "revision": "ai-agent-contract-2026-07-13-v1", + "use_when": [ + "当用户明确查询别人共享给自己的听记,并需要分页、关键字或时间范围筛选时使用。" ] }, "minutes.list_minutes_todos": { @@ -11033,8 +11075,8 @@ "structured-hint:internal/cli/schema_hints/selection-review.json#todo.add_todo_reminder" ], "examples": [ - "dws todo task add-reminder --task-id --base-time --due-date-offset --format json", - "dws todo task add-reminder --task-id --base-time --reminder-time-stamp --format json" + "dws todo task add-reminder --task-id --base-time dueTime --due-date-offset -30 --format json", + "dws todo task add-reminder --task-id --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 --format json" ], "reason": "依据真实 Cobra leaf、对应产品 Skill 与现有 structured hints 审阅选择语义和示例;不改变命令身份、参数、安全或接口事实。", "reviewed": true, @@ -12112,6 +12154,20 @@ "reason": "The reviewed CLI accepts either a complete --json block or one or more typed Gantt timebar fields; --json is therefore not unconditionally required.", "reviewed": true }, + { + "canonical_path": "attendance.adjustment_search", + "cli_path": "attendance adjustment search", + "parameters": { + "limit": { + "required": false + }, + "page": { + "required": false + } + }, + "reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "reviewed": true + }, { "canonical_path": "attendance.group_search", "cli_path": "attendance group search", @@ -12126,6 +12182,20 @@ "reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE materializes both PageQuery fields when omitted, so callers need not pass either flag.", "reviewed": true }, + { + "canonical_path": "attendance.overtime_search", + "cli_path": "attendance overtime search", + "parameters": { + "limit": { + "required": false + }, + "page": { + "required": false + } + }, + "reason": "Cobra supplies reviewed page=1 and limit=20 defaults and RunE sends those defaults when omitted, so callers need not pass either pagination flag.", + "reviewed": true + }, { "canonical_path": "chat.add_emoji_reaction", "cli_path": "chat message add-emoji", @@ -12174,6 +12244,20 @@ "reason": "The four reviewed conversation locator flags are aliases for one openConversationId property; the typed require-one-of constraint owns their conditional requirement.", "reviewed": true }, + { + "canonical_path": "chat.list_owned_or_admin_groups", + "cli_path": "chat group list-my-groups", + "parameters": { + "limit": { + "required": false + }, + "role": { + "required": false + } + }, + "reason": "The reviewed CLI lists all owned or administered groups when --role and --limit are omitted; both flags are optional filters despite stricter imported interface metadata.", + "reviewed": true + }, { "canonical_path": "chat.remove_emoji_reaction", "cli_path": "chat message remove-emoji", diff --git a/internal/cli/schema_manual_hints.schema.json b/internal/cli/schema_manual_hints.schema.json index bf24a237..0a1082a0 100644 --- a/internal/cli/schema_manual_hints.schema.json +++ b/internal/cli/schema_manual_hints.schema.json @@ -151,7 +151,7 @@ "items": { "$ref": "#/$defs/agentExampleDisposition" }, - "description": "Exact reviewed exceptions by zero-based example index. An omitted index always defaults to dry_run; runtime failures must never create an implicit exception." + "description": "Exact reviewed narrowing by zero-based example index for tools whose final ToolSpec explicitly declares dry_run. Without that capability, examples receive contract validation only and a disposition is invalid; runtime failures must never create an implicit exception." } } } @@ -176,14 +176,14 @@ }, "mode": { "const": "contract_only", - "description": "The only explicit override. dry_run is the default and is never stored as a disposition." + "description": "The only explicit override: narrow an example from an explicit ToolSpec dry_run capability to contract-only validation. It can never invent dry-run support." }, "reason_code": { "enum": [ "local_state", "stateful_preflight" ], - "description": "Narrow manual exception taxonomy for genuinely unavoidable local-state or stateful-preflight requirements. High-risk/user-confirmed operations still require fail-closed runtime dry-run without --yes; runtime errors, MCP resolution errors, and missing required arguments are never valid exceptions." + "description": "Narrow manual exception taxonomy for genuinely unavoidable local-state or stateful-preflight requirements on an explicitly declared dry-run capability. Runtime errors, MCP resolution errors, and missing required arguments are never valid exceptions." }, "reason": { "type": "string", diff --git a/internal/cli/schema_manual_hints_test.go b/internal/cli/schema_manual_hints_test.go index d7c0c634..0fed5029 100644 --- a/internal/cli/schema_manual_hints_test.go +++ b/internal/cli/schema_manual_hints_test.go @@ -76,6 +76,65 @@ func TestManualSchemaHintsIncludeExistingLeafAndOverrideParameters(t *testing.T) } } +func TestManualSchemaParameterHintsDoNotLeakAcrossSharedFlags(t *testing.T) { + root, query := manualSchemaHintTestTree() + get := &cobra.Command{Use: "get", RunE: func(*cobra.Command, []string) error { return nil }} + get.Flags().AddFlag(query.Flags().Lookup("query")) + query.Parent().AddCommand(get) + + required := false + _, err := applyManualSchemaHints(root, ManualSchemaHintSnapshot{ + Schema: manualSchemaHintSchemaRef, + Version: manualSchemaHintVersion, + Commands: []ManualSchemaCommandHint{{ + CLIPath: "sample item search", + CanonicalPath: "sample.search_items", + Reason: "Only the broad search command allows an omitted query.", + Reviewed: true, + Parameters: map[string]ManualSchemaParameterHint{ + "query": {Required: &required}, + }, + }}, + }) + if err != nil { + t.Fatalf("applyManualSchemaHints() error = %v", err) + } + + canonical := "sample.get_item" + previous, existed := runtimeSchemaParameterMetadataByCanonical[canonical] + runtimeSchemaParameterMetadataByCanonical[canonical] = RuntimeSchemaParameterMetadata{Required: []string{"query"}} + t.Cleanup(func() { + if existed { + runtimeSchemaParameterMetadataByCanonical[canonical] = previous + } else { + delete(runtimeSchemaParameterMetadataByCanonical, canonical) + } + }) + + queryParameters, err := runtimeCommandParameters(query, "sample.search_items", nil, nil, RuntimeSchemaConstraints{}) + if err != nil { + t.Fatalf("query parameters: %v", err) + } + if got := schemaParameterEntry(t, queryParameters, "query")["required"]; got != false { + t.Fatalf("query required = %#v, want false", got) + } + + getParameters, err := runtimeCommandParameters(get, canonical, nil, nil, RuntimeSchemaConstraints{}) + if err != nil { + t.Fatalf("get parameters: %v", err) + } + getQuery := schemaParameterEntry(t, getParameters, "query") + if getQuery["required"] != true { + t.Fatalf("get required = %#v, want true", getQuery["required"]) + } + if source := schemaParameterFieldSource(t, getQuery, "required"); source != "typed_parameter_metadata" { + t.Fatalf("get required source = %q, want typed_parameter_metadata", source) + } + if _, _, present, err := runtimeManualSchemaParameter(get, "query"); err != nil || present { + t.Fatalf("manual parameter leaked to sibling command: present=%t err=%v", present, err) + } +} + func TestManualSchemaHintsRejectInvalidOrStaleInputs(t *testing.T) { tests := []struct { name string @@ -431,12 +490,26 @@ func TestBuildManualAgentExampleExecutionPlanUsesExplicitReviewedDispositions(t if err != nil { t.Fatalf("BuildManualAgentExampleExecutionPlan() error = %v", err) } - if plan.Total != 2 || plan.DryRun != 2 || plan.ContractOnly != 0 { - t.Fatalf("default plan counts = total:%d dry_run:%d contract_only:%d", plan.Total, plan.DryRun, plan.ContractOnly) + if plan.Total != 2 || plan.Contract != 2 || plan.DryRun != 0 || plan.ContractOnly != 0 { + t.Fatalf("default plan counts = total:%d contract:%d dry_run:%d contract_only:%d", plan.Total, plan.Contract, plan.DryRun, plan.ContractOnly) } for _, execution := range plan.Examples { - if execution.Mode != ManualAgentExampleModeDryRun { - t.Fatalf("default example mode = %q, want %q", execution.Mode, ManualAgentExampleModeDryRun) + if execution.Mode != ManualAgentExampleModeContract || execution.DryRun != nil { + t.Fatalf("example without an explicit capability = %#v, want contract-only validation", execution) + } + } + + registry.Products[0].Tools[0].DryRun = &DryRunSpec{PreviewKind: DryRunPreviewPlan} + plan, err = BuildManualAgentExampleExecutionPlan(bound, registry, hints) + if err != nil { + t.Fatalf("BuildManualAgentExampleExecutionPlan() with explicit dry_run error = %v", err) + } + if plan.Total != 2 || plan.Contract != 0 || plan.DryRun != 2 || plan.ContractOnly != 0 { + t.Fatalf("explicit capability plan = %#v", plan) + } + for _, execution := range plan.Examples { + if execution.Mode != ManualAgentExampleModeDryRun || execution.DryRun == nil { + t.Fatalf("explicit capability execution = %#v, want dry_run", execution) } } @@ -463,6 +536,7 @@ func TestBuildManualAgentExampleExecutionPlanUsesExplicitReviewedDispositions(t tool.ExampleDispositions = nil hints.Tools["sample.search_items"] = tool registry = manualAgentExampleSchemaRegistry("sample.search_items", SafetySpec{Risk: "high", Confirmation: "user_required"}) + registry.Products[0].Tools[0].DryRun = &DryRunSpec{PreviewKind: DryRunPreviewPlan} plan, err = BuildManualAgentExampleExecutionPlan(bound, registry, hints) if err != nil { t.Fatalf("BuildManualAgentExampleExecutionPlan() with typed safety error = %v", err) diff --git a/internal/cli/schema_parameter_bindings.go b/internal/cli/schema_parameter_bindings.go index ba61c3bc..ec0ae85e 100644 --- a/internal/cli/schema_parameter_bindings.go +++ b/internal/cli/schema_parameter_bindings.go @@ -14,8 +14,14 @@ package cli import ( + "bytes" + "crypto/sha256" _ "embed" + "encoding/hex" "encoding/json" + "fmt" + "io" + "sort" "strings" "sync" "sync/atomic" @@ -23,7 +29,10 @@ import ( "github.com/spf13/cobra" ) -const schemaParameterBindingsVersion = 2 +const ( + schemaParameterBindingsVersion = 3 + schemaParameterBindingsBaselineManifest = "schema-parameter-bindings-v3" +) const runtimeSchemaFlagBindingPropertyAnnotation = "dws.schema.binding.property" @@ -31,40 +40,409 @@ const runtimeSchemaFlagBindingPropertyAnnotation = "dws.schema.binding.property" var embeddedSchemaParameterBindingsJSON []byte type schemaParameterBindingSnapshot struct { - Version int `json:"version"` - HistoricalBindingCount int `json:"historical_binding_count"` - Migrations map[string]string `json:"migrations"` - Excluded map[string]string `json:"excluded"` - Added map[string]string `json:"added"` - Bindings map[string]map[string]string `json:"bindings"` + Version int `json:"version"` + Baseline schemaParameterBindingBaseline `json:"baseline"` + Bindings map[string]map[string]string `json:"bindings"` + Corrections map[string]schemaParameterBindingCorrection `json:"corrections,omitempty"` + Removals map[string]schemaParameterBindingRemoval `json:"removals,omitempty"` + MappingExclusions map[string]string `json:"mapping_exclusions,omitempty"` +} + +// schemaParameterBindingBaseline reviews the complete active binding set as +// one deterministic manifest. The hash is content-addressed: adding, removing, +// renaming, or remapping any active canonical/flag/property tuple requires an +// explicit baseline review instead of hundreds of low-value per-row records. +type schemaParameterBindingBaseline struct { + Manifest string `json:"manifest"` + SHA256 string `json:"sha256"` + Reason string `json:"reason"` + Reviewed bool `json:"reviewed"` +} + +// schemaParameterBindingCorrection is a reviewed audit record for a binding +// whose historical property was wrong. It does not participate in resolution; +// Bindings remains the only source of non-empty versioned property mappings. +type schemaParameterBindingCorrection struct { + OldProperty string `json:"old_property"` + NewProperty string `json:"new_property"` + Reason string `json:"reason"` + Reviewed bool `json:"reviewed"` +} + +// schemaParameterBindingRemoval records a semantically meaningful deletion +// from a previous reviewed baseline. ReplacedBy, when present, must name an +// exact active binding key in the v3 manifest. +type schemaParameterBindingRemoval struct { + Reason string `json:"reason"` + ReplacedBy string `json:"replaced_by,omitempty"` + Reviewed bool `json:"reviewed"` } var runtimeSchemaParameterBindingsLazy struct { once sync.Once snapshot schemaParameterBindingSnapshot + err error } var runtimeSchemaParameterBindingsLazyLoadCount atomic.Uint64 -func loadSchemaParameterBindings() schemaParameterBindingSnapshot { +func decodeSchemaParameterBindings(data []byte) (schemaParameterBindingSnapshot, error) { var snapshot schemaParameterBindingSnapshot - if err := json.Unmarshal(embeddedSchemaParameterBindingsJSON, &snapshot); err != nil || - snapshot.Version != schemaParameterBindingsVersion { - return schemaParameterBindingSnapshot{} + decoder := json.NewDecoder(bytes.NewReader(data)) + decoder.DisallowUnknownFields() + if err := decoder.Decode(&snapshot); err != nil { + return schemaParameterBindingSnapshot{}, fmt.Errorf("decode reviewed Schema parameter bindings: %w", err) } - return snapshot + if err := decoder.Decode(&struct{}{}); err != io.EOF { + if err == nil { + err = fmt.Errorf("multiple JSON values") + } + return schemaParameterBindingSnapshot{}, fmt.Errorf("decode reviewed Schema parameter bindings: %w", err) + } + if err := validateSchemaParameterBindingSnapshot(snapshot); err != nil { + return schemaParameterBindingSnapshot{}, err + } + return snapshot, nil } -func runtimeSchemaParameterBindingData() schemaParameterBindingSnapshot { +func loadSchemaParameterBindings() (schemaParameterBindingSnapshot, error) { + return decodeSchemaParameterBindings(embeddedSchemaParameterBindingsJSON) +} + +func runtimeSchemaParameterBindingData() (schemaParameterBindingSnapshot, error) { runtimeSchemaParameterBindingsLazy.once.Do(func() { runtimeSchemaParameterBindingsLazyLoadCount.Add(1) - runtimeSchemaParameterBindingsLazy.snapshot = loadSchemaParameterBindings() + runtimeSchemaParameterBindingsLazy.snapshot, runtimeSchemaParameterBindingsLazy.err = loadSchemaParameterBindings() }) - return runtimeSchemaParameterBindingsLazy.snapshot + return runtimeSchemaParameterBindingsLazy.snapshot, runtimeSchemaParameterBindingsLazy.err } -func applyRuntimeSchemaParameterBindings(cmd *cobra.Command, canonical string) { - applyRuntimeSchemaParameterBindingsFrom(cmd, canonical, runtimeSchemaParameterBindingData().Bindings) +// ValidateEmbeddedSchemaParameterBindings is the production validation gate +// for the reviewed binding source. Build and generator entrypoints call this +// before any candidate resolution so malformed input can never degrade to an +// empty binding set and flag-name inference. +func ValidateEmbeddedSchemaParameterBindings() error { + _, err := runtimeSchemaParameterBindingData() + return err +} + +// ValidateSchemaParameterBindingsSource validates an alternate source with +// the same strict decoder used in production. It is intended for source audit +// tools and tests; runtime resolution always consumes the embedded source. +func ValidateSchemaParameterBindingsSource(data []byte) error { + _, err := decodeSchemaParameterBindings(data) + return err +} + +func validateSchemaParameterBindingSnapshot(snapshot schemaParameterBindingSnapshot) error { + if snapshot.Version != schemaParameterBindingsVersion { + return fmt.Errorf("unsupported schema parameter bindings version %d", snapshot.Version) + } + baseline := snapshot.Baseline + if strings.TrimSpace(baseline.Manifest) != schemaParameterBindingsBaselineManifest || baseline.Manifest != strings.TrimSpace(baseline.Manifest) { + return fmt.Errorf("schema parameter bindings baseline must declare manifest %q", schemaParameterBindingsBaselineManifest) + } + if !baseline.Reviewed || strings.TrimSpace(baseline.Reason) == "" || baseline.Reason != strings.TrimSpace(baseline.Reason) { + return fmt.Errorf("schema parameter bindings baseline must be reviewed with an exact non-empty reason") + } + manifestHash, err := schemaParameterBindingManifestHash(snapshot.Bindings) + if err != nil { + return err + } + if baseline.SHA256 != manifestHash { + return fmt.Errorf("schema parameter bindings baseline hash = %q, want exact active manifest %q", baseline.SHA256, manifestHash) + } + + active := make(map[string]string) + for canonical, bindings := range snapshot.Bindings { + for flagName, property := range bindings { + active[runtimeSchemaParameterMappingKey(canonical, flagName)] = property + } + } + for key, correction := range snapshot.Corrections { + if err := validateSchemaParameterBindingAuditKey(key); err != nil { + return fmt.Errorf("schema parameter binding correction: %w", err) + } + oldProperty := strings.TrimSpace(correction.OldProperty) + newProperty := strings.TrimSpace(correction.NewProperty) + if oldProperty == "" || newProperty == "" || oldProperty == newProperty || oldProperty != correction.OldProperty || newProperty != correction.NewProperty { + return fmt.Errorf("schema parameter binding correction %q has invalid old/new properties", key) + } + if !correction.Reviewed || strings.TrimSpace(correction.Reason) == "" || correction.Reason != strings.TrimSpace(correction.Reason) { + return fmt.Errorf("schema parameter binding correction %q must be reviewed with an exact non-empty reason", key) + } + if got := active[key]; got != newProperty { + return fmt.Errorf("schema parameter binding correction %q new_property = %q, active manifest = %q", key, newProperty, got) + } + } + for key, removal := range snapshot.Removals { + if err := validateSchemaParameterBindingAuditKey(key); err != nil { + return fmt.Errorf("schema parameter binding removal: %w", err) + } + if _, exists := active[key]; exists { + return fmt.Errorf("schema parameter binding removal %q still exists in the active manifest", key) + } + if !removal.Reviewed || strings.TrimSpace(removal.Reason) == "" || removal.Reason != strings.TrimSpace(removal.Reason) { + return fmt.Errorf("schema parameter binding removal %q must be reviewed with an exact non-empty reason", key) + } + if removal.ReplacedBy != strings.TrimSpace(removal.ReplacedBy) { + return fmt.Errorf("schema parameter binding removal %q has non-canonical replaced_by %q", key, removal.ReplacedBy) + } + if removal.ReplacedBy != "" { + if err := validateSchemaParameterBindingAuditKey(removal.ReplacedBy); err != nil { + return fmt.Errorf("schema parameter binding removal %q replaced_by: %w", key, err) + } + if _, exists := active[removal.ReplacedBy]; !exists { + return fmt.Errorf("schema parameter binding removal %q replacement %q is not active", key, removal.ReplacedBy) + } + } + } + for key, reason := range snapshot.MappingExclusions { + if err := validateSchemaParameterBindingAuditKey(key); err != nil { + return fmt.Errorf("schema parameter mapping exclusion: %w", err) + } + if _, exists := active[key]; exists { + return fmt.Errorf("schema parameter mapping exclusion %q conflicts with the active manifest", key) + } + if _, removed := snapshot.Removals[key]; removed { + return fmt.Errorf("schema parameter mapping exclusion %q is also recorded as a removal", key) + } + if strings.TrimSpace(reason) == "" || reason != strings.TrimSpace(reason) { + return fmt.Errorf("schema parameter mapping exclusion %q must have an exact non-empty reason", key) + } + } + return nil +} + +// ValidateSchemaParameterBindingDelivery proves that every reviewed binding +// input reaches the final public typed registry it was written for. Source +// validation alone cannot catch a typo that is internally hash-consistent; +// this production invariant joins the v3 manifest to the bound Cobra command +// and its delivered ParameterSpec before any Catalog is serialized. +func ValidateSchemaParameterBindingDelivery(bound BoundCommandRegistry, registry SchemaRegistry) error { + snapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + return err + } + return validateSchemaParameterBindingDelivery(snapshot, bound, registry) +} + +func validateSchemaParameterBindingDelivery(snapshot schemaParameterBindingSnapshot, bound BoundCommandRegistry, registry SchemaRegistry) error { + publicBound := make(map[string]BoundCommandSpec) + for _, command := range bound.Commands { + if command.Visibility == SchemaVisibilityPublic { + publicBound[command.CanonicalPath] = command + } + } + tools := make(map[string]ToolSpec) + problems := make([]string, 0) + for _, product := range registry.Products { + for _, tool := range product.Tools { + canonical := strings.TrimSpace(tool.Identity.CanonicalPath) + if canonical == "" { + problems = append(problems, "final SchemaRegistry contains a tool with empty canonical_path") + continue + } + if _, duplicate := tools[canonical]; duplicate { + problems = append(problems, fmt.Sprintf("final SchemaRegistry contains duplicate canonical tool %s", canonical)) + continue + } + tools[canonical] = tool + } + } + + active := make(map[string]string) + for canonical, bindings := range snapshot.Bindings { + for flagName, property := range bindings { + active[runtimeSchemaParameterMappingKey(canonical, flagName)] = property + } + } + activeKeys := sortedSchemaParameterBindingKeys(active) + for _, key := range activeKeys { + canonical, flagName, _ := strings.Cut(key, " --") + property := active[key] + command, boundOK := publicBound[canonical] + if !boundOK { + problems = append(problems, fmt.Sprintf("active parameter binding %q does not reference a public bound command", key)) + continue + } + if command.PrimaryCommand == nil || runtimeCommandFlag(command.PrimaryCommand, flagName) == nil { + problems = append(problems, fmt.Sprintf("active parameter binding %q does not reference an exact bound Cobra flag", key)) + } + parameter, ok := finalSchemaParameterByName(tools[canonical], flagName) + if !ok { + problems = append(problems, fmt.Sprintf("active parameter binding %q does not reference an exact final public Schema parameter", key)) + continue + } + if parameter.Property != property { + problems = append(problems, fmt.Sprintf("active parameter binding %q property = %q, final Schema = %q", key, property, parameter.Property)) + } + provenance, ok := parameter.FieldProvenance["property"] + if !ok || !schemaParameterProvenanceHasStringCandidate(provenance, "versioned_parameter_binding", property) { + problems = append(problems, fmt.Sprintf("active parameter binding %q final property provenance has no exact versioned_parameter_binding candidate", key)) + } + } + + exclusionKeys := make([]string, 0, len(snapshot.MappingExclusions)) + for key := range snapshot.MappingExclusions { + exclusionKeys = append(exclusionKeys, key) + } + sort.Strings(exclusionKeys) + for _, key := range exclusionKeys { + canonical, flagName, _ := strings.Cut(key, " --") + command, ok := publicBound[canonical] + if !ok { + problems = append(problems, fmt.Sprintf("parameter mapping exclusion %q does not reference a public bound command", key)) + continue + } + if command.PrimaryCommand == nil || runtimeCommandFlag(command.PrimaryCommand, flagName) == nil { + problems = append(problems, fmt.Sprintf("parameter mapping exclusion %q does not reference an exact bound Cobra flag", key)) + } + parameter, ok := finalSchemaParameterByName(tools[canonical], flagName) + if !ok { + problems = append(problems, fmt.Sprintf("parameter mapping exclusion %q does not reference an exact final public Schema parameter", key)) + continue + } + if parameter.Property != "" { + problems = append(problems, fmt.Sprintf("parameter mapping exclusion %q delivered property %q, want omitted", key, parameter.Property)) + } + provenance, ok := parameter.FieldProvenance["property"] + if !ok || provenance.Source != "reviewed_mapping_exclusion" || strings.TrimSpace(provenance.ReviewReason) == "" { + problems = append(problems, fmt.Sprintf("parameter mapping exclusion %q final provenance is not the reviewed exclusion", key)) + } + } + + removalKeys := make([]string, 0, len(snapshot.Removals)) + for key := range snapshot.Removals { + removalKeys = append(removalKeys, key) + } + sort.Strings(removalKeys) + for _, key := range removalKeys { + canonical, flagName, _ := strings.Cut(key, " --") + if _, ok := bound.ByCanonical[canonical]; !ok { + problems = append(problems, fmt.Sprintf("parameter binding removal %q has a stale canonical path", key)) + continue + } + if parameter, exists := finalSchemaParameterByName(tools[canonical], flagName); exists { + problems = append(problems, fmt.Sprintf("parameter binding removal %q is still delivered with property %q", key, parameter.Property)) + } + } + + for canonical, tool := range tools { + for _, parameter := range tool.Parameters { + key := runtimeSchemaParameterMappingKey(canonical, parameter.Name) + provenance, ok := parameter.FieldProvenance["property"] + if !ok { + continue + } + switch provenance.Source { + case "versioned_parameter_binding": + if property, exists := active[key]; !exists || property != parameter.Property { + problems = append(problems, fmt.Sprintf("final Schema parameter %q claims versioned binding provenance without an exact active manifest entry", key)) + } + case "reviewed_mapping_exclusion": + if _, exists := snapshot.MappingExclusions[key]; !exists || parameter.Property != "" { + problems = append(problems, fmt.Sprintf("final Schema parameter %q claims mapping exclusion provenance without an exact reviewed exclusion", key)) + } + } + } + } + + if len(problems) == 0 { + return nil + } + sort.Strings(problems) + return fmt.Errorf("schema parameter binding delivery invariant failed with %d problem(s):\n - %s", len(problems), strings.Join(problems, "\n - ")) +} + +func finalSchemaParameterByName(tool ToolSpec, flagName string) (ParameterSpec, bool) { + for _, parameter := range tool.Parameters { + if parameter.Name == flagName { + return parameter, true + } + } + return ParameterSpec{}, false +} + +func schemaParameterProvenanceHasStringCandidate(provenance FieldProvenance, source, value string) bool { + if provenance.Source == source { + var selected string + return json.Unmarshal(provenance.Value, &selected) == nil && selected == value + } + for _, candidate := range provenance.Candidates { + if candidate.Source != source { + continue + } + var candidateValue string + if json.Unmarshal(candidate.Value, &candidateValue) == nil && candidateValue == value { + return true + } + } + return false +} + +func sortedSchemaParameterBindingKeys(bindings map[string]string) []string { + keys := make([]string, 0, len(bindings)) + for key := range bindings { + keys = append(keys, key) + } + sort.Strings(keys) + return keys +} + +func schemaParameterBindingManifestHash(bindings map[string]map[string]string) (string, error) { + if len(bindings) == 0 { + return "", fmt.Errorf("schema parameter bindings active manifest is empty") + } + type bindingRow struct { + CanonicalPath string `json:"canonical_path"` + FlagName string `json:"flag_name"` + Property string `json:"property"` + } + rows := make([]bindingRow, 0) + for canonical, parameters := range bindings { + if canonical == "" || canonical != strings.TrimSpace(canonical) || !commandRegistryCanonicalPattern.MatchString(canonical) { + return "", fmt.Errorf("schema parameter bindings contains invalid canonical path %q", canonical) + } + if len(parameters) == 0 { + return "", fmt.Errorf("schema parameter bindings canonical %q contains no bindings", canonical) + } + for flagName, property := range parameters { + if flagName == "" || flagName != strings.TrimSpace(flagName) || strings.ContainsAny(flagName, " \t\r\n") { + return "", fmt.Errorf("schema parameter bindings %s contains invalid flag name %q", canonical, flagName) + } + if property == "" || property != strings.TrimSpace(property) { + return "", fmt.Errorf("schema parameter binding %s --%s has invalid property %q", canonical, flagName, property) + } + rows = append(rows, bindingRow{CanonicalPath: canonical, FlagName: flagName, Property: property}) + } + } + sort.Slice(rows, func(i, j int) bool { + if rows[i].CanonicalPath != rows[j].CanonicalPath { + return rows[i].CanonicalPath < rows[j].CanonicalPath + } + if rows[i].FlagName != rows[j].FlagName { + return rows[i].FlagName < rows[j].FlagName + } + return rows[i].Property < rows[j].Property + }) + encoded, err := json.Marshal(rows) + if err != nil { + return "", fmt.Errorf("encode Schema parameter binding manifest: %w", err) + } + sum := sha256.Sum256(encoded) + return "sha256:" + hex.EncodeToString(sum[:]), nil +} + +func validateSchemaParameterBindingAuditKey(key string) error { + if key == "" || key != strings.TrimSpace(key) { + return fmt.Errorf("invalid exact binding key %q", key) + } + canonical, flagName, ok := strings.Cut(key, " --") + if !ok || strings.Contains(flagName, " --") || !commandRegistryCanonicalPattern.MatchString(canonical) || flagName == "" || strings.ContainsAny(flagName, " \t\r\n") { + return fmt.Errorf("invalid exact binding key %q", key) + } + return nil } func applyRuntimeSchemaParameterBindingsFrom(cmd *cobra.Command, canonical string, bindings map[string]map[string]string) { @@ -77,8 +455,12 @@ func applyRuntimeSchemaParameterBindingsFrom(cmd *cobra.Command, canonical strin // EmbeddedSchemaParameterBindings returns a defensive copy of the reviewed, // active public flag-to-interface bindings used by Catalog generation. -func EmbeddedSchemaParameterBindings() map[string]map[string]string { - source := runtimeSchemaParameterBindingData().Bindings +func EmbeddedSchemaParameterBindings() (map[string]map[string]string, error) { + snapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + return nil, err + } + source := snapshot.Bindings bindings := make(map[string]map[string]string, len(source)) for canonical, parameters := range source { bindings[canonical] = make(map[string]string, len(parameters)) @@ -86,5 +468,5 @@ func EmbeddedSchemaParameterBindings() map[string]map[string]string { bindings[canonical][flagName] = propertyName } } - return bindings + return bindings, nil } diff --git a/internal/cli/schema_parameter_bindings.json b/internal/cli/schema_parameter_bindings.json index 2263d643..0c957082 100644 --- a/internal/cli/schema_parameter_bindings.json +++ b/internal/cli/schema_parameter_bindings.json @@ -1,44 +1,49 @@ { - "version": 2, - "historical_binding_count": 311, - "migrations": { - "contact.get_dept_info_by_dept_id --id": "contact.get_dept_info_by_dept_id --dept", - "contact.get_dept_members_by_deptId --ids": "contact.get_dept_members_by_deptId --depts", - "contact.get_sub_depts_by_dept_id --id": "contact.get_sub_depts_by_dept_id --dept", - "oa.list_pending_approvals --size": "oa.list_pending_approvals --limit", - "oa.list_user_visible_process --size": "oa.list_user_visible_process --limit" + "version": 3, + "baseline": { + "manifest": "schema-parameter-bindings-v3", + "sha256": "sha256:9008afd72243232d4bcb37b46f1e8fc10e2bc283c8af26c59fbdb4901ebeef2f", + "reason": "Reviewed v3 baseline for the complete active canonical/flag/property manifest after splitting the fixed-scope minutes list commands into distinct registry identities.", + "reviewed": true }, - "excluded": { - "calendar.list_acls --id": "current helper and MCP interface have no calendarId input", - "calendar.query_available_meeting_room --available": "hidden compatibility flag explicitly marked as a non-MCP parameter", - "minutes.query_user_tag_list --limit": "current helper and MCP interface have no pagination input" - }, - "added": { - "calendar.add_calendar_participant --attendees": "attendeesToAdd (current inherited flag and MCP interface)", - "calendar.add_calendar_participant --calendar-id": "calendarId (current inherited flag and MCP interface)", - "calendar.add_calendar_participant --event": "eventId (current inherited flag and MCP interface)", - "calendar.get_calendar_participants --calendar-id": "calendarId (current inherited flag and MCP interface)", - "calendar.get_calendar_participants --event": "eventId (current inherited flag and MCP interface)", - "calendar.remove_calendar_participant --attendees": "attendeesToRemove (current inherited flag and MCP interface)", - "calendar.remove_calendar_participant --calendar-id": "calendarId (current inherited flag and MCP interface)", - "calendar.remove_calendar_participant --event": "eventId (current inherited flag and MCP interface)", - "dev.search_open_platform_docs_rag --query": "keyword (public flag mapped to the helper's positional/MCP property)", - "devdoc.search_open_platform_docs_rag --query": "keyword (public flag mapped to the helper's positional/MCP property)", - "doc.delete_comment --node": "nodeId (new reviewed doc-comment helper payload)", - "doc.update_comment --mention": "mentionedUserIds (new reviewed doc-comment helper payload)", - "doc.update_comment --node": "nodeId (new reviewed doc-comment helper payload)", - "drive.create_shortcut --folder": "targetFolderId (new reviewed drive shortcut helper payload)", - "drive.create_shortcut --node": "nodeId (new reviewed drive shortcut helper payload)", - "drive.create_shortcut --workspace": "workspaceId (new reviewed drive shortcut helper payload)", - "drive.get_node_stats --node": "nodeId (new reviewed drive stats helper payload)", - "sheet.create_pivot_table --node": "nodeId (new reviewed sheet pivot-table helper payload)", - "sheet.delete_pivot_table --node": "nodeId (new reviewed sheet pivot-table helper payload)", - "sheet.hide_gridline --node": "nodeId (new reviewed sheet gridline helper payload)", - "sheet.list_pivot_tables --node": "nodeId (new reviewed sheet pivot-table helper payload)", - "sheet.show_gridline --node": "nodeId (new reviewed sheet gridline helper payload)", - "sheet.table_get --node": "nodeId (new reviewed sheet table helper payload)", - "sheet.table_put --node": "nodeId (new reviewed sheet table helper payload)", - "sheet.update_pivot_table --node": "nodeId (new reviewed sheet pivot-table helper payload)" + "removals": { + "calendar.list_acls --id": { + "reason": "The current helper and pinned interface have no calendarId input.", + "reviewed": true + }, + "calendar.query_available_meeting_room --available": { + "reason": "The hidden compatibility flag is explicitly not an MCP parameter.", + "reviewed": true + }, + "contact.get_dept_info_by_dept_id --id": { + "reason": "The public flag was renamed from --id to the unambiguous --dept spelling.", + "replaced_by": "contact.get_dept_info_by_dept_id --dept", + "reviewed": true + }, + "contact.get_dept_members_by_deptId --ids": { + "reason": "The public flag was renamed from --ids to the unambiguous --depts spelling.", + "replaced_by": "contact.get_dept_members_by_deptId --depts", + "reviewed": true + }, + "contact.get_sub_depts_by_dept_id --id": { + "reason": "The public flag was renamed from --id to the unambiguous --dept spelling.", + "replaced_by": "contact.get_sub_depts_by_dept_id --dept", + "reviewed": true + }, + "minutes.query_user_tag_list --limit": { + "reason": "The current helper and pinned interface have no pagination input.", + "reviewed": true + }, + "oa.list_pending_approvals --size": { + "reason": "The public pagination flag was normalized from --size to --limit.", + "replaced_by": "oa.list_pending_approvals --limit", + "reviewed": true + }, + "oa.list_user_visible_process --size": { + "reason": "The public pagination flag was normalized from --size to --limit.", + "replaced_by": "oa.list_user_visible_process --limit", + "reviewed": true + } }, "bindings": { "aisearch.search_enterprise": { @@ -47,6 +52,112 @@ "aisearch.search_enterprise_behavior": { "types": "searchTypes" }, + "aitable.base_copy": { + "only-struct": "onlyCopyMeta" + }, + "aitable.base_create": { + "name": "baseName" + }, + "aitable.base_update": { + "desc": "description", + "name": "newBaseName" + }, + "aitable.create": { + "name": "baseName" + }, + "aitable.dashboard_create": { + "name": "config.name" + }, + "aitable.dashboard_update": { + "name": "config.name" + }, + "aitable.export_data": { + "export-format": "format" + }, + "aitable.field_update": { + "name": "newFieldName" + }, + "aitable.query_records": { + "query": "keyword" + }, + "aitable.table_create": { + "name": "tableName" + }, + "aitable.table_update": { + "name": "newTableName" + }, + "aitable.view_create": { + "desc": "viewDescription", + "name": "viewName" + }, + "aitable.view_duplicate": { + "new-name": "newViewName", + "view-id": "sourceViewId" + }, + "aitable.view_get_aggregate": { + "view-id": "viewIds" + }, + "aitable.view_get_card": { + "view-id": "viewIds" + }, + "aitable.view_get_field_widths": { + "view-id": "viewIds" + }, + "aitable.view_get_fill_color_rule": { + "view-id": "viewIds" + }, + "aitable.view_get_filter": { + "view-id": "viewIds" + }, + "aitable.view_get_group": { + "view-id": "viewIds" + }, + "aitable.view_get_sort": { + "view-id": "viewIds" + }, + "aitable.view_get_timebar": { + "view-id": "viewIds" + }, + "aitable.view_get_visible_fields": { + "view-id": "viewIds" + }, + "aitable.view_update_fill_color_rule": { + "json": "conditionalFormats" + }, + "aitable.view_update_filter": { + "json": "config.filter" + }, + "aitable.view_update_group": { + "json": "config.group" + }, + "aitable.view_update_name": { + "name": "newViewName" + }, + "aitable.view_update_sort": { + "json": "config.sort" + }, + "aitable.view_update_timebar": { + "color-configs": "config.ganttTimebar.colorConfigs", + "display-field-id": "config.ganttTimebar.displayFieldId", + "end-field": "config.ganttTimebar.endField", + "json": "config.ganttTimebar", + "official-holiday": "config.ganttTimebar.officialHoliday", + "start-field": "config.ganttTimebar.startField", + "timeline-scale": "config.ganttTimebar.timelineScale" + }, + "aitable.view_update_visible_fields": { + "field-ids": "config.visibleFieldIds", + "json": "config.visibleFieldIds" + }, + "attendance.batch_get_employee_shifts": { + "end": "toDateTime", + "start": "fromDateTime", + "users": "userIds" + }, + "attendance.get_user_attendance_record": { + "date": "workDate", + "user": "userId" + }, "calendar.add_attachments": { "event": "eventId", "files": "attachments" @@ -73,6 +184,7 @@ "recurrence-interval": "recurrence.pattern.interval", "recurrence-range-type": "recurrence.range.type", "recurrence-type": "recurrence.pattern.type", + "remind-minutes": "reminders", "rich-text-desc": "richTextDescription", "rooms": "roomIds", "start": "startDateTime", @@ -100,6 +212,10 @@ "end": "endTime", "start": "startTime" }, + "calendar.list_meeting_room_groups": { + "limit": "pageSize", + "page": "pageIndex" + }, "calendar.list_suggested_event_times": { "duration": "durationMinutes", "timezone": "timeZone", @@ -107,6 +223,8 @@ }, "calendar.query_available_meeting_room": { "end": "endTime", + "limit": "pageSize", + "page": "pageIndex", "start": "startTime" }, "calendar.query_busy_status": { @@ -125,7 +243,7 @@ "status": "responseStatus" }, "calendar.search_calendar": { - "query": "calendarName" + "query": "query" }, "calendar.update_calendar_event": { "desc": "description", @@ -157,6 +275,9 @@ "id": "openconversation_id", "users": "userId" }, + "chat.add_robot_to_group": { + "id": "openConversationId" + }, "chat.add_text_emotion": { "group": "openConversationId", "msg-id": "openMsgId" @@ -170,6 +291,12 @@ "group": "openConversationId", "receiver": "receiverOpenDingTalkId" }, + "chat.create_group_conversation": { + "name": "groupName", + "thread": "convThreadEnabled", + "type": "groupType", + "users": "groupMembers" + }, "chat.dismiss_group": { "group": "openConversationId" }, @@ -186,18 +313,24 @@ }, "chat.get_conversation_info": { "group": "openConversationId", - "open-dingtalk-id": "openDingTalkId" + "open-dingtalk-id": "openDingTalkId", + "user": "openDingTalkId" }, "chat.get_group_invite_url": { "group": "openConversationId" }, "chat.list_conversation_message_v2": { + "direction": "forward", "group": "openconversation_id" }, "chat.list_custom_group_roles": { "group": "openConversationId" }, + "chat.list_group_bots": { + "group": "openConversationId" + }, "chat.list_individual_chat_message": { + "direction": "forward", "open-dingtalk-id": "openDingTalkId", "user": "userId" }, @@ -211,6 +344,7 @@ "size": "count" }, "chat.list_topic_replies": { + "direction": "forward", "group": "openconversationId", "limit": "pageSize", "time": "startTime" @@ -249,15 +383,26 @@ "id": "openConversationId", "users": "userIdList" }, + "chat.remove_robot_in_group": { + "bot-id": "openBotId", + "id": "openConversationId" + }, "chat.remove_text_emotion": { "group": "openConversationId", "msg-id": "openMsgId" }, + "chat.reply_personal_message": { + "ai-tag": "clawType", + "conversation-id": "openConversationId" + }, "chat.search_at_me_message": { "end": "endTime", "group": "openConversationId", "start": "startTime" }, + "chat.search_bots": { + "query": "keyword" + }, "chat.search_groups": { "query": "keyword" }, @@ -284,6 +429,22 @@ "end": "endTime", "start": "startTime" }, + "chat.search_my_robots": { + "name": "robotName", + "page": "currentPage", + "size": "pageSize" + }, + "chat.send_message_by_custom_robot": { + "at-all": "isAtAll", + "at-users": "atUserIds", + "token": "robotToken" + }, + "chat.send_personal_message": { + "ai-tag": "clawType", + "at-open-dingtalk-ids": "atOpenDingTalkIds", + "group": "openConversationId", + "open-dingtalk-id": "receiverOpenDingTalkId" + }, "chat.set_custom_user_roles": { "group": "openConversationId", "role-ids": "openRoleIds", @@ -341,45 +502,6 @@ "chat.update_streaming_card": { "content": "msgContent" }, - "doc.delete_comment": { - "node": "nodeId" - }, - "doc.update_comment": { - "mention": "mentionedUserIds", - "node": "nodeId" - }, - "drive.create_shortcut": { - "folder": "targetFolderId", - "node": "nodeId", - "workspace": "workspaceId" - }, - "drive.get_node_stats": { - "node": "nodeId" - }, - "sheet.create_pivot_table": { - "node": "nodeId" - }, - "sheet.delete_pivot_table": { - "node": "nodeId" - }, - "sheet.hide_gridline": { - "node": "nodeId" - }, - "sheet.list_pivot_tables": { - "node": "nodeId" - }, - "sheet.show_gridline": { - "node": "nodeId" - }, - "sheet.table_get": { - "node": "nodeId" - }, - "sheet.table_put": { - "node": "nodeId" - }, - "sheet.update_pivot_table": { - "node": "nodeId" - }, "contact.get_authorized_emp_rosterInfo": { "fields": "fieldCodeList" }, @@ -421,34 +543,234 @@ "type": "remindType", "users": "receiverUserIdList" }, + "doc.add_permission": { + "node": "nodeId", + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" + }, + "doc.copy_document": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "doc.create_comment": { + "mention": "mentionedUserIds", + "node": "nodeId" + }, + "doc.create_document": { + "folder": "folderId", + "workspace": "workspaceId" + }, + "doc.create_file": { + "folder": "folderId", + "workspace": "workspaceId" + }, + "doc.create_folder": { + "folder": "folderId", + "workspace": "workspaceId" + }, + "doc.create_inline_comment": { + "mention": "mentionedUserIds", + "node": "nodeId" + }, + "doc.delete_comment": { + "node": "nodeId" + }, + "doc.delete_document": { + "node": "nodeId" + }, + "doc.delete_document_block": { + "node": "nodeId" + }, + "doc.download_doc_attachment": { + "node": "nodeId" + }, + "doc.download_file": { + "node": "nodeId" + }, + "doc.get_document_content": { + "content-format": "format", + "node": "nodeId" + }, + "doc.get_document_info": { + "node": "nodeId" + }, + "doc.insert_document_block": { + "content-format": "format", + "node": "nodeId", + "parent-block": "referenceBlockId", + "ref-block": "referenceBlockId" + }, + "doc.list_comments": { + "cursor": "nextToken", + "limit": "pageSize", + "node": "nodeId", + "type": "commentType" + }, + "doc.list_document_blocks": { + "content-format": "format", + "node": "nodeId" + }, + "doc.list_nodes": { + "cursor": "pageToken", + "folder": "folderId", + "limit": "pageSize", + "workspace": "workspaceId" + }, + "doc.list_permission": { + "filter-role": "filterRoleIds", + "limit": "maxResults", + "node": "nodeId", + "workspace": "workspaceId" + }, + "doc.move_document": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "doc.remove_permission": { + "node": "nodeId", + "users": "userIds", + "workspace": "workspaceId" + }, + "doc.rename_document": { + "name": "newName", + "node": "nodeId" + }, + "doc.reply_comment": { + "comment-key": "replyCommentKey", + "mention": "mentionedUserIds", + "node": "nodeId" + }, + "doc.search_documents": { + "created-from": "createdTimeFrom", + "created-to": "createdTimeTo", + "creator-uids": "creatorUserIds", + "cursor": "pageToken", + "editor-uids": "editorUserIds", + "limit": "pageSize", + "mentioned-uids": "mentionedUserIds", + "query": "keyword", + "visited-from": "visitedTimeFrom", + "visited-to": "visitedTimeTo" + }, + "doc.update_comment": { + "mention": "mentionedUserIds", + "node": "nodeId" + }, + "doc.update_document": { + "content-format": "format", + "node": "nodeId" + }, + "doc.update_document_block": { + "content-format": "format", + "node": "nodeId" + }, + "doc.update_permission": { + "node": "nodeId", + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" + }, + "drive.add_permission": { + "node": "nodeId", + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" + }, + "drive.commit_upload": { + "folder": "parentId" + }, + "drive.copy_document": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "drive.create_folder": { + "folder": "parentId" + }, + "drive.create_shortcut": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "drive.delete_document": { + "node": "nodeId" + }, + "drive.download_file": { + "node": "fileId" + }, + "drive.get_file_info": { + "node": "fileId" + }, + "drive.get_node_stats": { + "node": "nodeId" + }, + "drive.get_upload_info": { + "folder": "parentId" + }, + "drive.list_permission": { + "filter-role": "filterRoleIds", + "limit": "maxResults", + "node": "nodeId", + "workspace": "workspaceId" + }, + "drive.list_spaces": { + "cursor": "nextToken", + "limit": "maxResults" + }, + "drive.move_document": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "drive.permission_remove": { + "node": "nodeId", + "users": "userIds", + "workspace": "workspaceId" + }, + "drive.permission_update": { + "node": "nodeId", + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" + }, + "drive.rename_document": { + "name": "newName", + "node": "nodeId" + }, + "drive.search_files": { + "created-from": "createdTimeFrom", + "created-to": "createdTimeTo", + "creator-uids": "creatorUserIds", + "cursor": "pageToken", + "limit": "pageSize", + "modified-from": "modifiedTimeFrom", + "modified-to": "modifiedTimeTo", + "query": "keyword", + "target": "searchTarget" + }, "mail.batch_move_message": { "folder": "destinationFolderId" }, "mail.create_draft": { - "attachment": "attachment_local", "cc": "ccRecipients", "content": "body", - "inline-attachment": "inlineAttachment_local", "to": "toRecipients" }, "mail.create_forward_draft": { - "attachment": "attachment_local", "content": "body", "id": "messageId", - "inline-attachment": "inlineAttachment_local", "to": "toRecipients" }, "mail.create_reply_draft": { - "attachment": "attachment_local", "content": "body", - "id": "messageId", - "inline-attachment": "inlineAttachment_local" + "id": "messageId" }, "mail.create_replyall_draft": { - "attachment": "attachment_local", "content": "body", "id": "messageId", - "inline-attachment": "inlineAttachment_local", "to": "toRecipients" }, "mail.create_user_message_template": { @@ -485,17 +807,13 @@ "id": "messageId" }, "mail.send_email": { - "attachment": "attachment_local", "cc": "ccRecipients", "content": "body", - "inline-attachment": "inlineAttachment_local", "to": "toRecipients" }, "mail.update_draft": { - "attachment": "attachment_local", "cc": "ccRecipients", "content": "body", - "inline-attachment": "inlineAttachment_local", "to": "toRecipients" }, "mail.update_user_message_template": { @@ -536,11 +854,33 @@ "id": "taskUuid" }, "minutes.get_minutes_transcription": { + "cursor": "nextToken", "id": "taskUuid" }, "minutes.get_speaker_summary": { "ids": "uuids" }, + "minutes.list_accessible_minutes": { + "cursor": "nextToken", + "end": "createTimeEnd", + "limit": "maxResults", + "query": "keyword", + "start": "createTimeStart" + }, + "minutes.list_by_keyword_and_time_range": { + "cursor": "nextToken", + "end": "createTimeEnd", + "limit": "maxResults", + "query": "keyword", + "start": "createTimeStart" + }, + "minutes.list_shared_minutes": { + "cursor": "nextToken", + "end": "createTimeEnd", + "limit": "maxResults", + "query": "keyword", + "start": "createTimeStart" + }, "minutes.list_minutes_todos": { "id": "taskUuid" }, @@ -551,7 +891,8 @@ "id": "taskUuid" }, "minutes.query_minutes_by_tag_id": { - "limit": "size" + "cursor": "nextToken", + "limit": "maxResults" }, "minutes.record_pause": { "id": "uuid" @@ -586,6 +927,7 @@ "instance-id": "processInstanceId" }, "oa.dingflow_comments": { + "content": "text", "instance-id": "processInstanceId" }, "oa.get_done_tasks": { @@ -607,7 +949,9 @@ "page": "pageNumber" }, "oa.list_initiated_instances": { + "cursor": "nextToken", "end": "endTime", + "limit": "maxResults", "start": "startTime" }, "oa.list_pending_approvals": { @@ -619,8 +963,12 @@ "oa.list_pending_tasks": { "instance-id": "processInstanceId" }, + "oa.list_user_visible_process": { + "limit": "pageSize" + }, "oa.oa_cc_noticer": { - "instance-id": "processInstanceId" + "instance-id": "processInstanceId", + "users": "userList" }, "oa.reject_processInstance": { "instance-id": "processInstanceId" @@ -628,9 +976,6 @@ "oa.revoke_processInstance": { "instance-id": "processInstanceId" }, - "oa.list_user_visible_process": { - "limit": "pageSize" - }, "report.get_received_report_list": { "end": "endTime", "start": "startTime" @@ -651,6 +996,231 @@ "report.get_template_details_by_name": { "name": "report_template_name" }, + "sheet.add_dimension": { + "node": "nodeId" + }, + "sheet.append_rows": { + "node": "nodeId" + }, + "sheet.clear_range": { + "node": "nodeId" + }, + "sheet.copy_sheet": { + "name": "title", + "node": "nodeId" + }, + "sheet.create_cond_format": { + "node": "nodeId" + }, + "sheet.create_filter": { + "node": "nodeId" + }, + "sheet.create_filter_view": { + "node": "nodeId" + }, + "sheet.create_float_image": { + "node": "nodeId" + }, + "sheet.create_pivot_table": { + "node": "nodeId" + }, + "sheet.create_sheet": { + "node": "nodeId" + }, + "sheet.create_workspace_sheet": { + "folder": "folderId", + "workspace": "workspaceId" + }, + "sheet.delete_cond_format": { + "node": "nodeId" + }, + "sheet.delete_dimension": { + "node": "nodeId" + }, + "sheet.delete_dropdown_lists": { + "node": "nodeId" + }, + "sheet.delete_filter": { + "node": "nodeId" + }, + "sheet.delete_filter_view": { + "node": "nodeId" + }, + "sheet.delete_float_image": { + "node": "nodeId" + }, + "sheet.delete_pivot_table": { + "node": "nodeId" + }, + "sheet.delete_sheet": { + "node": "nodeId" + }, + "sheet.fill_range": { + "node": "nodeId", + "target-range": "destinationRange" + }, + "sheet.filter_clear_criteria": { + "node": "nodeId" + }, + "sheet.filter_view_delete_criteria": { + "node": "nodeId" + }, + "sheet.filter_view_get_criteria": { + "node": "nodeId" + }, + "sheet.filter_view_info": { + "node": "nodeId" + }, + "sheet.filter_view_list_criteria": { + "node": "nodeId" + }, + "sheet.find_cells": { + "match-formula": "matchFormulaText", + "node": "nodeId", + "query": "text", + "use-regexp": "useRegExp" + }, + "sheet.get_all_sheets": { + "node": "nodeId" + }, + "sheet.get_cond_format": { + "node": "nodeId" + }, + "sheet.get_dropdown_lists": { + "node": "nodeId" + }, + "sheet.get_filter": { + "node": "nodeId" + }, + "sheet.get_filter_views": { + "node": "nodeId" + }, + "sheet.get_float_image": { + "node": "nodeId" + }, + "sheet.get_range_as_csv": { + "node": "nodeId" + }, + "sheet.hide_gridline": { + "node": "nodeId" + }, + "sheet.info": { + "node": "nodeId" + }, + "sheet.insert_dimension": { + "node": "nodeId" + }, + "sheet.list_float_images": { + "node": "nodeId" + }, + "sheet.list_pivot_tables": { + "node": "nodeId" + }, + "sheet.merge_cells": { + "node": "nodeId", + "range": "rangeAddress" + }, + "sheet.move_dimension": { + "node": "nodeId" + }, + "sheet.range_batch_set_style": { + "node": "nodeId" + }, + "sheet.range_copy_to": { + "node": "nodeId", + "target-range": "destinationRange" + }, + "sheet.range_move_to": { + "node": "nodeId", + "target-range": "destinationRange" + }, + "sheet.range_read": { + "node": "nodeId", + "value-render-option": "valueRenderOption" + }, + "sheet.range_set_style": { + "bg-color": "backgroundColors", + "bg-colors-json": "backgroundColors", + "font-color": "fontColors", + "font-colors-json": "fontColors", + "font-size": "fontSizes", + "font-sizes-json": "fontSizes", + "font-weight": "fontWeights", + "font-weights-json": "fontWeights", + "h-align": "horizontalAlignments", + "h-aligns-json": "horizontalAlignments", + "node": "nodeId", + "range": "rangeAddress", + "v-align": "verticalAlignments", + "v-aligns-json": "verticalAlignments" + }, + "sheet.range_update": { + "node": "nodeId", + "range": "rangeAddress" + }, + "sheet.replace_all": { + "find": "text", + "node": "nodeId", + "replacement": "replaceText", + "use-regexp": "useRegExp" + }, + "sheet.set_dropdown_lists": { + "multi-select": "enableMultiSelect", + "node": "nodeId" + }, + "sheet.set_range_from_csv": { + "node": "nodeId" + }, + "sheet.show_gridline": { + "node": "nodeId" + }, + "sheet.sort_filter": { + "ascending": "field.ascending", + "column": "field.column", + "node": "nodeId" + }, + "sheet.sort_range": { + "node": "nodeId" + }, + "sheet.submit_export_job": { + "node": "nodeId" + }, + "sheet.table_get": { + "node": "nodeId" + }, + "sheet.table_put": { + "node": "nodeId" + }, + "sheet.unmerge_range": { + "node": "nodeId", + "range": "rangeAddress" + }, + "sheet.update_cond_format": { + "node": "nodeId" + }, + "sheet.update_dimension": { + "node": "nodeId" + }, + "sheet.update_filter": { + "node": "nodeId" + }, + "sheet.update_filter_view": { + "node": "nodeId" + }, + "sheet.update_float_image": { + "node": "nodeId" + }, + "sheet.update_pivot_table": { + "node": "nodeId" + }, + "sheet.update_sheet": { + "name": "title", + "node": "nodeId" + }, + "sheet.write_image": { + "node": "nodeId", + "range": "rangeAddress" + }, "todo.add_task_executors": { "executors": "todoExecutorsAddRequest.executorIds", "task-id": "todoExecutorsAddRequest.taskId" @@ -659,6 +1229,9 @@ "participants": "todoParticipantsAddRequest.participantIds", "task-id": "todoParticipantsAddRequest.taskId" }, + "todo.add_todo_attachment": { + "task-id": "todoAttachmentAddRequest.taskId" + }, "todo.add_todo_reminder": { "base-time": "todoReminderAddRequest.baseTime", "due-date-offset": "todoReminderAddRequest.dueDateOffset", @@ -673,6 +1246,19 @@ "recurrence": "PersonalTodoCreateVO.recurrence", "title": "PersonalTodoCreateVO.subject" }, + "todo.create_personal_todo": { + "due": "PersonalTodoCreateVO.dueTime", + "executors": "PersonalTodoCreateVO.executorIds", + "priority": "PersonalTodoCreateVO.priority", + "recurrence": "PersonalTodoCreateVO.recurrence", + "title": "PersonalTodoCreateVO.subject" + }, + "todo.get_user_todos_in_current_org": { + "page": "pageNum", + "priority": "priorityList", + "size": "pageSize", + "status": "todoStatus" + }, "todo.list_todo_comment": { "size": "pageSize" }, @@ -687,6 +1273,612 @@ "todo.reset_todo_reminder": { "reminder-rules": "todoReminderUpdateRequest.reminderRules", "task-id": "todoReminderUpdateRequest.taskId" + }, + "todo.update_todo_done_status": { + "status": "isDone" + }, + "todo.update_todo_task": { + "done": "TodoUpdateRequest.isDone", + "due": "TodoUpdateRequest.dueTime", + "priority": "TodoUpdateRequest.priority", + "task-id": "TodoUpdateRequest.taskId", + "title": "TodoUpdateRequest.subject" + }, + "wiki.add_member": { + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" + }, + "wiki.create_file": { + "folder": "folderId", + "workspace": "workspaceId" + }, + "wiki.create_wikiSpace": { + "desc": "description" + }, + "wiki.delete_document": { + "node": "nodeId" + }, + "wiki.delete_wikiSpace": { + "workspace": "workspaceId" + }, + "wiki.get_wikiSpace": { + "workspace": "workspaceId" + }, + "wiki.list_member": { + "filter-role": "filterRoleIds", + "limit": "maxResults", + "workspace": "workspaceId" + }, + "wiki.list_nodes": { + "cursor": "pageToken", + "folder": "folderId", + "limit": "pageSize", + "workspace": "workspaceId" + }, + "wiki.node_copy": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "wiki.node_move": { + "folder": "targetFolderId", + "node": "nodeId", + "workspace": "workspaceId" + }, + "wiki.node_search": { + "cursor": "pageToken", + "limit": "pageSize", + "query": "keyword", + "workspace": "workspaceIds" + }, + "wiki.remove_member": { + "users": "userIds", + "workspace": "workspaceId" + }, + "wiki.search_wikiSpaces": { + "limit": "pageSize", + "query": "keyword" + }, + "wiki.update_member": { + "role": "roleId", + "users": "userIds", + "workspace": "workspaceId" } + }, + "corrections": { + "calendar.search_calendar --query": { + "old_property": "calendarName", + "new_property": "query", + "reason": "The runtime helper sends query and the pinned search_calendar metadata exposes query rather than calendarName.", + "reviewed": true + }, + "minutes.query_minutes_by_tag_id --limit": { + "old_property": "size", + "new_property": "maxResults", + "reason": "The runtime helper sends maxResults and the pinned query_minutes_by_tag_id metadata exposes maxResults rather than size.", + "reviewed": true + } + }, + "mapping_exclusions": { + "aitable.field_create --ai-config": "Conditional aggregate wrapper: --ai-config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].aiConfig, so this flag has no unconditional one-to-one RPC property.", + "aitable.field_create --config": "Conditional aggregate wrapper: --config is only consumed when --fields is absent and --name/--type select the single-field shorthand; the CLI then builds fields[0].config (and may merge --options), so this flag has no unconditional one-to-one RPC property.", + "aitable.field_create --name": "Conditional aggregate wrapper: --name is ignored when --fields is supplied and otherwise becomes fields[0].fieldName only together with --type; it is not an unconditional direct create_fields parameter.", + "aitable.field_create --type": "Conditional aggregate wrapper: --type is ignored when --fields is supplied and otherwise becomes fields[0].type only together with --name; it is not an unconditional direct create_fields parameter.", + "aitable.form_delete --base-id": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_delete --table-id": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_delete --view-id": "Reviewed unpinned adapter: aitable.form_delete has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_hide --base-id": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_hide --field-id": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_hide --hidden": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --hidden is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_hide --table-id": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_hide --view-id": "Reviewed unpinned adapter: aitable.form_field_hide has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_list --base-id": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_list --table-id": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_list --view-id": "Reviewed unpinned adapter: aitable.form_field_list has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --base-id": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --field-description": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-description is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --field-id": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --field-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --required": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --required is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --table-id": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_field_update --view-id": "Reviewed unpinned adapter: aitable.form_field_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_get --base-id": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_get --table-id": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_get --view-id": "Reviewed unpinned adapter: aitable.form_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_list --base-id": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_list --table-id": "Reviewed unpinned adapter: aitable.form_list has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_get --base-id": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_get --table-id": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_get --view-id": "Reviewed unpinned adapter: aitable.form_share_get has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_update --base-id": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_update --enabled": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --enabled is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_update --table-id": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_share_update --view-id": "Reviewed unpinned adapter: aitable.form_share_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --base-id": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --base-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --description": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --description is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --name": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --table-id": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --table-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --title": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --title is a CLI wrapper input and does not publish a direct interface property.", + "aitable.form_update --view-id": "Reviewed unpinned adapter: aitable.form_update has no singular pinned interface_ref; --view-id is a CLI wrapper input and does not publish a direct interface property.", + "aitable.query_records --all": "local auto-pagination control; never sent to query_records", + "aitable.query_records --page-limit": "local auto-pagination loop limit; never sent to query_records", + "aitable.record_create --records-file": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as create_records.records; the path itself is not an RPC property.", + "aitable.record_update --records-file": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as update_records.records; the path itself is not an RPC property.", + "aitable.record_upsert --records-file": "CLI-local file adapter: the flag value is a filesystem path, which the CLI reads and JSON-decodes before sending the resulting array as record_upsert.records; the path itself is not an RPC property.", + "aitable.view_lock --off": "Conditional CLI selector: absence maps to action=lock while --off=true maps to action=unlock; the boolean flag value is never passed to lock_or_unlock_view and therefore has no direct RPC property.", + "aitable.view_update_aggregate --action": "Composite wrapper pairs --action with a dynamic --field-id key inside config.aggregate, so it has no independent direct property.", + "aitable.view_update_aggregate --clear-field-id": "Composite wrapper expands each selected field ID into a dynamic null entry inside config.aggregate, so there is no single direct property.", + "aitable.view_update_aggregate --field-id": "Composite wrapper uses the supplied field ID as a dynamic key inside config.aggregate, so there is no static direct property.", + "aitable.view_update_aggregate --json": "Composite wrapper locally merges the aggregate JSON map with typed changes before update_view, so the flag is not one direct property.", + "aitable.view_update_card --cover-field-id": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "aitable.view_update_card --cover-mode": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "aitable.view_update_card --cover-resize-mode": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "aitable.view_update_card --display-field-name": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "aitable.view_update_card --hidden-field-title": "Composite wrapper selects kanbanCard or galleryCard after a get_views preflight, so the destination property depends on runtime view type.", + "aitable.view_update_card --json": "Composite wrapper selects kanbanCard or galleryCard and locally merges the JSON block before update_view, so it has no single direct property.", + "aitable.view_update_card --no-cover": "Composite wrapper converts the flag to coverFieldId=NONE in a runtime-selected card block, so the boolean itself is not a direct property.", + "aitable.view_update_field_widths --field-id": "Composite wrapper uses the field ID as a dynamic key inside config.fieldWidths after a get_views preflight, so there is no static property.", + "aitable.view_update_field_widths --json": "Composite wrapper locally merges a dynamic field-width map before update_view, so the JSON flag is not one direct property.", + "aitable.view_update_field_widths --width": "Composite wrapper pairs width with a dynamic field-id key inside config.fieldWidths, so width has no independent direct property.", + "attendance.adjustment_get --adjustment-id": "Reviewed unpinned adapter: attendance.adjustment_get has no singular pinned interface_ref; --adjustment-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.adjustment_search --limit": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.adjustment_search --page": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "attendance.adjustment_search --query": "Reviewed unpinned adapter: attendance.adjustment_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "attendance.approve_list --end": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.approve_list --start": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.approve_list --types": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --types is a CLI wrapper input and does not publish a direct interface property.", + "attendance.approve_list --users": "Reviewed unpinned adapter: attendance.approve_list has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.approve_templates --type": "Reviewed unpinned adapter: attendance.approve_templates has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --absent-min": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --absent-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --plan-id": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --plan-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --remark": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --remark is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --result": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --result-id": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --result-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --time": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --time is a CLI wrapper input and does not publish a direct interface property.", + "attendance.boss_check --user-say-yes": "Reviewed unpinned adapter: attendance.boss_check has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_record --end": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_record --start": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_record --users": "Reviewed unpinned adapter: attendance.check_record has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_result --end": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_result --limit": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_result --offset": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --offset is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_result --start": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.check_result --users": "Reviewed unpinned adapter: attendance.check_result has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.checkin_records --end": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.checkin_records --operator-corp-id": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-corp-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.checkin_records --operator-staff-id": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --operator-staff-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.checkin_records --staff-ids": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --staff-ids is a CLI wrapper input and does not publish a direct interface property.", + "attendance.checkin_records --start": "Reviewed unpinned adapter: attendance.checkin_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_create --class-vo": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_create --name": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_create --owner": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_create --yes": "Reviewed unpinned adapter: attendance.class_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_get --class-id": "Reviewed unpinned adapter: attendance.class_get has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_search --filter-type": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --filter-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_search --limit": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_search --page": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_search --query": "Reviewed unpinned adapter: attendance.class_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_update --class-id": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_update --class-vo": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --class-vo is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_update --name": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_update --owner": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "attendance.class_update --yes": "Reviewed unpinned adapter: attendance.class_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.get_attendance_summary --date": "local CLI adapter converts the date into queryDate for an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "attendance.get_attendance_summary --stats-type": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "attendance.get_attendance_summary --user": "local CLI adapter invokes an unpinned attendance-wukong RPC; no direct pinned interface property is advertised", + "attendance.globalsetting_get --scope": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_get --setting-scene": "Reviewed unpinned adapter: attendance.globalsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --boss-daily-report-type": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-daily-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --boss-monthly-report-type": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-monthly-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --boss-weekly-report-type": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --boss-weekly-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --check-remind-corp": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-corp is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --check-remind-pc-corp": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --check-remind-pc-corp is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --enable-check-cert-push": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-check-cert-push is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --enable-personal-daily-report": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-daily-report is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --enable-personal-monthly-report": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-monthly-report is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --enable-personal-weekly-report": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --enable-personal-weekly-report-card": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --enable-personal-weekly-report-card is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --fast-check-corp": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --fast-check-corp is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --lack-remind-corp": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --lack-remind-corp is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --scope": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --scope is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --setting-scene": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "attendance.globalsetting_save --yes": "Reviewed unpinned adapter: attendance.globalsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --corp-id": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --corp-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --group-vo": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --name": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --owner": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --type": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_create --yes": "Reviewed unpinned adapter: attendance.group_create has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_filtered_get --bles": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --bles is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_filtered_get --group-id": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_filtered_get --member": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --member is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_filtered_get --position": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --position is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_filtered_get --wifi": "Reviewed unpinned adapter: attendance.group_filtered_get has no singular pinned interface_ref; --wifi is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_get --group-id": "Reviewed unpinned adapter: attendance.group_get has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --limit": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --page": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --query": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --query-ble": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-ble is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --query-position": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --query-position is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_search --type": "Reviewed unpinned adapter: attendance.group_search has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --classIds": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --classIds is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --enable-outside-check": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --enable-outside-check is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --group-id": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --group-vo": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --group-vo is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --name": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --owner": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --owner is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --type": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update --yes": "Reviewed unpinned adapter: attendance.group_update has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --add-depts": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-depts is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --add-extra-users": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-extra-users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --add-users": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --add-users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --group-id": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --group-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --remove-depts": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-depts is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --remove-extra-users": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-extra-users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --remove-users": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --remove-users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.group_update_members --yes": "Reviewed unpinned adapter: attendance.group_update_members has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.overtime_get --overtime-id": "Reviewed unpinned adapter: attendance.overtime_get has no singular pinned interface_ref; --overtime-id is a CLI wrapper input and does not publish a direct interface property.", + "attendance.overtime_search --limit": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.overtime_search --page": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --page is a CLI wrapper input and does not publish a direct interface property.", + "attendance.overtime_search --query": "Reviewed unpinned adapter: attendance.overtime_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_data --columns": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --columns is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_data --end": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_data --start": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_data --users": "Reviewed unpinned adapter: attendance.report_query_data has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_leave --end": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_leave --leave-names": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --leave-names is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_leave --start": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.report_query_leave --users": "Reviewed unpinned adapter: attendance.report_query_leave has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_get --end": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_get --start": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_get --users": "Reviewed unpinned adapter: attendance.schedule_get has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_import --groupId": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --groupId is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_import --scheduleVOS": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --scheduleVOS is a CLI wrapper input and does not publish a direct interface property.", + "attendance.schedule_import --user-say-yes": "Reviewed unpinned adapter: attendance.schedule_import has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_get --setting-scene": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_get --user": "Reviewed unpinned adapter: attendance.selfsetting_get has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --boss-month-report-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-month-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --boss-push-start-min": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-push-start-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --boss-week-report-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --boss-week-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --can-update-off-duty": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --can-update-off-duty is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --check-remind-setting": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-setting is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --check-remind-user-off-duty": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-off-duty is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --check-remind-user-on-duty": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-remind-user-on-duty is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --check-result-msg": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --check-result-msg is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --enable-offduty-check-remind-of-pc": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-offduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --enable-onduty-check-remind-of-pc": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --enable-onduty-check-remind-of-pc is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --fast-check-late-need-confirm": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --fast-check-late-need-confirm is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --lack-remind-user": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-remind-user is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --lack-send-todo-msg": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --lack-send-todo-msg is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --offduty-check-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-check-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --offduty-remind-end-min": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --offduty-remind-start-min": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --offduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --onduty-check-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-check-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --onduty-remind-end-min": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-end-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --onduty-remind-start-min": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --onduty-remind-start-min is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --person-daily-report-switch": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-daily-report-switch is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --person-month-report-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-month-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --person-week-report-type": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --person-week-report-type is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --setting-scene": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --setting-scene is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --user": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --vibration-remind-switch": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --vibration-remind-switch is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --voice-remind-switch": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --voice-remind-switch is a CLI wrapper input and does not publish a direct interface property.", + "attendance.selfsetting_save --yes": "Reviewed unpinned adapter: attendance.selfsetting_save has no singular pinned interface_ref; --yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_balance --leave-code": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_balance --users": "Reviewed unpinned adapter: attendance.vacation_balance has no singular pinned interface_ref; --users is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_records --end": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_records --leave-code": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_records --start": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_records --user": "Reviewed unpinned adapter: attendance.vacation_records has no singular pinned interface_ref; --user is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --end": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --end is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --leave-code": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --num": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --num is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --reason": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --reason is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --start": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --start is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --target": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --target is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_save_balance --user-say-yes": "Reviewed unpinned adapter: attendance.vacation_save_balance has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --leave-code": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --leave-code is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --name": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --paid": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --paid is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --per-hours": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --per-hours is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --unit": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --unit is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --user-say-yes": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --user-say-yes is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --visibility-rules": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --visibility-rules is a CLI wrapper input and does not publish a direct interface property.", + "attendance.vacation_update_type --when-can-leave": "Reviewed unpinned adapter: attendance.vacation_update_type has no singular pinned interface_ref; --when-can-leave is a CLI wrapper input and does not publish a direct interface property.", + "chat.add_message_favorite --open-conversation-id": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", + "chat.add_message_favorite --open-message-id": "Reviewed unpinned adapter: chat.add_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", + "chat.create_text_emotion --background-id": "Runtime extension: the executable helper forwards backgroundId to im/create_text_emotion, but the pinned source-revision metadata does not declare that optional property; preserve the compatibility flag without advertising it as a pinned RPC field.", + "chat.list_conversation_message_v2 --open-dingtalk-id": "selects the alternate list_individual_chat_message branch", + "chat.list_conversation_message_v2 --user": "selects the alternate list_individual_chat_message branch", + "chat.list_message_favorites --cursor": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "chat.list_message_favorites --size": "Reviewed unpinned adapter: chat.list_message_favorites has no singular pinned interface_ref; --size is a CLI wrapper input and does not publish a direct interface property.", + "chat.query_msg_read_status --user": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", + "chat.query_msg_read_status --users": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to targetUserIds or targetOpenDingTalkIds according to its runtime ID shape; there is no single RPC property for this flag", + "chat.remove_message_favorite --open-conversation-id": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-conversation-id is a CLI wrapper input and does not publish a direct interface property.", + "chat.remove_message_favorite --open-message-id": "Reviewed unpinned adapter: chat.remove_message_favorite has no singular pinned interface_ref; --open-message-id is a CLI wrapper input and does not publish a direct interface property.", + "chat.reply_personal_message --ref-msg-id": "serialized into the aggregate content JSON string", + "chat.reply_personal_message --ref-sender": "resolved then serialized into the aggregate content JSON string", + "chat.reply_personal_message --text": "serialized into the aggregate content JSON string", + "chat.search_groups --cursor": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "chat.search_groups --exclude-muted": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --exclude-muted is a CLI wrapper input and does not publish a direct interface property.", + "chat.search_groups --limit": "Reviewed unpinned adapter: chat.search_groups has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "chat.search_messages --user": "conditional wrapper: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", + "chat.search_messages --users": "conditional wrapper/alias of --user: parseCSVValues + appendChatIDArgs routes each supplied identifier to senderUserIds or senderOpenDingTakIds according to its runtime ID shape; there is no single RPC property for this flag", + "chat.send_personal_message --file-path": "local upload/preprocessing input", + "chat.send_personal_message --media-id": "serialized into the aggregate content payload", + "chat.send_personal_message --text": "serialized into the aggregate content payload", + "chat.send_personal_message --title": "serialized into the aggregate content payload", + "chat.send_personal_message --user": "resolves a userId to receiverOpenDingTalkId when possible and otherwise uses the unpinned receiverUserId compatibility property", + "chat.set_group_member_mute_list --user": "conditional wrapper/alias of --users: userIds are remotely resolved to openDingTalkIds outside dry-run and otherwise may be sent as uids; openDingTalkId inputs are sent as openDingTalkIds, so one exact property would misdescribe execution", + "chat.transfer_group_owner --user": "conditional compatibility input: a userId is sent as newOwnerUid, while an openDingTalkId is sent as newOwnerOpenDingTalkId; the runtime ID-shape branch has no single RPC property", + "chat.update_conv_member_roles --user": "conditional wrapper/alias of --users: splitChatIDValues sends userIds as uids and openDingTalkIds as openDingTalkIds; there is no single RPC property for this flag", + "dev.add_dev_app_members --member-type": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.add_dev_app_members --unified-app-id": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.add_dev_app_members --user-ids": "Reviewed unpinned adapter: dev.add_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", + "dev.apply_dev_app_permissions --scope-values": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", + "dev.apply_dev_app_permissions --unified-app-id": "Reviewed unpinned adapter: dev.apply_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app --desc": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app --icon-media-id": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app --name": "Reviewed unpinned adapter: dev.create_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app_version --desc": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app_version --unified-app-id": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.create_dev_app_version --version": "Reviewed unpinned adapter: dev.create_dev_app_version has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", + "dev.delete_dev_app --confirm-name": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --confirm-name is a CLI wrapper input and does not publish a direct interface property.", + "dev.delete_dev_app --unified-app-id": "Reviewed unpinned adapter: dev.delete_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.disable_dev_app --unified-app-id": "Reviewed unpinned adapter: dev.disable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.disable_dev_app_robot --unified-app-id": "Reviewed unpinned adapter: dev.disable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.enable_dev_app --unified-app-id": "Reviewed unpinned adapter: dev.enable_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.enable_dev_app_robot --unified-app-id": "Reviewed unpinned adapter: dev.enable_dev_app_robot has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app --unified-app-id": "Reviewed unpinned adapter: dev.get_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app_credentials --unified-app-id": "Reviewed unpinned adapter: dev.get_dev_app_credentials has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app_version_detail --unified-app-id": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app_version_detail --version-id": "Reviewed unpinned adapter: dev.get_dev_app_version_detail has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app_version_status --unified-app-id": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_dev_app_version_status --version-id": "Reviewed unpinned adapter: dev.get_dev_app_version_status has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_extension_robot_config --unified-app-id": "Reviewed unpinned adapter: dev.get_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.get_extension_webapp_config --unified-app-id": "Reviewed unpinned adapter: dev.get_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --app-group-id": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-group-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --app-key": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --app-key is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --creator": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --creator is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --cursor": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --develop-type": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --develop-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --filter-cool-app": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --filter-cool-app is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --name": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --page-size": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --robot-name": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --sort-order": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-order is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app --sort-type": "Reviewed unpinned adapter: dev.list_dev_app has no singular pinned interface_ref; --sort-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_events --cursor": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_events --keyword": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_events --page-size": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_events --unified-app-id": "Reviewed unpinned adapter: dev.list_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_members --unified-app-id": "Reviewed unpinned adapter: dev.list_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --api-status": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --api-status is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --auth-status": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --auth-status is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --cursor": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --keyword": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --keyword is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --page-size": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --scope-type": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --scope-value": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --scope-value is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_permissions --unified-app-id": "Reviewed unpinned adapter: dev.list_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_versions --cursor": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_versions --page-size": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --page-size is a CLI wrapper input and does not publish a direct interface property.", + "dev.list_dev_app_versions --unified-app-id": "Reviewed unpinned adapter: dev.list_dev_app_versions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.publish_dev_app_version --approver-user-id": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --approver-user-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.publish_dev_app_version --confirmed-sensitive": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --confirmed-sensitive is a CLI wrapper input and does not publish a direct interface property.", + "dev.publish_dev_app_version --unified-app-id": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.publish_dev_app_version --version-id": "Reviewed unpinned adapter: dev.publish_dev_app_version has no singular pinned interface_ref; --version-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.query_robot_create_result --task-id": "Reviewed unpinned adapter: dev.query_robot_create_result has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.remove_dev_app_members --member-type": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --member-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.remove_dev_app_members --unified-app-id": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.remove_dev_app_members --user-ids": "Reviewed unpinned adapter: dev.remove_dev_app_members has no singular pinned interface_ref; --user-ids is a CLI wrapper input and does not publish a direct interface property.", + "dev.remove_dev_app_permissions --scope-values": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --scope-values is a CLI wrapper input and does not publish a direct interface property.", + "dev.remove_dev_app_permissions --unified-app-id": "Reviewed unpinned adapter: dev.remove_dev_app_permissions has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --add-scope": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --add-scope is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --brief": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --brief is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --desc": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --disable-ssl-verify": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --disable-ssl-verify is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --event-callback-url": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --event-callback-url is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --i18n-brief": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-brief is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --i18n-description": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-description is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --i18n-name": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --i18n-name is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --icon-media-id": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --mode": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --mode is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --name": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --outgoing-url": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --outgoing-url is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --skills": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --skills is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_robot_config --unified-app-id": "Reviewed unpinned adapter: dev.set_extension_robot_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_webapp_config --h5-page-type": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --h5-page-type is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_webapp_config --homepage-url": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --homepage-url is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_webapp_config --omp-url": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --omp-url is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_webapp_config --pc-homepage-url": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --pc-homepage-url is a CLI wrapper input and does not publish a direct interface property.", + "dev.set_extension_webapp_config --unified-app-id": "Reviewed unpinned adapter: dev.set_extension_webapp_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --desc": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --icon-media-id": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --name": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --preview-media-id": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --preview-media-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --robot-name": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --robot-name is a CLI wrapper input and does not publish a direct interface property.", + "dev.submit_robot_create_task --task-id": "Reviewed unpinned adapter: dev.submit_robot_create_task has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.subscribe_dev_app_events --event-codes": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", + "dev.subscribe_dev_app_events --unified-app-id": "Reviewed unpinned adapter: dev.subscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.unsubscribe_dev_app_events --event-codes": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --event-codes is a CLI wrapper input and does not publish a direct interface property.", + "dev.unsubscribe_dev_app_events --unified-app-id": "Reviewed unpinned adapter: dev.unsubscribe_dev_app_events has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app --desc": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --desc is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app --icon-media-id": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --icon-media-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app --name": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app --unified-app-id": "Reviewed unpinned adapter: dev.update_dev_app has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app_security_config --ip-whitelist": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --ip-whitelist is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app_security_config --redirect-urls": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --redirect-urls is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app_security_config --sso-urls": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --sso-urls is a CLI wrapper input and does not publish a direct interface property.", + "dev.update_dev_app_security_config --unified-app-id": "Reviewed unpinned adapter: dev.update_dev_app_security_config has no singular pinned interface_ref; --unified-app-id is a CLI wrapper input and does not publish a direct interface property.", + "doc.create_document --content": "pipeline input; maps to markdown or a follow-up update_document jsonml call", + "doc.create_document --content-file": "local file input for the content pipeline", + "doc.create_document --content-format": "local branch selector across create_document/update_document", + "doc.create_document --fix-jsonml": "local JSONML normalization control", + "doc.delete_comment --comment-key": "Reviewed unpinned adapter: doc.delete_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", + "doc.download_file --output": "local output path", + "doc.get_document_content --output": "local output path", + "doc.import_get --task-id": "Reviewed unpinned adapter: doc.import_get has no singular pinned interface_ref; --task-id is a CLI wrapper input and does not publish a direct interface property.", + "doc.insert_document_block --fix-jsonml": "local JSONML normalization control", + "doc.insert_document_block --heading": "aggregate convenience input used to build element", + "doc.insert_document_block --level": "aggregate convenience input used to build element", + "doc.insert_document_block --text": "aggregate convenience input used to build element", + "doc.list_document_blocks --block-id": "runtime extension sends blockId, which is absent from the pinned list_document_blocks metadata", + "doc.template_apply --folder": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_apply --name": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_apply --template-id": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_apply --workspace": "Reviewed unpinned adapter: doc.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_list --cursor": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_list --limit": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_list --source": "Reviewed unpinned adapter: doc.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_search --cursor": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_search --limit": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_search --query": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "doc.template_search --source": "Reviewed unpinned adapter: doc.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "doc.update_comment --comment-key": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --comment-key is a CLI wrapper input and does not publish a direct interface property.", + "doc.update_comment --content": "Reviewed unpinned adapter: doc.update_comment has no singular pinned interface_ref; --content is a CLI wrapper input and does not publish a direct interface property.", + "doc.update_document --content": "pipeline input mapped to markdown or jsonml according to content-format", + "doc.update_document --content-file": "local file input for the content pipeline", + "doc.update_document --dry-run": "local preview control", + "doc.update_document --fix-jsonml": "local JSONML normalization control", + "doc.update_document --yes": "local confirmation control", + "doc.update_document_block --fix-jsonml": "local JSONML normalization control", + "doc.update_document_block --heading": "aggregate convenience input used to build element", + "doc.update_document_block --level": "aggregate convenience input used to build element", + "doc.update_document_block --text": "aggregate convenience input used to build element", + "doc.version_list --cursor": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "doc.version_list --limit": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "doc.version_list --node": "Reviewed unpinned adapter: doc.version_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "doc.version_revert --node": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "doc.version_revert --version": "Reviewed unpinned adapter: doc.version_revert has no singular pinned interface_ref; --version is a CLI wrapper input and does not publish a direct interface property.", + "doc.version_save --node": "Reviewed unpinned adapter: doc.version_save has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "drive.download_file --output": "local output path", + "drive.list_files --cursor": "composite route maps to nextToken for drive.list_files or pageToken for doc.list_nodes", + "drive.list_files --folder": "composite route maps to parentId for drive.list_files or folderId for doc.list_nodes", + "drive.list_files --limit": "composite route maps to maxResults for drive.list_files or pageSize for doc.list_nodes", + "drive.list_files --order": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "drive.list_files --order-by": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "drive.list_files --space-id": "drive-branch-only route input on a composite drive/doc command; no singular interface property is advertised", + "drive.list_files --thumbnail": "drive-branch-only option on a composite drive/doc command; no singular interface property is advertised", + "drive.list_files --workspace": "selects the doc.list_nodes branch of the composite drive/doc command", + "drive.publish_get --node": "Reviewed unpinned adapter: drive.publish_get has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "drive.publish_set --node": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "drive.publish_set --permission": "Reviewed unpinned adapter: drive.publish_set has no singular pinned interface_ref; --permission is a CLI wrapper input and does not publish a direct interface property.", + "drive.publish_unset --node": "Reviewed unpinned adapter: drive.publish_unset has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --creator-type": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --creator-type is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --cursor": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --file-types": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --file-types is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --limit": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --operate-type": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --operate-type is a CLI wrapper input and does not publish a direct interface property.", + "drive.recent --org-ids": "Reviewed unpinned adapter: drive.recent has no singular pinned interface_ref; --org-ids is a CLI wrapper input and does not publish a direct interface property.", + "drive.recycle_list --cursor": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "drive.recycle_list --limit": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "drive.recycle_list --space-id": "Reviewed unpinned adapter: drive.recycle_list has no singular pinned interface_ref; --space-id is a CLI wrapper input and does not publish a direct interface property.", + "drive.recycle_restore --id": "Reviewed unpinned adapter: drive.recycle_restore has no singular pinned interface_ref; --id is a CLI wrapper input and does not publish a direct interface property.", + "mail.create_download_session --name": "local download filename", + "mail.create_download_session --output": "local output path", + "mail.create_draft --attachment": "reviewed local attachment preprocessing input", + "mail.create_draft --inline-attachment": "reviewed local inline-attachment preprocessing input", + "mail.create_forward_draft --attachment": "reviewed local attachment preprocessing input", + "mail.create_forward_draft --inline-attachment": "reviewed local inline-attachment preprocessing input", + "mail.create_reply_draft --attachment": "reviewed local attachment preprocessing input", + "mail.create_reply_draft --inline-attachment": "reviewed local inline-attachment preprocessing input", + "mail.create_replyall_draft --attachment": "reviewed local attachment preprocessing input", + "mail.create_replyall_draft --inline-attachment": "reviewed local inline-attachment preprocessing input", + "mail.send_email --attachment": "reviewed local attachment preprocessing input", + "mail.send_email --inline-attachment": "reviewed local inline-attachment preprocessing input", + "mail.update_draft --attachment": "reviewed local attachment preprocessing input", + "mail.update_draft --inline-attachment": "reviewed local inline-attachment preprocessing input", + "minutes.record_pause --session-id": "Reviewed unpinned adapter: minutes.record_pause has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "minutes.record_resume --session-id": "Reviewed unpinned adapter: minutes.record_resume has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "minutes.record_start --session-id": "Reviewed unpinned adapter: minutes.record_start has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "minutes.record_stop --session-id": "Reviewed unpinned adapter: minutes.record_stop has no singular pinned interface_ref; --session-id is a CLI wrapper input and does not publish a direct interface property.", + "pat.batch_grant --domain": "aggregate/two-stage wrapper: --domain is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "pat.batch_grant --domains": "aggregate/two-stage wrapper: --domains is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "pat.batch_grant --product": "aggregate/two-stage wrapper: --product is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "pat.batch_grant --products": "aggregate/two-stage wrapper: --products is merged with all product/domain flags into productCodes for pat.batch_plan; only the plan's selectedScopes are later sent to pat.batch_grant.scopes", + "pat.batch_grant --recommend": "two-stage conditional wrapper: --recommend is sent to pat.batch_plan, and pat.batch_grant receives only the plan-selected scopes; it is not a pat.batch_grant RPC property", + "report.create_report --contents-file": "local JSON file input used to populate contents", + "sheet.batch_update --continue-on-error": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --continue-on-error is a CLI wrapper input and does not publish a direct interface property.", + "sheet.batch_update --node": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.batch_update --operations": "Reviewed unpinned adapter: sheet.batch_update has no singular pinned interface_ref; --operations is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_create --node": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_create --properties": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_create --sheet-id": "Reviewed unpinned adapter: sheet.chart_create has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_delete --chart-id": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_delete --node": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_delete --sheet-id": "Reviewed unpinned adapter: sheet.chart_delete has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_list --chart-id": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_list --node": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_list --sheet-id": "Reviewed unpinned adapter: sheet.chart_list has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_update --chart-id": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --chart-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_update --node": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_update --properties": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "sheet.chart_update --sheet-id": "Reviewed unpinned adapter: sheet.chart_update has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.create_cond_format --condition": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", + "sheet.create_pivot_table --properties": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "sheet.create_pivot_table --source": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "sheet.create_pivot_table --target-position": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-position is a CLI wrapper input and does not publish a direct interface property.", + "sheet.create_pivot_table --target-sheet-id": "Reviewed unpinned adapter: sheet.create_pivot_table has no singular pinned interface_ref; --target-sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.delete_cond_format --yes": "local confirmation control", + "sheet.delete_pivot_table --pivot-table-id": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.delete_pivot_table --sheet-id": "Reviewed unpinned adapter: sheet.delete_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.filter_view_get_criteria --column": "local post-filter over get_filter_views response", + "sheet.filter_view_get_criteria --filter-view-id": "local post-filter over get_filter_views response", + "sheet.filter_view_info --filter-view-id": "local post-filter over get_filter_views response", + "sheet.filter_view_list_criteria --filter-view-id": "local post-filter over get_filter_views response", + "sheet.filter_view_update_criteria --column": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --column is a CLI wrapper input and does not publish a direct interface property.", + "sheet.filter_view_update_criteria --filter-criteria": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-criteria is a CLI wrapper input and does not publish a direct interface property.", + "sheet.filter_view_update_criteria --filter-view-id": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --filter-view-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.filter_view_update_criteria --node": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.filter_view_update_criteria --sheet-id": "Reviewed unpinned adapter: sheet.filter_view_update_criteria has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.group_dimension --group-state": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --group-state is a CLI wrapper input and does not publish a direct interface property.", + "sheet.group_dimension --node": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.group_dimension --range": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "sheet.group_dimension --sheet-id": "Reviewed unpinned adapter: sheet.group_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.hide_gridline --sheet-id": "Reviewed unpinned adapter: sheet.hide_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.list_pivot_tables --pivot-table-id": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.list_pivot_tables --sheet-id": "Reviewed unpinned adapter: sheet.list_pivot_tables has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.range_batch_clear --node": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.range_batch_clear --ranges": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --ranges is a CLI wrapper input and does not publish a direct interface property.", + "sheet.range_batch_clear --type": "Reviewed unpinned adapter: sheet.range_batch_clear has no singular pinned interface_ref; --type is a CLI wrapper input and does not publish a direct interface property.", + "sheet.range_batch_set_style --batch": "Composite wrapper reads this local JSON file and performs zero or more update_range calls; the filesystem path is not a direct RPC property.", + "sheet.range_batch_set_style --continue-on-error": "Composite wrapper consumes this flag in its local multi-call error loop and never sends it to update_range.", + "sheet.range_read --range": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "sheet.range_read --sheet-id": "Reviewed unpinned adapter: sheet.range_read has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.show_gridline --sheet-id": "Reviewed unpinned adapter: sheet.show_gridline has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.submit_export_job --output": "local destination consumed after export job completion", + "sheet.table_get --no-header": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --no-header is a CLI wrapper input and does not publish a direct interface property.", + "sheet.table_get --range": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "sheet.table_get --sheet-id": "Reviewed unpinned adapter: sheet.table_get has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.table_put --sheets": "Reviewed unpinned adapter: sheet.table_put has no singular pinned interface_ref; --sheets is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_apply --folder": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --folder is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_apply --name": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --name is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_apply --template-id": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --template-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_apply --workspace": "Reviewed unpinned adapter: sheet.template_apply has no singular pinned interface_ref; --workspace is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_list --cursor": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_list --limit": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_list --source": "Reviewed unpinned adapter: sheet.template_list has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_search --cursor": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --cursor is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_search --limit": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --limit is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_search --query": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --query is a CLI wrapper input and does not publish a direct interface property.", + "sheet.template_search --source": "Reviewed unpinned adapter: sheet.template_search has no singular pinned interface_ref; --source is a CLI wrapper input and does not publish a direct interface property.", + "sheet.ungroup_dimension --node": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --node is a CLI wrapper input and does not publish a direct interface property.", + "sheet.ungroup_dimension --range": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --range is a CLI wrapper input and does not publish a direct interface property.", + "sheet.ungroup_dimension --sheet-id": "Reviewed unpinned adapter: sheet.ungroup_dimension has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.update_cond_format --condition": "one aggregate JSON flag selects one of multiple mutually exclusive RPC condition properties", + "sheet.update_pivot_table --pivot-table-id": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --pivot-table-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.update_pivot_table --properties": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --properties is a CLI wrapper input and does not publish a direct interface property.", + "sheet.update_pivot_table --sheet-id": "Reviewed unpinned adapter: sheet.update_pivot_table has no singular pinned interface_ref; --sheet-id is a CLI wrapper input and does not publish a direct interface property.", + "sheet.write_image --file": "local upload input used to obtain resourceId/resourceUrl", + "sheet.write_image --mime-type": "local upload metadata", + "sheet.write_image --name": "local upload metadata", + "todo.add_todo_attachment --file-path": "local upload input used to construct attachmentList", + "wiki.create_wikiSpace --icon": "runtime extension sends icon, which is absent from the pinned create_wikiSpace metadata", + "wiki.delete_document --workspace": "local validation/authorization context; not sent to delete_document", + "wiki.list_wikiSpaces --cursor": "composite route maps to pageToken for wiki.list_wikiSpaces or nextToken for drive.list_spaces", + "wiki.list_wikiSpaces --limit": "composite route maps to pageSize for wiki.list_wikiSpaces or maxResults for drive.list_spaces", + "wiki.list_wikiSpaces --type": "route selector maps to wikiSpaceType or spaceType on different composite branches", + "wiki.search_wikiSpaces --type": "local route selector; myWikiSpace invokes list_wikiSpaces instead" } } diff --git a/internal/cli/schema_parameter_bindings_test.go b/internal/cli/schema_parameter_bindings_test.go index 745dc492..63f28f7d 100644 --- a/internal/cli/schema_parameter_bindings_test.go +++ b/internal/cli/schema_parameter_bindings_test.go @@ -3,14 +3,37 @@ package cli -import "testing" +import ( + "bytes" + "encoding/json" + "os" + "os/exec" + "strings" + "testing" + + "github.com/spf13/cobra" +) + +const schemaParameterBindingInvalidBuildChildEnv = "DWS_SCHEMA_PARAMETER_BINDING_INVALID_BUILD_CHILD" + +func TestSchemaParameterBindingsMatchReviewedBaselineAndEmbeddedCatalog(t *testing.T) { + if err := ValidateEmbeddedSchemaParameterBindings(); err != nil { + t.Fatalf("ValidateEmbeddedSchemaParameterBindings() error = %v", err) + } + snapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + t.Fatalf("runtimeSchemaParameterBindingData() error = %v", err) + } + manifestHash, err := schemaParameterBindingManifestHash(snapshot.Bindings) + if err != nil { + t.Fatalf("schemaParameterBindingManifestHash() error = %v", err) + } + if manifestHash != snapshot.Baseline.SHA256 { + t.Fatalf("active binding manifest hash = %q, reviewed baseline = %q", manifestHash, snapshot.Baseline.SHA256) + } -func TestSchemaParameterBindingsMatchEmbeddedCatalog(t *testing.T) { loaded := embeddedSchemaCatalog() - snapshot := runtimeSchemaParameterBindingData() - bindingsSnapshot := snapshot.Bindings - count := 0 - for canonical, bindings := range bindingsSnapshot { + for canonical, bindings := range snapshot.Bindings { detail, ok := loaded.Snapshot.Tools[canonical] if !ok { t.Errorf("binding references unknown canonical path %q", canonical) @@ -18,7 +41,6 @@ func TestSchemaParameterBindingsMatchEmbeddedCatalog(t *testing.T) { } parameters, _ := detail["parameters"].(map[string]any) for flagName, propertyName := range bindings { - count++ parameter, _ := parameters[flagName].(map[string]any) if parameter == nil { t.Errorf("binding %s --%s references an unknown flag", canonical, flagName) @@ -29,33 +51,219 @@ func TestSchemaParameterBindingsMatchEmbeddedCatalog(t *testing.T) { } } } - if count == 0 { - t.Fatal("active parameter binding count is zero") + + for key, correction := range snapshot.Corrections { + canonical, flagName, _ := strings.Cut(key, " --") + if got := snapshot.Bindings[canonical][flagName]; got != correction.NewProperty { + t.Errorf("reviewed correction %q delivers %q, want %q", key, got, correction.NewProperty) + } } - if snapshot.HistoricalBindingCount != 311 || len(snapshot.Migrations) != 5 || len(snapshot.Excluded) != 3 || len(snapshot.Added) != 25 { - t.Fatalf("binding seed audit = historical:%d migrations:%d excluded:%d added:%d", - snapshot.HistoricalBindingCount, len(snapshot.Migrations), len(snapshot.Excluded), len(snapshot.Added)) + for key, removal := range snapshot.Removals { + canonical, flagName, _ := strings.Cut(key, " --") + if got := snapshot.Bindings[canonical][flagName]; got != "" { + t.Errorf("reviewed removal %q remains active as %q", key, got) + } + if removal.ReplacedBy != "" { + replacementCanonical, replacementFlag, _ := strings.Cut(removal.ReplacedBy, " --") + if got := snapshot.Bindings[replacementCanonical][replacementFlag]; got == "" { + t.Errorf("reviewed removal %q replacement %q is not active", key, removal.ReplacedBy) + } + } } - if got := bindingsSnapshot["calendar.get_calendar"]["id"]; got != "calendarId" { + + if got := snapshot.Bindings["calendar.get_calendar"]["id"]; got != "calendarId" { t.Fatalf("calendar.get_calendar --id property = %q, want calendarId", got) } - for _, canonical := range []string{"dev.search_open_platform_docs_rag", "devdoc.search_open_platform_docs_rag"} { - if got := bindingsSnapshot[canonical]["query"]; got != "keyword" { - t.Errorf("%s --query property = %q, want keyword", canonical, got) + if got := snapshot.Bindings["aitable.field_update"]["name"]; got != "newFieldName" { + t.Fatalf("aitable.field_update --name property = %q, want newFieldName", got) + } +} + +func TestDecodeSchemaParameterBindingsFailsClosed(t *testing.T) { + valid := append([]byte(nil), embeddedSchemaParameterBindingsJSON...) + replaceOnce := func(old, replacement string) []byte { + t.Helper() + updated := bytes.Replace(valid, []byte(old), []byte(replacement), 1) + if bytes.Equal(updated, valid) { + t.Fatalf("fixture does not contain %q", old) } + return updated + } + tests := []struct { + name string + data []byte + want string + }{ + { + name: "unknown top-level field", + data: replaceOnce(`"version": 3,`, `"version": 3, "unexpected": true,`), + want: "unknown field", + }, + { + name: "unknown baseline field", + data: replaceOnce(`"manifest": "schema-parameter-bindings-v3",`, `"manifest": "schema-parameter-bindings-v3", "count": 653,`), + want: "unknown field", + }, + { + name: "multiple JSON values", + data: append(append([]byte(nil), valid...), []byte("\n{}")...), + want: "multiple JSON values", + }, + { + name: "unsupported version", + data: replaceOnce(`"version": 3`, `"version": 999`), + want: "unsupported schema parameter bindings version", + }, + { + name: "unreviewed baseline", + data: replaceOnce(`"reviewed": true`, `"reviewed": false`), + want: "baseline must be reviewed", + }, + { + name: "active binding drift", + data: replaceOnce(`"types": "searchTypes"`, `"types": "changedSearchTypes"`), + want: "want exact active manifest", + }, + { + name: "legacy count ledger", + data: replaceOnce(`"version": 3,`, `"version": 3, "historical_binding_count": 653,`), + want: "unknown field", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + snapshot, err := decodeSchemaParameterBindings(test.data) + if err == nil || !strings.Contains(err.Error(), test.want) { + t.Fatalf("decodeSchemaParameterBindings() snapshot=%#v error=%v, want %q", snapshot, err, test.want) + } + if len(snapshot.Bindings) != 0 { + t.Fatalf("failed decode returned %d active binding groups; want no inference-capable fallback", len(snapshot.Bindings)) + } + }) + } +} + +func TestSchemaParameterBindingManifestHashIsExactContentNotCount(t *testing.T) { + left := map[string]map[string]string{ + "sample.read": {"item-id": "itemId", "limit": "pageSize"}, + } + right := map[string]map[string]string{ + "sample.read": {"limit": "pageSize", "item-id": "itemId"}, + } + changed := map[string]map[string]string{ + "sample.read": {"item-id": "id", "limit": "pageSize"}, + } + leftHash, err := schemaParameterBindingManifestHash(left) + if err != nil { + t.Fatal(err) + } + rightHash, err := schemaParameterBindingManifestHash(right) + if err != nil { + t.Fatal(err) + } + changedHash, err := schemaParameterBindingManifestHash(changed) + if err != nil { + t.Fatal(err) + } + if leftHash != rightHash { + t.Fatalf("manifest hash depends on map iteration order: %q != %q", leftHash, rightHash) } - for canonical, flagName := range map[string]string{ - "calendar.add_calendar_participant": "event", - "calendar.get_calendar_participants": "event", - "calendar.remove_calendar_participant": "event", - "contact.get_dept_info_by_dept_id": "dept", - "contact.get_dept_members_by_deptId": "depts", - "contact.get_sub_depts_by_dept_id": "dept", - "oa.list_pending_approvals": "limit", - "oa.list_user_visible_process": "limit", - } { - if bindingsSnapshot[canonical][flagName] == "" { - t.Errorf("migrated binding %s --%s is missing", canonical, flagName) + if leftHash == changedHash { + t.Fatalf("same-size manifest property change did not change hash: %q", leftHash) + } +} + +func TestBuildEffectiveCommandRegistryFailsClosedOnInvalidParameterBindingSource(t *testing.T) { + if os.Getenv(schemaParameterBindingInvalidBuildChildEnv) == "1" { + if got := runtimeSchemaParameterBindingsLazyLoadCount.Load(); got != 0 { + t.Fatalf("parameter bindings loaded before child test: %d", got) + } + embeddedSchemaParameterBindingsJSON = []byte(`{"version":3,"unexpected":true}`) + _, err := BuildEffectiveCommandRegistry(&cobra.Command{Use: "dws"}) + if err == nil || !strings.Contains(err.Error(), "validate reviewed Schema parameter bindings") || !strings.Contains(err.Error(), "unknown field") { + t.Fatalf("BuildEffectiveCommandRegistry() error = %v, want strict binding validation", err) } + return + } + + command := exec.Command(os.Args[0], "-test.run=^TestBuildEffectiveCommandRegistryFailsClosedOnInvalidParameterBindingSource$", "-test.count=1") + command.Env = append(os.Environ(), schemaParameterBindingInvalidBuildChildEnv+"=1") + output, err := command.CombinedOutput() + if err != nil { + t.Fatalf("invalid binding Build child failed: %v\n%s", err, strings.TrimSpace(string(output))) + } +} + +func TestValidateSchemaParameterBindingDeliveryRejectsStaleReviewedKeys(t *testing.T) { + command := &cobra.Command{Use: "read"} + command.Flags().String("item-id", "", "item id") + boundSpec := BoundCommandSpec{ + CommandSpec: CommandSpec{ + CanonicalPath: "sample.read", + PrimaryCLIPath: "sample read", + Visibility: SchemaVisibilityPublic, + }, + PrimaryCommand: command, + } + bound := BoundCommandRegistry{ + Commands: []BoundCommandSpec{boundSpec}, + ByCanonical: map[string]BoundCommandSpec{"sample.read": boundSpec}, + } + parameter := ParameterSpec{ + Name: "item-id", + Property: "itemId", + FieldProvenance: map[string]FieldProvenance{ + "property": { + Value: json.RawMessage(`"itemId"`), + Source: "versioned_parameter_binding", + Resolution: "highest_precedence", + }, + }, + } + registry := SchemaRegistry{Products: []ProductSpec{{ID: "sample", Tools: []ToolSpec{{ + Identity: ToolIdentitySpec{CanonicalPath: "sample.read"}, + Parameters: []ParameterSpec{parameter}, + }}}}} + valid := schemaParameterBindingSnapshot{Bindings: map[string]map[string]string{ + "sample.read": {"item-id": "itemId"}, + }} + if err := validateSchemaParameterBindingDelivery(valid, bound, registry); err != nil { + t.Fatalf("valid delivery rejected: %v", err) + } + + tests := []struct { + name string + snapshot schemaParameterBindingSnapshot + want string + }{ + { + name: "unknown active canonical", + snapshot: schemaParameterBindingSnapshot{Bindings: map[string]map[string]string{ + "sample.missing": {"item-id": "itemId"}, + }}, + want: "does not reference a public bound command", + }, + { + name: "unknown mapping exclusion flag", + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{ + "sample.read --missing": "reviewed local selector", + }}, + want: "does not reference an exact final public Schema parameter", + }, + { + name: "unknown removal canonical", + snapshot: schemaParameterBindingSnapshot{Removals: map[string]schemaParameterBindingRemoval{ + "sample.missing --item-id": {Reason: "reviewed removal", Reviewed: true}, + }}, + want: "has a stale canonical path", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := validateSchemaParameterBindingDelivery(test.snapshot, bound, registry) + if err == nil || !strings.Contains(err.Error(), test.want) { + t.Fatalf("validateSchemaParameterBindingDelivery() error = %v, want %q", err, test.want) + } + }) } } diff --git a/internal/cli/schema_parameter_mapping_completeness_test.go b/internal/cli/schema_parameter_mapping_completeness_test.go new file mode 100644 index 00000000..4069d66f --- /dev/null +++ b/internal/cli/schema_parameter_mapping_completeness_test.go @@ -0,0 +1,722 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package cli + +import ( + "encoding/json" + "fmt" + "sort" + "strings" + "testing" + + "github.com/spf13/cobra" +) + +type schemaParameterMappingFlagAudit struct { + canonical string + flagName string + mode string + availability string + property string + metadataKey string + metadataParams map[string]embeddedMCPParamMeta + parameter map[string]any +} + +func TestEmbeddedCatalogMCPParameterMappingsAreComplete(t *testing.T) { + loaded := embeddedSchemaCatalog() + if !embeddedSchemaCatalogAvailable() { + t.Fatalf("embedded schema Catalog is unavailable: %v", embeddedSchemaCatalogError()) + } + bindings, err := runtimeSchemaParameterBindingData() + if err != nil { + t.Fatalf("runtimeSchemaParameterBindingData() error = %v", err) + } + problems := auditSchemaParameterMappings( + loaded.Snapshot.Tools, + runtimeMCPMetadata(), + bindings, + ) + if len(problems) > 0 { + t.Fatalf("final Catalog parameter mapping audit found %d problem(s):\n%s", len(problems), limitedSchemaMappingProblems(problems, 80)) + } +} + +func TestEmbeddedCatalogLocalInterfacesAreExactAndReviewed(t *testing.T) { + wantReasons := map[string]string{ + "dev.connect_status": "命令仅操作本地进程或策略文件,不调用 MCP 接口", + "dev.connect_stop": "命令仅操作本地进程或策略文件,不调用 MCP 接口", + "event.list": "命令读取 CLI 内置的个人事件目录,不绑定 pinned MCP RPC", + "event.schema": "命令读取 CLI 内置的个人事件 payload 定义,不绑定 pinned MCP RPC", + "pat.browser_policy": "命令仅操作本地进程或策略文件,不调用 MCP 接口", + } + loaded := embeddedSchemaCatalog() + if !embeddedSchemaCatalogAvailable() { + t.Fatalf("embedded schema Catalog is unavailable: %v", embeddedSchemaCatalogError()) + } + gotLocal := make(map[string]bool) + for canonical, tool := range loaded.Snapshot.Tools { + if schemaString(tool["interface_mode"]) != InterfaceModeLocal { + continue + } + gotLocal[canonical] = true + wantReason, reviewed := wantReasons[canonical] + if !reviewed { + t.Errorf("%s is classified local without a reviewed pure-local implementation", canonical) + continue + } + if schemaString(tool["availability"]) != InterfaceAvailable { + t.Errorf("%s local availability = %q, want available", canonical, schemaString(tool["availability"])) + } + if tool["interface_ref"] != nil { + t.Errorf("%s local interface_ref = %#v, want nil", canonical, tool["interface_ref"]) + } + if got := schemaString(tool["interface_reason"]); got != wantReason { + t.Errorf("%s local reason = %q, want %q", canonical, got, wantReason) + } + provenance := schemaMap(tool["field_provenance"]) + for _, field := range []string{"interface_mode", "availability", "interface_ref", "interface_reason"} { + entry := provenance[field] + if schemaString(entry["precedence"]) != "reviewed_explicit" { + t.Errorf("%s local %s precedence = %q, want reviewed_explicit", canonical, field, schemaString(entry["precedence"])) + } + if source := schemaString(entry["source"]); !strings.HasSuffix(source, "internal/cli/schema_hints/selection-review.json") { + t.Errorf("%s local %s source = %q, want selection-review.json", canonical, field, source) + } + } + } + for canonical := range wantReasons { + if !gotLocal[canonical] { + t.Errorf("reviewed pure-local command %s is no longer delivered as local", canonical) + } + } +} + +func TestSchemaParameterPropertyRoot(t *testing.T) { + tests := []struct { + property string + want string + ok bool + }{ + {property: "request", want: "request", ok: true}, + {property: "request.value", want: "request", ok: true}, + {property: "request[].value", want: "request", ok: true}, + {property: " request[0].value ", want: "request", ok: true}, + {property: "", ok: false}, + {property: ".value", ok: false}, + {property: "[].value", ok: false}, + } + for _, test := range tests { + t.Run(test.property, func(t *testing.T) { + got, ok := schemaParameterPropertyRoot(test.property) + if got != test.want || ok != test.ok { + t.Fatalf("schemaParameterPropertyRoot(%q) = %q/%t, want %q/%t", test.property, got, ok, test.want, test.ok) + } + }) + } +} + +func TestSchemaParameterMappingAuditPreservesFalseAndNestedValues(t *testing.T) { + ref := map[string]any{"product_id": "sample", "rpc_name": "read"} + tools := map[string]map[string]any{ + "sample.read": { + "canonical_path": "sample.read", + "interface_mode": "mcp", + "availability": "available", + "interface_ref": ref, + "parameters": map[string]any{ + "enabled": map[string]any{ + "property": "request[].enabled", + "required": false, + "default": false, + }, + }, + }, + } + metadata := embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{ + "sample.read": { + InterfaceRef: &embeddedMCPInterfaceRef{ProductID: "sample", RPCName: "read"}, + Parameters: map[string]embeddedMCPParamMeta{ + "request": {Type: "object"}, + }, + }, + }} + if problems := auditSchemaParameterMappings(tools, metadata, schemaParameterBindingSnapshot{}); len(problems) != 0 { + t.Fatalf("false/zero-valued parameter was rejected: %v", problems) + } +} + +func TestSchemaParameterMappingAuditExclusionRules(t *testing.T) { + directMetadata := embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{ + "sample.read": { + InterfaceRef: &embeddedMCPInterfaceRef{ProductID: "sample", RPCName: "read"}, + Parameters: map[string]embeddedMCPParamMeta{"request": {Type: "object"}}, + }, + }} + excludedParameter := func(candidate string) map[string]any { + return map[string]any{ + "required": false, + "field_provenance": map[string]any{ + "property": map[string]any{ + "value": "", + "source": "reviewed_mapping_exclusion", + "candidates": []any{ + map[string]any{"value": "", "source": "reviewed_mapping_exclusion", "selected": true}, + map[string]any{"value": candidate, "source": "flag_name_inference", "selected": false}, + }, + }, + }, + } + } + tool := func(mode string, parameter map[string]any) map[string]map[string]any { + tools := map[string]map[string]any{ + "sample.read": { + "canonical_path": "sample.read", + "interface_mode": mode, + "availability": "available", + "interface_ref": map[string]any{"product_id": "sample", "rpc_name": "read"}, + "parameters": map[string]any{"selector": parameter}, + }, + } + if mode == InterfaceModeComposite { + tools["sample.read"]["interface_ref"] = nil + tools["sample.read"]["interface_reason"] = "Reviewed composite fixture" + tools["sample.read"]["field_provenance"] = map[string]any{ + "interface_mode": map[string]any{"precedence": "reviewed_explicit"}, + "availability": map[string]any{"precedence": "reviewed_explicit"}, + "interface_ref": map[string]any{"precedence": "reviewed_explicit"}, + "interface_reason": map[string]any{"precedence": "reviewed_explicit"}, + } + } + return tools + } + key := "sample.read --selector" + tests := []struct { + name string + tools map[string]map[string]any + metadata embeddedMCPMetadata + snapshot schemaParameterBindingSnapshot + wantProblem string + }{ + { + name: "reviewed MCP mismatch", + tools: tool(InterfaceModeMCP, excludedParameter("cliOnly")), + metadata: directMetadata, + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{key: "CLI selector is resolved before the RPC"}}, + }, + { + name: "redundant MCP exclusion", + tools: tool(InterfaceModeMCP, excludedParameter("request.child")), + metadata: directMetadata, + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{key: "stale"}}, + wantProblem: "already resolves", + }, + { + name: "local selector", + tools: tool(InterfaceModeLocal, excludedParameter("selector")), + metadata: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{}}, + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{key: "local planner input"}}, + }, + { + name: "composite selector", + tools: tool(InterfaceModeComposite, excludedParameter("selector")), + metadata: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{}}, + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{key: "fans out to multiple calls"}}, + }, + { + name: "binding conflict", + tools: tool(InterfaceModeLocal, excludedParameter("selector")), + metadata: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{}}, + snapshot: schemaParameterBindingSnapshot{ + MappingExclusions: map[string]string{key: "local planner input"}, + Bindings: map[string]map[string]string{"sample.read": {"selector": "request"}}, + }, + wantProblem: "conflicts with versioned binding", + }, + { + name: "unknown exact key", + tools: tool(InterfaceModeLocal, excludedParameter("selector")), + metadata: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{}}, + snapshot: schemaParameterBindingSnapshot{MappingExclusions: map[string]string{"sample.read --missing": "not exact"}}, + wantProblem: "does not reference an exact final Catalog parameter", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + problems := auditSchemaParameterMappings(test.tools, test.metadata, test.snapshot) + if test.wantProblem == "" { + if len(problems) != 0 { + t.Fatalf("audit problems = %v", problems) + } + return + } + if !schemaMappingProblemsContain(problems, test.wantProblem) { + t.Fatalf("audit problems = %v, want substring %q", problems, test.wantProblem) + } + }) + } +} + +func TestRuntimeSchemaReviewedMappingExclusionSelectsEmptyProperty(t *testing.T) { + key := runtimeSchemaParameterMappingKey("sample.read", "local-only") + snapshot := schemaParameterBindingSnapshot{ + MappingExclusions: map[string]string{key: "CLI-only selector is resolved before the RPC call"}, + } + binding, exclusion, err := runtimeSchemaParameterMappingCandidates(snapshot, "sample.read", "local-only") + if err != nil { + t.Fatal(err) + } + winner, err := resolveRuntimeSchemaCandidate("property", + binding, + exclusion, + runtimeSchemaStringCandidate("localOnly", "flag_name_inference"), + ) + if err != nil { + t.Fatal(err) + } + if !winner.Present || winner.Value != "" || winner.Source != "reviewed_mapping_exclusion" || winner.ReviewReason == "" { + t.Fatalf("mapping exclusion winner = %#v", winner) + } + provenance := runtimeSchemaFieldProvenance(winner) + if provenance.Source != "reviewed_mapping_exclusion" || provenance.ReviewReason == "" { + t.Fatalf("mapping exclusion provenance = %#v", provenance) + } + var value string + if err := json.Unmarshal(provenance.Value, &value); err != nil || value != "" { + t.Fatalf("mapping exclusion provenance value = %q/%v", provenance.Value, err) + } + selected := 0 + for _, candidate := range provenance.Candidates { + if candidate.Selected != nil && *candidate.Selected { + selected++ + if candidate.Source != "reviewed_mapping_exclusion" { + t.Fatalf("selected candidate = %#v", candidate) + } + } + } + if selected != 1 { + t.Fatalf("mapping exclusion selected candidate count = %d", selected) + } + payload, err := (ParameterSpec{ + Name: "local-only", Type: "boolean", Description: "test", Property: "", + FieldProvenance: map[string]FieldProvenance{"property": provenance}, + }).ToPayload() + if err != nil { + t.Fatal(err) + } + if _, exists := payload["property"]; exists { + t.Fatalf("excluded property leaked into payload: %#v", payload) + } + if schemaMap(payload["field_provenance"])["property"]["source"] != "reviewed_mapping_exclusion" { + t.Fatalf("excluded property provenance missing from payload: %#v", payload) + } + + conflict := snapshot + conflict.Bindings = map[string]map[string]string{"sample.read": {"local-only": "localOnly"}} + if _, _, err := runtimeSchemaParameterMappingCandidates(conflict, "sample.read", "local-only"); err == nil || !strings.Contains(err.Error(), "conflicts") { + t.Fatalf("binding + exclusion conflict error = %v", err) + } + missingReason := schemaParameterBindingSnapshot{MappingExclusions: map[string]string{key: " "}} + if _, _, err := runtimeSchemaParameterMappingCandidates(missingReason, "sample.read", "local-only"); err == nil || !strings.Contains(err.Error(), "no reason") { + t.Fatalf("empty exclusion reason error = %v", err) + } + rank, precedence := runtimeSchemaSourcePriority("reviewed_mapping_exclusion") + if rank != runtimeSchemaRankVersionedBinding || precedence != runtimeSchemaPrecedenceMappingExclusion { + t.Fatalf("mapping exclusion precedence = %d/%q", rank, precedence) + } + manualWinner, err := resolveRuntimeSchemaCandidate("property", exclusion, runtimeSchemaManualCandidate("reviewedProperty", true, "reviewed override")) + if err != nil || manualWinner.Source != "reviewed_manual_hint" || manualWinner.Value != "reviewedProperty" { + t.Fatalf("reviewed manual must remain above mapping exclusion: winner=%#v err=%v", manualWinner, err) + } +} + +func TestReviewedCompositeParameterMappingRejectsInference(t *testing.T) { + parameter := func(property, source, reviewReason string) map[string]any { + return map[string]any{ + "property": property, + "field_provenance": map[string]any{ + "property": map[string]any{ + "source": source, + "review_reason": reviewReason, + }, + }, + } + } + tests := []struct { + name string + parameter map[string]any + want bool + }{ + {name: "versioned binding", parameter: parameter("request.id", "versioned_parameter_binding", ""), want: true}, + {name: "reviewed manual", parameter: parameter("request.id", "reviewed_manual_hint", "reviewed mapping"), want: true}, + {name: "reviewed tool hint", parameter: parameter("request.id", "tool_schema_hint", "reviewed mapping"), want: true}, + {name: "mapping exclusion", parameter: parameter("", "reviewed_mapping_exclusion", "reviewed CLI-only input"), want: true}, + {name: "flag inference", parameter: parameter("requestId", "flag_name_inference", ""), want: false}, + {name: "unreviewed tool hint", parameter: parameter("request.id", "tool_schema_hint", ""), want: false}, + {name: "nonempty exclusion", parameter: parameter("request.id", "reviewed_mapping_exclusion", "reviewed"), want: false}, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + got, _ := reviewedCompositeParameterMapping(test.parameter) + if got != test.want { + t.Fatalf("reviewedCompositeParameterMapping() = %t, want %t", got, test.want) + } + }) + } +} + +func TestRuntimeCommandParameterSpecsPreserveReviewedEmptyPropertyProvenance(t *testing.T) { + cmd := &cobra.Command{Use: "query"} + cmd.Flags().Bool("all", false, "fetch every page") + + parameters, err := runtimeCommandParameterSpecs(cmd, "aitable.query_records", nil, nil, RuntimeSchemaConstraints{}) + if err != nil { + t.Fatal(err) + } + if len(parameters) != 1 { + t.Fatalf("parameter count = %d, want 1", len(parameters)) + } + parameter := parameters[0] + if parameter.Property != "" { + t.Fatalf("excluded property = %q, want empty", parameter.Property) + } + provenance, exists := parameter.FieldProvenance["property"] + if !exists || provenance.Source != "reviewed_mapping_exclusion" || provenance.ReviewReason == "" { + t.Fatalf("excluded property provenance = %#v", provenance) + } + payload, err := parameter.ToPayload() + if err != nil { + t.Fatal(err) + } + if _, exists := payload["property"]; exists { + t.Fatalf("excluded property leaked into payload: %#v", payload) + } + if got := schemaString(schemaMap(payload["field_provenance"])["property"]["source"]); got != "reviewed_mapping_exclusion" { + t.Fatalf("delivered property provenance source = %q", got) + } +} + +func TestSchemaParameterBindingCorrectionsAreReviewed(t *testing.T) { + snapshot, err := runtimeSchemaParameterBindingData() + if err != nil { + t.Fatalf("runtimeSchemaParameterBindingData() error = %v", err) + } + required := map[string]schemaParameterBindingCorrection{ + "calendar.search_calendar --query": { + OldProperty: "calendarName", + NewProperty: "query", + }, + "minutes.query_minutes_by_tag_id --limit": { + OldProperty: "size", + NewProperty: "maxResults", + }, + } + flags := finalSchemaCatalogFlagIndex(embeddedSchemaCatalog().Snapshot.Tools) + for key, correction := range snapshot.Corrections { + flag, exists := flags[key] + if !exists { + t.Errorf("correction %q does not reference an exact final Catalog parameter", key) + continue + } + oldProperty := strings.TrimSpace(correction.OldProperty) + newProperty := strings.TrimSpace(correction.NewProperty) + if oldProperty == "" || newProperty == "" || oldProperty == newProperty { + t.Errorf("correction %q has invalid old/new properties: %#v", key, correction) + } + if strings.TrimSpace(correction.Reason) == "" || !correction.Reviewed { + t.Errorf("correction %q is not reviewed with a non-empty reason: %#v", key, correction) + } + if got := snapshot.Bindings[flag.canonical][flag.flagName]; got != newProperty { + t.Errorf("correction %q active binding = %q, want new_property %q", key, got, newProperty) + } + } + for key, want := range required { + got, exists := snapshot.Corrections[key] + if !exists { + t.Errorf("required reviewed correction %q is missing", key) + continue + } + if got.OldProperty != want.OldProperty || got.NewProperty != want.NewProperty { + t.Errorf("correction %q = %q -> %q, want %q -> %q", key, got.OldProperty, got.NewProperty, want.OldProperty, want.NewProperty) + } + } +} + +func auditSchemaParameterMappings(tools map[string]map[string]any, metadata embeddedMCPMetadata, snapshot schemaParameterBindingSnapshot) []string { + flags := finalSchemaCatalogFlagIndex(tools) + problems := make([]string, 0) + + canonicals := make([]string, 0, len(tools)) + for canonical := range tools { + canonicals = append(canonicals, canonical) + } + sort.Strings(canonicals) + for _, canonical := range canonicals { + tool := tools[canonical] + mode := strings.TrimSpace(schemaString(tool["interface_mode"])) + availability := strings.TrimSpace(schemaString(tool["availability"])) + if mode == InterfaceModeComposite && availability == InterfaceAvailable { + problems = append(problems, auditCompositeSchemaDisposition(canonical, tool)...) + if strings.HasPrefix(strings.TrimSpace(schemaString(tool["interface_reason"])), "Reviewed unpinned remote adapter:") { + parameters := schemaMap(tool["parameters"]) + for flagName, parameter := range parameters { + if ok, detail := reviewedCompositeParameterMapping(parameter); !ok { + problems = append(problems, fmt.Sprintf( + "%s unpinned remote adapter has no reviewed explicit parameter mapping: %s", + runtimeSchemaParameterMappingKey(canonical, flagName), detail, + )) + } + } + } + continue + } + if mode != InterfaceModeMCP || availability != InterfaceAvailable { + continue + } + metadataKey, pinned, resolveProblems := pinnedMCPParameterMetadata(canonical, tool, metadata) + problems = append(problems, resolveProblems...) + if len(pinned.Parameters) == 0 { + continue + } + parameters := schemaMap(tool["parameters"]) + flagNames := make([]string, 0, len(parameters)) + for flagName := range parameters { + flagNames = append(flagNames, flagName) + } + sort.Strings(flagNames) + for _, flagName := range flagNames { + key := runtimeSchemaParameterMappingKey(canonical, flagName) + flag := flags[key] + flag.metadataKey = metadataKey + flag.metadataParams = pinned.Parameters + flags[key] = flag + reason, excluded := snapshot.MappingExclusions[key] + if excluded && strings.TrimSpace(reason) != "" { + continue + } + root, ok := schemaParameterPropertyRoot(flag.property) + if ok { + _, ok = pinned.Parameters[root] + } + if !ok { + problems = append(problems, fmt.Sprintf( + "%s property %q does not resolve to pinned MCP metadata %s; add/fix a binding or an exact reviewed mapping_exclusions entry", + key, flag.property, metadataKey, + )) + } + } + } + + exclusionKeys := make([]string, 0, len(snapshot.MappingExclusions)) + for key := range snapshot.MappingExclusions { + exclusionKeys = append(exclusionKeys, key) + } + sort.Strings(exclusionKeys) + for _, key := range exclusionKeys { + reason := strings.TrimSpace(snapshot.MappingExclusions[key]) + flag, exists := flags[key] + if !exists { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q does not reference an exact final Catalog parameter", key)) + continue + } + if reason == "" { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q has an empty reviewed reason", key)) + } + if binding := strings.TrimSpace(snapshot.Bindings[flag.canonical][flag.flagName]); binding != "" { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q conflicts with versioned binding %q", key, binding)) + } + if strings.TrimSpace(flag.property) != "" { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q must deliver an omitted property, got %q", key, flag.property)) + } + switch flag.mode { + case InterfaceModeLocal, InterfaceModeComposite: + // These modes do not claim one direct MCP parameter map. The exact, + // reviewed reason and omitted final property are the whole contract. + continue + case InterfaceModeMCP: + if flag.availability != InterfaceAvailable || len(flag.metadataParams) == 0 { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q is not attached to an available pinned MCP parameter map", key)) + continue + } + directProperty := schemaExcludedDirectPropertyCandidate(flag.parameter) + root, ok := schemaParameterPropertyRoot(directProperty) + if !ok { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q has no lower-priority direct property candidate to review", key)) + continue + } + if _, resolves := flag.metadataParams[root]; resolves { + problems = append(problems, fmt.Sprintf("mapping_exclusions %q is stale: candidate property %q already resolves to %s", key, directProperty, flag.metadataKey)) + } + default: + problems = append(problems, fmt.Sprintf("mapping_exclusions %q is only valid for mcp, local, or composite tools", key)) + } + } + + sort.Strings(problems) + return problems +} + +func reviewedCompositeParameterMapping(parameter map[string]any) (bool, string) { + property := strings.TrimSpace(schemaString(parameter["property"])) + provenance := schemaMap(parameter["field_provenance"])["property"] + source := strings.TrimSpace(schemaString(provenance["source"])) + reviewReason := strings.TrimSpace(schemaString(provenance["review_reason"])) + switch source { + case "versioned_parameter_binding", "typed_parameter_metadata", "native_annotation": + if property == "" { + return false, fmt.Sprintf("%s selected an empty property", source) + } + return true, "" + case "reviewed_manual_hint", "tool_schema_hint": + if reviewReason == "" { + return false, fmt.Sprintf("%s has no review_reason", source) + } + if property == "" { + return false, fmt.Sprintf("%s selected an empty property without a mapping exclusion", source) + } + return true, "" + case "reviewed_mapping_exclusion": + if property != "" { + return false, fmt.Sprintf("reviewed_mapping_exclusion delivered property %q", property) + } + return true, "" + default: + return false, fmt.Sprintf("property provenance source is %q", source) + } +} + +func auditCompositeSchemaDisposition(canonical string, tool map[string]any) []string { + problems := make([]string, 0) + if tool["interface_ref"] != nil { + problems = append(problems, fmt.Sprintf("%s composite interface must not advertise a direct interface_ref", canonical)) + } + if strings.TrimSpace(schemaString(tool["interface_reason"])) == "" { + problems = append(problems, fmt.Sprintf("%s composite interface has no reviewed disposition reason", canonical)) + } + provenance := schemaMap(tool["field_provenance"]) + for _, field := range []string{"interface_mode", "availability", "interface_ref", "interface_reason"} { + entry := provenance[field] + if strings.TrimSpace(schemaString(entry["precedence"])) != "reviewed_explicit" { + problems = append(problems, fmt.Sprintf("%s composite %s is not backed by reviewed_explicit provenance", canonical, field)) + } + } + return problems +} + +func finalSchemaCatalogFlagIndex(tools map[string]map[string]any) map[string]schemaParameterMappingFlagAudit { + flags := make(map[string]schemaParameterMappingFlagAudit) + for canonical, tool := range tools { + for flagName, parameter := range schemaMap(tool["parameters"]) { + key := runtimeSchemaParameterMappingKey(canonical, flagName) + flags[key] = schemaParameterMappingFlagAudit{ + canonical: canonical, + flagName: flagName, + mode: strings.TrimSpace(schemaString(tool["interface_mode"])), + availability: strings.TrimSpace(schemaString(tool["availability"])), + property: strings.TrimSpace(schemaString(parameter["property"])), + parameter: parameter, + } + } + } + return flags +} + +func pinnedMCPParameterMetadata(canonical string, tool map[string]any, metadata embeddedMCPMetadata) (string, embeddedMCPToolMetadata, []string) { + refMap, _ := tool["interface_ref"].(map[string]any) + wantRef := embeddedMCPInterfaceRef{ + ProductID: strings.TrimSpace(schemaString(refMap["product_id"])), + RPCName: strings.TrimSpace(schemaString(refMap["rpc_name"])), + } + if wantRef.ProductID == "" || wantRef.RPCName == "" { + return "", embeddedMCPToolMetadata{}, []string{fmt.Sprintf("%s has no complete pinned interface_ref", canonical)} + } + if exact, ok := metadata.Tools[canonical]; ok { + problems := comparePinnedMCPRef(canonical, canonical, exact, wantRef) + return canonical, exact, problems + } + + keys := make([]string, 0) + for key, candidate := range metadata.Tools { + if candidate.InterfaceRef != nil && + strings.TrimSpace(candidate.InterfaceRef.ProductID) == wantRef.ProductID && + strings.TrimSpace(candidate.InterfaceRef.RPCName) == wantRef.RPCName { + keys = append(keys, key) + } + } + sort.Strings(keys) + if len(keys) == 0 { + return "", embeddedMCPToolMetadata{}, []string{fmt.Sprintf("%s pinned interface_ref %s.%s has no MCP metadata", canonical, wantRef.ProductID, wantRef.RPCName)} + } + first := metadata.Tools[keys[0]] + wantParameters := sortedMCPParameterKeys(first.Parameters) + for _, key := range keys[1:] { + if got := strings.Join(sortedMCPParameterKeys(metadata.Tools[key].Parameters), "\x00"); got != strings.Join(wantParameters, "\x00") { + return "", embeddedMCPToolMetadata{}, []string{fmt.Sprintf("%s pinned interface_ref %s.%s has ambiguous parameter maps across metadata keys %s", canonical, wantRef.ProductID, wantRef.RPCName, strings.Join(keys, ", "))} + } + } + return strings.Join(keys, "|"), first, nil +} + +func comparePinnedMCPRef(canonical, metadataKey string, metadata embeddedMCPToolMetadata, want embeddedMCPInterfaceRef) []string { + if metadata.InterfaceRef == nil { + return []string{fmt.Sprintf("MCP metadata %s selected by %s has no interface_ref", metadataKey, canonical)} + } + gotProduct := strings.TrimSpace(metadata.InterfaceRef.ProductID) + gotRPC := strings.TrimSpace(metadata.InterfaceRef.RPCName) + if gotProduct != want.ProductID || gotRPC != want.RPCName { + return []string{fmt.Sprintf("%s pins %s.%s but canonical MCP metadata %s pins %s.%s", canonical, want.ProductID, want.RPCName, metadataKey, gotProduct, gotRPC)} + } + return nil +} + +func sortedMCPParameterKeys(parameters map[string]embeddedMCPParamMeta) []string { + keys := make([]string, 0, len(parameters)) + for key := range parameters { + keys = append(keys, key) + } + sort.Strings(keys) + return keys +} + +func schemaParameterPropertyRoot(property string) (string, bool) { + property = strings.TrimSpace(property) + if property == "" { + return "", false + } + end := len(property) + if index := strings.IndexAny(property, ".["); index >= 0 { + end = index + } + root := strings.TrimSpace(property[:end]) + return root, root != "" +} + +func schemaExcludedDirectPropertyCandidate(parameter map[string]any) string { + fieldProvenance := schemaMap(parameter["field_provenance"])["property"] + for _, raw := range schemaMapSlice(fieldProvenance["candidates"]) { + if schemaString(raw["source"]) == "reviewed_mapping_exclusion" { + continue + } + if value := strings.TrimSpace(schemaString(raw["value"])); value != "" { + return value + } + } + return "" +} + +func limitedSchemaMappingProblems(problems []string, limit int) string { + if len(problems) <= limit { + return strings.Join(problems, "\n") + } + return strings.Join(problems[:limit], "\n") + fmt.Sprintf("\n... %d additional problem(s) omitted", len(problems)-limit) +} + +func schemaMappingProblemsContain(problems []string, substring string) bool { + for _, problem := range problems { + if strings.Contains(problem, substring) { + return true + } + } + return false +} diff --git a/internal/cli/schema_parameter_precedence_test.go b/internal/cli/schema_parameter_precedence_test.go index a5353fe0..0adca153 100644 --- a/internal/cli/schema_parameter_precedence_test.go +++ b/internal/cli/schema_parameter_precedence_test.go @@ -68,6 +68,7 @@ func TestRuntimeSchemaParameterSourcePrecedenceMatrix(t *testing.T) { {"native_annotation", runtimeSchemaRankNativeAnnotation, runtimeSchemaPrecedenceNativeAnnotation}, {"cobra_hard_required", runtimeSchemaRankCobraContract, runtimeSchemaPrecedenceCobra}, {"tool_schema_hint", runtimeSchemaRankToolHint, runtimeSchemaPrecedenceToolHint}, + {"cobra_help", runtimeSchemaRankCobraHelp, runtimeSchemaPrecedenceCobraHelp}, {"mcp_metadata", runtimeSchemaRankMCP, runtimeSchemaPrecedenceMCP}, {"flag_name_inference", runtimeSchemaRankInference, runtimeSchemaPrecedenceInference}, {"default", runtimeSchemaRankDefault, runtimeSchemaPrecedenceDefault}, diff --git a/internal/cli/schema_parameters_runtime.go b/internal/cli/schema_parameters_runtime.go index ff5a28aa..8fe8aeac 100644 --- a/internal/cli/schema_parameters_runtime.go +++ b/internal/cli/schema_parameters_runtime.go @@ -111,8 +111,17 @@ func cloneRuntimeSchemaStringMap(source map[string]string) map[string]string { func init() { RegisterRuntimeSchemaParameterMetadata("aisearch.enterprise_person_search", RuntimeSchemaParameterMetadata{ - Inherited: []string{"keyword", "dimension"}, - Required: []string{"keyword"}, + Required: []string{"keyword"}, + }) + RegisterRuntimeSchemaParameterMetadata("aitable.export_data", RuntimeSchemaParameterMetadata{ + RequiredWhen: map[string]string{ + "table-id": "scope is table or view", + "view-id": "scope is view", + }, + Enums: map[string][]string{ + "scope": {"all", "table", "view"}, + "export-format": {"excel", "attachment", "excel_and_attachment", "excel_with_inline_images"}, + }, }) RegisterRuntimeSchemaParameterMetadata("aitable.record_get", RuntimeSchemaParameterMetadata{ Required: []string{"record-ids"}, @@ -135,6 +144,18 @@ func init() { RegisterRuntimeSchemaParameterMetadata("attendance.batch_get_employee_shifts", RuntimeSchemaParameterMetadata{ Formats: map[string]string{"start": "date", "end": "date"}, }) + RegisterRuntimeSchemaParameterMetadata("attendance.approve_list", RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"start": "date", "end": "date"}, + Examples: map[string]string{"types": "overtime,leave"}, + }) + RegisterRuntimeSchemaParameterMetadata("attendance.selfsetting_get", RuntimeSchemaParameterMetadata{ + Enums: map[string][]string{ + "setting-scene": { + "checkRemind", "fastCheck", "checkResultNotify", "lackRemind", + "personalAttendStatNotify", "bossAttendStatNotify", + }, + }, + }) RegisterRuntimeSchemaParameterMetadata("calendar.add_attachments", RuntimeSchemaParameterMetadata{ Formats: map[string]string{"files": "file-id-name-list"}, Examples: map[string]string{"files": "file-smoke:report.pdf"}, @@ -154,6 +175,9 @@ func init() { RegisterRuntimeSchemaParameterMetadata("chat.download_media", RuntimeSchemaParameterMetadata{ Enums: map[string][]string{"type": {"mediaId"}}, }) + RegisterRuntimeSchemaParameterMetadata("chat.list_owned_or_admin_groups", RuntimeSchemaParameterMetadata{ + Enums: map[string][]string{"role": {"OWNER", "ADMIN"}}, + }) RegisterRuntimeSchemaParameterMetadata("chat.send_personal_message", RuntimeSchemaParameterMetadata{ RequiredWhen: map[string]string{ "media-id": "msg-type is image", @@ -205,6 +229,47 @@ func init() { "contents": `[{"content":"schema smoke","sort":"0","key":"work","contentType":"markdown","type":"1"}]`, }, }) + RegisterRuntimeSchemaParameterMetadata("sheet.batch_update", RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"operations": "json"}, + Examples: map[string]string{ + "operations": `[{"toolName":"range clear","input":{"sheet-id":"Sheet1","range":"A1:B2","type":"content"}}]`, + }, + }) + chartPropertiesExample := `{"position":{"row":0,"col":"A"},"dimensions":{"width":600,"height":400},"chart":{"type":"column","series":[{"value":["B2:B10"]}],"category":["A2:A10"]}}` + for _, canonicalPath := range []string{"sheet.chart_create", "sheet.chart_update"} { + RegisterRuntimeSchemaParameterMetadata(canonicalPath, RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"properties": "json"}, + Examples: map[string]string{"properties": chartPropertiesExample}, + }) + } + RegisterRuntimeSchemaParameterMetadata("sheet.create_pivot_table", RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"properties": "json"}, + Examples: map[string]string{ + "properties": `{"values":[{"field":"Amount","summarize_by":"sum"}]}`, + }, + }) + RegisterRuntimeSchemaParameterMetadata("sheet.update_pivot_table", RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"properties": "json"}, + Examples: map[string]string{"properties": `{"show_subtotals":false}`}, + }) + RegisterRuntimeSchemaParameterMetadata("sheet.range_batch_clear", RuntimeSchemaParameterMetadata{ + Formats: map[string]string{"ranges": "json"}, + Examples: map[string]string{"ranges": `["Sheet1!A1:B2"]`}, + }) + RegisterRuntimeSchemaParameterMetadata("todo.add_todo_reminder", RuntimeSchemaParameterMetadata{ + RequiredWhen: map[string]string{ + "due-date-offset": "base-time is dueTime", + "reminder-time-stamp": "base-time is customTime", + }, + Enums: map[string][]string{"base-time": {"dueTime", "customTime"}}, + Examples: map[string]string{ + "due-date-offset": "-30", + "reminder-time-stamp": "2026-03-10T18:00:00+08:00", + }, + }) + RegisterRuntimeSchemaParameterMetadata("todo.get_user_todos_in_current_org", RuntimeSchemaParameterMetadata{ + Examples: map[string]string{"role-types": "creator,executor"}, + }) for _, canonicalPath := range []string{ "sheet.add_dimension", diff --git a/internal/cli/schema_runtime_registry.go b/internal/cli/schema_runtime_registry.go index 2924f837..0aa1e373 100644 --- a/internal/cli/schema_runtime_registry.go +++ b/internal/cli/schema_runtime_registry.go @@ -18,6 +18,34 @@ type runtimeSchemaMetadataSources struct { MCP embeddedMCPMetadata } +// ResolvedSchemaBuild is the single source-to-delivery hand-off used by the +// Catalog generator. Effective, Bound, and Registry are three views of one +// resolution pass: reviewed identity, executable Cobra binding, and the final +// typed Agent contract. Downstream gates and serializers must consume this +// value instead of rebuilding any view from the command tree. +// +// The command root is intentionally private. It lets delivery completeness +// inspect the same executable tree without allowing callers to construct a +// seemingly resolved build by assembling the exported fields themselves. +type ResolvedSchemaBuild struct { + effective EffectiveCommandRegistry + bound BoundCommandRegistry + registry SchemaRegistry + root *cobra.Command +} + +// RegistryHash returns the semantic identity/navigation hash attached to this +// resolved build. It is an envelope value, not a second registry input. +func (resolved ResolvedSchemaBuild) RegistryHash() string { + return resolved.effective.SourceHash() +} + +// CommandCount reports the reviewed effective command count for generator +// diagnostics without exposing a mutable registry view. +func (resolved ResolvedSchemaBuild) CommandCount() int { + return len(resolved.effective.Commands) +} + func embeddedRuntimeSchemaMetadataSources() runtimeSchemaMetadataSources { return runtimeSchemaMetadataSources{ Agent: runtimeAgentMetadata(), @@ -25,31 +53,59 @@ func embeddedRuntimeSchemaMetadataSources() runtimeSchemaMetadataSources { } } -// buildRuntimeSchemaRegistry is the only assembly path from executable Cobra -// commands and reviewed metadata into the typed Agent contract. Every runtime -// view and the generated release snapshot consumes the returned registry; no -// serializer below this boundary reads annotations or merges source records. -// AssembleSchemaRegistry resolves all command-contract sources once and -// returns the immutable typed registry consumed by every downstream view. -func AssembleSchemaRegistry(root *cobra.Command) (SchemaRegistry, error) { +// ResolveSchemaBuild is the only assembly path from executable Cobra commands +// and reviewed metadata into the typed Agent contract. It applies reviewed +// manual annotations once, resolves identity once, binds Cobra once, and +// assembles one SchemaRegistry. Catalog gates and serialization consume the +// returned value directly; they never re-read annotations or merge sources. +func ResolveSchemaBuild(root *cobra.Command) (ResolvedSchemaBuild, error) { + if root == nil { + return ResolvedSchemaBuild{}, fmt.Errorf("resolve Schema build: root is nil") + } if _, err := ApplyEmbeddedManualSchemaHints(root); err != nil { - return SchemaRegistry{}, fmt.Errorf("apply reviewed manual Schema hints: %w", err) + return ResolvedSchemaBuild{}, fmt.Errorf("apply reviewed manual Schema hints: %w", err) } effective, err := BuildEffectiveCommandRegistry(root) if err != nil { - return SchemaRegistry{}, fmt.Errorf("build effective Schema command registry: %w", err) + return ResolvedSchemaBuild{}, fmt.Errorf("build effective Schema command registry: %w", err) } bound, err := BindEffectiveCommandRegistry(root, effective) if err != nil { - return SchemaRegistry{}, fmt.Errorf("bind effective Schema command registry: %w", err) + return ResolvedSchemaBuild{}, fmt.Errorf("bind effective Schema command registry: %w", err) } - return AssembleSchemaRegistryFromBound(bound) + registry, err := AssembleSchemaRegistryFromBound(bound) + if err != nil { + return ResolvedSchemaBuild{}, err + } + return ResolvedSchemaBuild{ + effective: effective, + bound: bound, + registry: registry, + root: root, + }, nil +} + +// AssembleSchemaRegistry is retained for non-Catalog callers that only need +// the typed registry. Catalog production must use ResolveSchemaBuild so the +// bound/effective views remain attached to the exact same resolution pass. +func AssembleSchemaRegistry(root *cobra.Command) (SchemaRegistry, error) { + resolved, err := ResolveSchemaBuild(root) + if err != nil { + return SchemaRegistry{}, err + } + if err := ValidateSchemaParameterBindingDelivery(resolved.bound, resolved.registry); err != nil { + return SchemaRegistry{}, fmt.Errorf("validate final Schema parameter binding delivery: %w", err) + } + return resolved.registry, nil } // AssembleSchemaRegistryFromBound resolves non-identity sources into the // single typed ToolSpec model. Command discovery is intentionally impossible // below this boundary: callers must first provide a fail-closed bound registry. func AssembleSchemaRegistryFromBound(bound BoundCommandRegistry) (SchemaRegistry, error) { + if err := ValidateEmbeddedSchemaParameterBindings(); err != nil { + return SchemaRegistry{}, fmt.Errorf("validate reviewed Schema parameter bindings: %w", err) + } return assembleSchemaRegistryFromBound(bound, embeddedRuntimeSchemaMetadataSources()) } @@ -104,10 +160,6 @@ func assembleSchemaRegistryFromBound(bound BoundCommandRegistry, metadata runtim return registry, nil } -func buildRuntimeSchemaRegistry(root *cobra.Command) (SchemaRegistry, error) { - return AssembleSchemaRegistry(root) -} - func runtimeToolSpecFromMetadata(entry runtimeSchemaEntry, metadata runtimeSchemaMetadataSources) (ToolSpec, error) { canonicalPath := entry.ProductID + "." + entry.ToolName dryRun, err := reviewedDryRunCapability(canonicalPath) @@ -131,6 +183,9 @@ func runtimeToolSpecFromMetadata(entry runtimeSchemaEntry, metadata runtimeSchem safety, interfaceSpec, selection, provenance, _ := agentToolContractForPathsFromMetadata(metadata.Agent, paths...) if metadataSource == "" && hasEmbeddedMeta { metadataSource = "embedded-mcp-metadata" + textProvenance["metadata_source"] = runtimeSchemaFieldProvenance( + runtimeSchemaStringCandidate(metadataSource, "metadata_source_resolution"), + ) } if provenance == nil { provenance = map[string]FieldProvenance{} diff --git a/internal/cli/schema_text_delivery_test.go b/internal/cli/schema_text_delivery_test.go new file mode 100644 index 00000000..104df86c --- /dev/null +++ b/internal/cli/schema_text_delivery_test.go @@ -0,0 +1,34 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package cli + +import ( + "strings" + "testing" +) + +func TestEmbeddedCatalogKeepsSpecializedAitableViewTextCommandSpecific(t *testing.T) { + loaded := embeddedSchemaCatalog() + checked := 0 + for canonical, tool := range loaded.Snapshot.Tools { + if !strings.HasPrefix(canonical, "aitable.view_get_") && + !strings.HasPrefix(canonical, "aitable.view_update_") { + continue + } + checked++ + if title := schemaString(tool["title"]); title == "get_views" || title == "update_view" { + t.Errorf("%s title leaked generic RPC metadata: %q", canonical, title) + } + provenance := schemaMap(tool["field_provenance"]) + for _, field := range []string{"title", "description"} { + source := schemaString(provenance[field]["source"]) + if source == "mcp_metadata" || source == "pinned_mcp_metadata" { + t.Errorf("%s %s still comes from generic RPC metadata: %#v", canonical, field, provenance[field]) + } + } + } + if checked < 20 { + t.Fatalf("checked %d specialized AITable view tools, want the complete reviewed family", checked) + } +} diff --git a/internal/cli/schema_text_precedence_test.go b/internal/cli/schema_text_precedence_test.go new file mode 100644 index 00000000..b97fc964 --- /dev/null +++ b/internal/cli/schema_text_precedence_test.go @@ -0,0 +1,72 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package cli + +import "testing" + +func TestRuntimeToolTextPrefersCobraHelpOverGenericMCPMetadata(t *testing.T) { + entry := runtimeSchemaEntry{ + ProductID: "aitable", + ToolName: "view_get_filter", + Title: "获取视图 filter 配置", + Description: "获取指定视图当前的筛选规则数组。", + PrimaryCLIPath: "aitable view get filter", + } + metadata := runtimeSchemaMetadataSources{MCP: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{ + "aitable.view_get_filter": { + Title: "get_views", + Description: "获取数据表的全部视图。", + }, + }}} + + title, description, metadataSource, provenance, err := runtimeToolTextMetadataFromMetadata(entry, metadata) + if err != nil { + t.Fatal(err) + } + if title != entry.Title || description != entry.Description { + t.Fatalf("tool text = %q / %q, want Cobra Help %q / %q", title, description, entry.Title, entry.Description) + } + if metadataSource != "" { + t.Fatalf("metadata source = %q, want Cobra Help", metadataSource) + } + for _, field := range []string{"title", "description"} { + if provenance[field].Source != "cobra_help" { + t.Fatalf("%s provenance = %#v, want cobra_help", field, provenance[field]) + } + } +} + +func TestRuntimeToolTextKeepsReviewedHintAboveCobraHelp(t *testing.T) { + entry := runtimeSchemaEntry{ + ProductID: "aitable", + ToolName: "query_records", + Title: "查询记录", + Description: "CLI 查询记录说明。", + PrimaryCLIPath: "aitable record query", + } + metadata := runtimeSchemaMetadataSources{MCP: embeddedMCPMetadata{Tools: map[string]embeddedMCPToolMetadata{ + "aitable.query_records": { + Title: "query_records", + Description: "通用 RPC 查询说明。", + }, + }}} + + title, description, metadataSource, provenance, err := runtimeToolTextMetadataFromMetadata(entry, metadata) + if err != nil { + t.Fatal(err) + } + if title != entry.Title { + t.Fatalf("title = %q, want Cobra Help title %q", title, entry.Title) + } + wantDescription := schemaHintForCanonicalPath("aitable.query_records").Description + if description != wantDescription { + t.Fatalf("description = %q, want reviewed hint %q", description, wantDescription) + } + if metadataSource != "tool-schema-hint" { + t.Fatalf("metadata source = %q, want tool-schema-hint", metadataSource) + } + if provenance["title"].Source != "cobra_help" || provenance["description"].Source != "tool_schema_hint" { + t.Fatalf("provenance = %#v", provenance) + } +} diff --git a/internal/generator/cmd_schema_catalog/main.go b/internal/generator/cmd_schema_catalog/main.go index cbd1d490..ae2ffadc 100644 --- a/internal/generator/cmd_schema_catalog/main.go +++ b/internal/generator/cmd_schema_catalog/main.go @@ -85,43 +85,39 @@ func validateCatalogOutputIsolation(rootPath, outputPath, surfacePath string) er // --surface flag is validated against the embedded registry and can never // replace it as an input source. func generateSchemaCatalog(root *cobra.Command, surfacePath, outputPath string) error { + return generateSchemaCatalogWithResolver(root, surfacePath, outputPath, cli.ResolveSchemaBuild) +} + +type schemaBuildResolver func(*cobra.Command) (cli.ResolvedSchemaBuild, error) + +// generateSchemaCatalogWithResolver exists to make the single-resolution +// contract observable in tests. Production passes cli.ResolveSchemaBuild; the +// returned Effective/Bound/SchemaRegistry views then travel together through +// every gate and the final serializer. +func generateSchemaCatalogWithResolver(root *cobra.Command, surfacePath, outputPath string, resolve schemaBuildResolver) error { if root == nil { return fmt.Errorf("schema source root is nil") } + if resolve == nil { + return fmt.Errorf("schema build resolver is nil") + } if err := validateDeprecatedSurface(surfacePath); err != nil { return err } + if err := cli.ValidateEmbeddedSchemaParameterBindings(); err != nil { + return fmt.Errorf("validate reviewed parameter binding input: %w", err) + } - effective, err := cli.BuildEffectiveCommandRegistry(root) + resolved, err := resolve(root) if err != nil { - return fmt.Errorf("build effective CommandRegistry: %w", err) + return fmt.Errorf("resolve final Schema build: %w", err) } - bound, err := cli.BindEffectiveCommandRegistry(root, effective) - if err != nil { - return fmt.Errorf("bind effective CommandRegistry: %w", err) - } - registry, err := cli.AssembleSchemaRegistryFromBound(bound) - if err != nil { - return fmt.Errorf("assemble final typed SchemaRegistry: %w", err) - } - if err := cli.ValidateReviewedDryRunCapabilityDelivery(registry); err != nil { - return fmt.Errorf("validate reviewed dry-run capability delivery: %w", err) - } - if _, err := cli.ValidateEmbeddedManualAgentExampleDelivery(bound, registry); err != nil { - return fmt.Errorf("validate final Manual Agent example delivery: %w", err) - } - if err := cli.ValidateEmbeddedRuntimeSchemaCompleteness(root); err != nil { - return fmt.Errorf("validate reverse command-tree completeness: %w", err) - } - snapshot, err := cli.BuildSchemaCatalogSnapshot(root, cli.SchemaCatalogBuildOptions{ - RegistryHash: effective.SourceHash(), + snapshot, err := cli.BuildSchemaCatalogSnapshot(resolved, cli.SchemaCatalogBuildOptions{ + RegistryHash: resolved.RegistryHash(), }) if err != nil { return err } - if err := cli.ValidateSchemaCatalogDeliveryCompleteness(root, snapshot); err != nil { - return fmt.Errorf("validate final Catalog delivery completeness: %w", err) - } encoded, err := json.MarshalIndent(snapshot, "", " ") if err != nil { return fmt.Errorf("encode catalog: %w", err) @@ -133,7 +129,7 @@ func generateSchemaCatalog(root *cobra.Command, surfacePath, outputPath string) return fmt.Errorf("write catalog: %w", err) } _, _ = fmt.Fprintf(os.Stderr, "generated schema catalog: output=%s registry_commands=%d tools=%d registry_hash=%s source_hash=%s\n", - outputPath, len(effective.Commands), len(snapshot.Tools), snapshot.SurfaceHash, snapshot.SourceHash) + outputPath, resolved.CommandCount(), len(snapshot.Tools), snapshot.SurfaceHash, snapshot.SourceHash) return nil } diff --git a/internal/generator/cmd_schema_catalog/main_test.go b/internal/generator/cmd_schema_catalog/main_test.go index 0304258e..0fe18a03 100644 --- a/internal/generator/cmd_schema_catalog/main_test.go +++ b/internal/generator/cmd_schema_catalog/main_test.go @@ -4,12 +4,52 @@ package main import ( + "encoding/json" "os" "path/filepath" "strings" "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/app" + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli" + "github.com/spf13/cobra" ) +func TestGenerateSchemaCatalogResolvesBuildExactlyOnce(t *testing.T) { + root := app.NewRootCommand() + resolveCalls := 0 + resolvedRegistryHash := "" + resolver := func(candidate *cobra.Command) (cli.ResolvedSchemaBuild, error) { + resolveCalls++ + if candidate != root { + t.Fatalf("resolver root = %p, want generator root %p", candidate, root) + } + resolved, err := cli.ResolveSchemaBuild(candidate) + if err == nil { + resolvedRegistryHash = resolved.RegistryHash() + } + return resolved, err + } + outputPath := filepath.Join(t.TempDir(), "schema_catalog.json") + if err := generateSchemaCatalogWithResolver(root, "", outputPath, resolver); err != nil { + t.Fatalf("generateSchemaCatalogWithResolver() error = %v", err) + } + if resolveCalls != 1 { + t.Fatalf("Schema build resolver calls = %d, want exactly 1", resolveCalls) + } + data, err := os.ReadFile(outputPath) + if err != nil { + t.Fatalf("read generated temporary Catalog: %v", err) + } + var snapshot cli.SchemaCatalogSnapshot + if err := json.Unmarshal(data, &snapshot); err != nil { + t.Fatalf("decode generated temporary Catalog: %v", err) + } + if snapshot.SurfaceHash != resolvedRegistryHash { + t.Fatalf("snapshot Registry hash = %q, want once-resolved hash %q", snapshot.SurfaceHash, resolvedRegistryHash) + } +} + func TestValidateDeprecatedSurfaceAcceptsEmbeddedRegistrySource(t *testing.T) { path := filepath.Join("..", "..", "cli", "schema_command_registry.json") if err := validateDeprecatedSurface(path); err != nil { diff --git a/internal/helpers/aisearch.go b/internal/helpers/aisearch.go index dd6d2dda..042124d6 100644 --- a/internal/helpers/aisearch.go +++ b/internal/helpers/aisearch.go @@ -66,6 +66,22 @@ func resolveAisearchKeyword(cmd *cobra.Command) string { return "" } +func addAisearchPersonFlags(cmd *cobra.Command) { + cmd.Flags().StringP("keyword", "w", "", "搜索关键词 (必填,如人名、技能关键词等)") + cmd.Flags().StringP("dimension", "d", "all", "查询维度: all/name/department/position/duty/supervisor/subordinate/phone/jobNumber,多个用逗号分隔") + for _, alias := range aisearchKeywordAliases { + cmd.Flags().String(alias, "", "") + _ = cmd.Flags().MarkHidden(alias) + } +} + +func addAisearchKeywordCompatibilityFlag(cmd *cobra.Command) { + cmd.Flags().String("keyword", "", "--queries 的兼容别名") + _ = cmd.Flags().MarkHidden("keyword") + cmd.Flags().String("query", "", "--queries 的兼容别名") + _ = cmd.Flags().MarkHidden("query") +} + // runAisearchPerson 是 aisearch person 的实际执行体,被 personCmd 和 root // 的智能 RunE(裸调兜底)共享调用。 func runAisearchPerson(cmd *cobra.Command, _ []string) error { @@ -157,17 +173,13 @@ func newAisearchCommand() *cobra.Command { }, } - // flag 提到 root 作为 PersistentFlag,这样: + // root 和 person 各自定义同一组本地 flag,这样: // - dws aisearch --keyword xxx ← root 自己能解析 - // - dws aisearch person --keyword xxx ← person 通过继承拿到 - // - dws aisearch search --keyword xxx ← search 是 person 的 alias,同上 - root.PersistentFlags().StringP("keyword", "w", "", "搜索关键词 (必填,如人名、技能关键词等)") - root.PersistentFlags().StringP("dimension", "d", "all", "查询维度: all/name/department/position/duty/supervisor/subordinate/phone/jobNumber,多个用逗号分隔") - // keyword 的同义 flag(隐藏,仅作模型瞎猜兜底) - for _, alias := range aisearchKeywordAliases { - root.PersistentFlags().String(alias, "", "") - _ = root.PersistentFlags().MarkHidden(alias) - } + // - dws aisearch person --keyword xxx ← person 本地 flag + // - dws aisearch search --keyword xxx ← search 是 person 的 alias + // 不能放在 product PersistentFlags:否则 enterprise/behavior 会公开接受 + // 它们不拥有的 person-only dimension,破坏 Help ↔ Schema 完整性。 + addAisearchPersonFlags(root) personCmd := &cobra.Command{ Use: "person", @@ -209,6 +221,7 @@ func newAisearchCommand() *cobra.Command { dws aisearch person --keyword "W12345" --dimension jobNumber`, RunE: runAisearchPerson, } + addAisearchPersonFlags(personCmd) enterpriseCmd := &cobra.Command{ Use: "enterprise", @@ -238,6 +251,7 @@ func newAisearchCommand() *cobra.Command { enterpriseCmd.Flags().String("time-range", "", "时间范围,仅当用户显式给出时间词时填写,如 今天/本周/9月/过去一周") enterpriseCmd.Flags().String("timeRange", "", "--time-range 的别名") _ = enterpriseCmd.Flags().MarkHidden("timeRange") + addAisearchKeywordCompatibilityFlag(enterpriseCmd) behaviorCmd := &cobra.Command{ Use: "behavior", @@ -268,6 +282,7 @@ func newAisearchCommand() *cobra.Command { behaviorCmd.Flags().String("timeRange", "", "--time-range 的别名") _ = behaviorCmd.Flags().MarkHidden("timeRange") behaviorCmd.Flags().String("direction", "", `交互方向,如 "我->汐峰"、"汐峰->我"、"我<->汐峰"`) + addAisearchKeywordCompatibilityFlag(behaviorCmd) root.AddCommand(personCmd, enterpriseCmd, behaviorCmd) return root diff --git a/internal/helpers/aisearch_test.go b/internal/helpers/aisearch_test.go new file mode 100644 index 00000000..44c07205 --- /dev/null +++ b/internal/helpers/aisearch_test.go @@ -0,0 +1,37 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package helpers + +import "testing" + +func TestAisearchPersonFlagsDoNotLeakIntoContentCommands(t *testing.T) { + root := newAisearchCommand() + person, _, err := root.Find([]string{"person"}) + if err != nil { + t.Fatal(err) + } + for _, name := range []string{"keyword", "dimension"} { + flag := person.Flags().Lookup(name) + if flag == nil || flag.Hidden { + t.Fatalf("person --%s = %#v, want visible local flag", name, flag) + } + } + + for _, path := range []string{"enterprise", "behavior"} { + cmd, _, err := root.Find([]string{path}) + if err != nil { + t.Fatal(err) + } + if flag := cmd.Flags().Lookup("dimension"); flag != nil { + t.Fatalf("%s unexpectedly accepts person-only --dimension", path) + } + for _, name := range []string{"keyword", "query"} { + flag := cmd.Flags().Lookup(name) + if flag == nil || !flag.Hidden { + t.Fatalf("%s --%s = %#v, want hidden compatibility flag", path, name, flag) + } + } + } +} diff --git a/internal/helpers/aitable.go b/internal/helpers/aitable.go index 5918216a..0c6374e6 100644 --- a/internal/helpers/aitable.go +++ b/internal/helpers/aitable.go @@ -9,6 +9,7 @@ import ( "strings" "time" + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli" "github.com/spf13/cobra" ) @@ -25,6 +26,25 @@ func parseBoolFlag(cmd *cobra.Command, name string) (bool, error) { return v, nil } +// resolveAitableExportFormat keeps the historical `--format excel` spelling +// executable without advertising it as the business contract. `--format` is +// the root output-format flag, so new calls use `--export-format excel +// --format json`; only non-output values are treated as the legacy export +// format. +func resolveAitableExportFormat(cmd *cobra.Command) string { + if value, _ := cmd.Flags().GetString("export-format"); strings.TrimSpace(value) != "" { + return strings.TrimSpace(value) + } + legacy, _ := cmd.Flags().GetString("format") + legacy = strings.TrimSpace(legacy) + switch strings.ToLower(legacy) { + case "", "json", "table", "raw", "pretty", "ndjson", "csv": + return "" + default: + return legacy + } +} + // ────────────────────────────────────────────────────────── // dws aitable — AI 表格 // 中文 tool name 映射: CLI 英文命令 → MCP 中文 tool name @@ -3733,16 +3753,16 @@ layout 数组里每项含图表的新位置(row/col/width/height)。`, Use: "data", Short: "导出数据", Long: `导出 AI 表格数据的统一入口。 -不传 --task-id 时,根据 --scope / --format 创建新的导出任务,并同步等待结果; +不传 --task-id 时,根据 --scope / --export-format 创建新的导出任务,并同步等待结果; 若在等待窗口内完成,则直接返回 downloadUrl 和 fileName。 传入 --task-id 时,继续等待该任务,不会重新创建。 scope 可选值:all(整个 Base)、table(指定数据表)、view(指定视图)。 -format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。`, - Example: ` 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 - dws aitable export data --base-id BASE_ID --task-id TASK_ID +export-format 可选值:excel、attachment、excel_and_attachment、excel_with_inline_images。`, + Example: ` dws aitable export data --base-id BASE_ID --scope all --export-format excel --format json + dws aitable export data --base-id BASE_ID --scope table --table-id TABLE_ID --export-format excel --format json + dws aitable export data --base-id BASE_ID --scope view --table-id TABLE_ID --view-id VIEW_ID --export-format excel --format json + dws aitable export data --base-id BASE_ID --task-id TASK_ID --format json # 查询 baseId: dws aitable base list`, RunE: func(cmd *cobra.Command, args []string) error { baseID, err := mustFlagOrFallback(cmd, "base-id", "base") @@ -3752,20 +3772,55 @@ format 可选值:excel、attachment、excel_and_attachment、excel_with_inline toolArgs := map[string]any{ "baseId": baseID, } - if v, _ := cmd.Flags().GetString("task-id"); v != "" { - toolArgs["taskId"] = v + taskID, _ := cmd.Flags().GetString("task-id") + taskID = strings.TrimSpace(taskID) + exportFormat := resolveAitableExportFormat(cmd) + if taskID != "" { + if exportFormat != "" || cmd.Flags().Changed("scope") || cmd.Flags().Changed("table-id") || cmd.Flags().Changed("view-id") { + return fmt.Errorf("--task-id is mutually exclusive with --scope, --export-format, --table-id, and --view-id") + } + toolArgs["taskId"] = taskID } else { - if err := validateRequiredFlags(cmd, "scope", "format"); err != nil { + if err := validateRequiredFlags(cmd, "scope"); err != nil { return err } - toolArgs["scope"] = mustGetFlag(cmd, "scope") - toolArgs["format"] = mustGetFlag(cmd, "format") - } - if v, _ := cmd.Flags().GetString("table-id"); v != "" { - toolArgs["tableId"] = v - } - if v, _ := cmd.Flags().GetString("view-id"); v != "" { - toolArgs["viewId"] = v + if exportFormat == "" { + return fmt.Errorf("missing required flag(s): --export-format") + } + scope := strings.ToLower(strings.TrimSpace(mustGetFlag(cmd, "scope"))) + switch scope { + case "all": + if cmd.Flags().Changed("table-id") || cmd.Flags().Changed("view-id") { + return fmt.Errorf("--scope=all does not accept --table-id or --view-id") + } + case "table": + if err := validateRequiredFlags(cmd, "table-id"); err != nil { + return err + } + if cmd.Flags().Changed("view-id") { + return fmt.Errorf("--scope=table does not accept --view-id") + } + case "view": + if err := validateRequiredFlags(cmd, "table-id", "view-id"); err != nil { + return err + } + default: + return fmt.Errorf("--scope must be one of all, table, or view, got %q", scope) + } + exportFormat = strings.ToLower(strings.TrimSpace(exportFormat)) + switch exportFormat { + case "excel", "attachment", "excel_and_attachment", "excel_with_inline_images": + default: + return fmt.Errorf("--export-format must be one of excel, attachment, excel_and_attachment, or excel_with_inline_images, got %q", exportFormat) + } + toolArgs["scope"] = scope + toolArgs["format"] = exportFormat + if v, _ := cmd.Flags().GetString("table-id"); v != "" { + toolArgs["tableId"] = v + } + if v, _ := cmd.Flags().GetString("view-id"); v != "" { + toolArgs["viewId"] = v + } } if v, _ := cmd.Flags().GetInt("timeout-ms"); v > 0 { toolArgs["timeoutMs"] = v @@ -4485,6 +4540,11 @@ parentSectionId 为空串表示该节点在 Base 根目录下。 dws aitable record list --base-id BASE_ID --table-id TABLE_ID --record-ids rec1,rec2`, RunE: recordQueryCmd.RunE, // 复用 recordQueryCmd 的执行逻辑 } + cli.AnnotateRuntimeCompatibilityEquivalence(recordQueryCmd, recordListCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "aitable.record-query-list-v1", + Reason: "The compatibility leaf reuses the exact record query handler and flag surface; it only preserves the historical list spelling.", + Reviewed: true, + }) // 复用 recordQueryCmd 的 flags copyFlags(recordQueryCmd, recordListCmd, "base-id", "base", "table-id", "record-ids", "field-ids", "filters", "sort", "query", "keyword", "limit", "cursor", "page-size", "all", "page-limit", "view-id") _ = recordListCmd.Flags().MarkHidden("keyword") @@ -4767,8 +4827,8 @@ parentSectionId 为空串表示该节点在 Base 根目录下。 // export exportDataCmd.Flags().String("base-id", "", "Base ID (必填)") exportDataCmd.Flags().String("scope", "", "导出范围:all(整个 Base)、table(指定数据表)、view(指定视图)") - exportDataCmd.Flags().String("format", "", "导出格式:excel、attachment、excel_and_attachment、excel_with_inline_images") - exportDataCmd.Flags().String("task-id", "", "已有导出任务 ID,传入后继续等待(忽略 scope/format/table-id/view-id)") + exportDataCmd.Flags().String("export-format", "", "导出格式:excel、attachment、excel_and_attachment、excel_with_inline_images") + exportDataCmd.Flags().String("task-id", "", "已有导出任务 ID,传入后继续等待(不要同时提供 scope/export-format/table-id/view-id)") exportDataCmd.Flags().String("table-id", "", "Table ID,scope=table 或 scope=view 时必填") exportDataCmd.Flags().String("view-id", "", "View ID,scope=view 时必填") exportDataCmd.Flags().Int("timeout-ms", 0, "单次等待超时(毫秒),默认 30000,最大 30000") diff --git a/internal/helpers/aitable_export_test.go b/internal/helpers/aitable_export_test.go new file mode 100644 index 00000000..ab3a8a76 --- /dev/null +++ b/internal/helpers/aitable_export_test.go @@ -0,0 +1,175 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package helpers + +import ( + "context" + "io" + "reflect" + "strings" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/pkg/edition" +) + +type aitableExportCall struct { + productID string + toolName string + args map[string]any +} + +type aitableExportCaller struct { + calls []aitableExportCall +} + +func (c *aitableExportCaller) CallTool(_ context.Context, productID, toolName string, args map[string]any) (*edition.ToolResult, error) { + c.calls = append(c.calls, aitableExportCall{productID: productID, toolName: toolName, args: args}) + return &edition.ToolResult{Content: []edition.ContentBlock{{Type: "text", Text: `{}`}}}, nil +} + +func (*aitableExportCaller) Format() string { return "json" } +func (*aitableExportCaller) DryRun() bool { return false } +func (*aitableExportCaller) Fields() string { return "" } +func (*aitableExportCaller) JQ() string { return "" } + +func runAitableExportCommand(t *testing.T, args ...string) (*aitableExportCaller, error) { + t.Helper() + previousDeps := deps + t.Cleanup(func() { deps = previousDeps }) + + caller := &aitableExportCaller{} + InitDeps(caller) + deps.Out.w = io.Discard + + cmd := newAitableCommand() + cmd.PersistentFlags().String("format", "json", "output format") + cmd.SilenceErrors = true + cmd.SilenceUsage = true + cmd.SetArgs(append([]string{"export", "data"}, args...)) + return caller, cmd.Execute() +} + +func TestAitableExportUsesDedicatedBusinessFormatWithJSONOutput(t *testing.T) { + caller, err := runAitableExportCommand(t, + "--base-id", "base-smoke", + "--scope", "table", + "--table-id", "table-smoke", + "--export-format", "excel", + "--format", "json", + ) + if err != nil { + t.Fatalf("aitable export data returned error: %v", err) + } + if len(caller.calls) != 1 { + t.Fatalf("tool call count = %d, want 1", len(caller.calls)) + } + call := caller.calls[0] + if call.toolName != "export_data" { + t.Fatalf("tool call = %s/%s, want export_data", call.productID, call.toolName) + } + want := map[string]any{ + "baseId": "base-smoke", + "scope": "table", + "format": "excel", + "tableId": "table-smoke", + } + if !reflect.DeepEqual(call.args, want) { + t.Fatalf("tool args = %#v, want %#v", call.args, want) + } +} + +func TestAitableExportNormalizesBusinessFormat(t *testing.T) { + caller, err := runAitableExportCommand(t, + "--base-id", "base-smoke", + "--scope", "all", + "--export-format", " EXCEL ", + ) + if err != nil { + t.Fatalf("aitable export data returned error: %v", err) + } + if len(caller.calls) != 1 { + t.Fatalf("tool call count = %d, want 1", len(caller.calls)) + } + if got := caller.calls[0].args["format"]; got != "excel" { + t.Fatalf("tool format = %#v, want excel", got) + } +} + +func TestAitableExportTaskPollingDoesNotRequireCreationFlags(t *testing.T) { + caller, err := runAitableExportCommand(t, + "--base-id", "base-smoke", + "--task-id", "task-smoke", + "--format", "json", + ) + if err != nil { + t.Fatalf("aitable export polling returned error: %v", err) + } + if len(caller.calls) != 1 { + t.Fatalf("tool call count = %d, want 1", len(caller.calls)) + } + want := map[string]any{"baseId": "base-smoke", "taskId": "task-smoke"} + if !reflect.DeepEqual(caller.calls[0].args, want) { + t.Fatalf("tool args = %#v, want %#v", caller.calls[0].args, want) + } +} + +func TestAitableExportAcceptsLegacyBusinessFormat(t *testing.T) { + caller, err := runAitableExportCommand(t, + "--base-id", "base-smoke", + "--scope", "all", + "--format", "excel", + ) + if err != nil { + t.Fatalf("legacy aitable export returned error: %v", err) + } + if len(caller.calls) != 1 || caller.calls[0].args["format"] != "excel" { + t.Fatalf("legacy tool calls = %#v, want one call with format=excel", caller.calls) + } +} + +func TestAitableExportValidatesBranchSpecificInputs(t *testing.T) { + tests := []struct { + name string + args []string + wantErr string + }{ + { + name: "table scope requires table id", + args: []string{"--base-id", "base-smoke", "--scope", "table", "--export-format", "excel"}, + wantErr: "--table-id", + }, + { + name: "task polling rejects creation flags", + args: []string{"--base-id", "base-smoke", "--task-id", "task-smoke", "--scope", "all", "--format", "json"}, + wantErr: "mutually exclusive", + }, + { + name: "all scope rejects table id", + args: []string{"--base-id", "base-smoke", "--scope", "all", "--table-id", "table-smoke", "--export-format", "excel"}, + wantErr: "--scope=all does not accept", + }, + { + name: "all scope rejects view id", + args: []string{"--base-id", "base-smoke", "--scope", "all", "--view-id", "view-smoke", "--export-format", "excel"}, + wantErr: "--scope=all does not accept", + }, + { + name: "table scope rejects view id", + args: []string{"--base-id", "base-smoke", "--scope", "table", "--table-id", "table-smoke", "--view-id", "view-smoke", "--export-format", "excel"}, + wantErr: "--scope=table does not accept --view-id", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + caller, err := runAitableExportCommand(t, tt.args...) + if err == nil || !strings.Contains(err.Error(), tt.wantErr) { + t.Fatalf("error = %v, want containing %q", err, tt.wantErr) + } + if len(caller.calls) != 0 { + t.Fatalf("tool call count = %d, want 0", len(caller.calls)) + } + }) + } +} diff --git a/internal/helpers/attendance.go b/internal/helpers/attendance.go index 9b4c890c..42757e02 100644 --- a/internal/helpers/attendance.go +++ b/internal/helpers/attendance.go @@ -1122,8 +1122,8 @@ checkTime 字段统一使用 "HH:mm" 格式(如 "09:00"),CLI 自动转换 Short: "查询当前用户可管理的补卡规则列表", Long: `根据用户权限查询补卡规则列表,入参封装在 ATRuleQueryParam 对象中。 --query 补卡规则名称关键字,模糊搜索(可选) - --page 页码(从 1 开始,默认 1)(必填) - --limit 每页条数(200 以内,默认 20)(必填)`, + --page 页码(从 1 开始,默认 1)(可选) + --limit 每页条数(200 以内,默认 20)(可选)`, Example: ` dws attendance adjustment search --page 1 --limit 20 dws attendance adjustment search --query "标准" --page 1 --limit 50`, RunE: func(cmd *cobra.Command, args []string) error { @@ -1175,8 +1175,8 @@ checkTime 字段统一使用 "HH:mm" 格式(如 "09:00"),CLI 自动转换 Short: "查询当前用户可管理的加班规则列表", Long: `根据用户权限查询加班规则列表,入参封装在 ATRuleQueryParam 对象中。 --query 加班规则名称关键字,模糊搜索(可选) - --page 页码(从 1 开始,默认 1)(必填) - --limit 每页条数(200 以内,默认 20)(必填)`, + --page 页码(从 1 开始,默认 1)(可选) + --limit 每页条数(200 以内,默认 20)(可选)`, Example: ` dws attendance overtime search --page 1 --limit 20 dws attendance overtime search --query "节假日" --page 1 --limit 50`, RunE: func(cmd *cobra.Command, args []string) error { @@ -1209,7 +1209,7 @@ checkTime 字段统一使用 "HH:mm" 格式(如 "09:00"),CLI 自动转换 Use: "search", Short: "查询当前用户可管理的考勤组列表", Long: `根据当前用户的权限和筛选条件获取考勤组简要信息。 -入参 ATGroupSearchParam 对象(至少填写一个子字段)和 PageQuery 对象(两个子字段必填)均不能为空。 +CLI 会在未传筛选条件时补齐默认查询字段,在未传分页参数时补齐 page=1、limit=20,以满足服务端非空对象约束。 --query 考勤组名称关键字,模糊搜索 --type 考勤组类型:FIXED(固定班制)/ TURN(排班制)/ NONE(自由工时) --query-position 是否查询地理定位和 Wifi 名称(默认 false) @@ -2998,9 +2998,9 @@ statsType 统计类型支持:week(周统计)、month(月统计)。`, // adjustment-rule search (get_adjustment_rule) attendanceAdjustmentSearchCmd.Flags().String("query", "", "补卡规则名称关键字,模糊搜索(可选)") attendanceAdjustmentSearchCmd.Flags().String("name", "", "补卡规则名称关键字(--query 的别名)") - attendanceAdjustmentSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(必填)") + attendanceAdjustmentSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(默认 1,可选)") attendanceAdjustmentSearchCmd.Flags().Int("current-page", 0, "页码(--page 的别名)") - attendanceAdjustmentSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(必填)") + attendanceAdjustmentSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(默认 20,可选)") attendanceAdjustmentSearchCmd.Flags().Int("size", 0, "每页条数(--limit 的别名)") _ = attendanceAdjustmentSearchCmd.Flags().MarkHidden("name") _ = attendanceAdjustmentSearchCmd.Flags().MarkHidden("current-page") @@ -3014,9 +3014,9 @@ statsType 统计类型支持:week(周统计)、month(月统计)。`, // overtime-rule search (get_overtime_rule) attendanceOvertimeSearchCmd.Flags().String("query", "", "加班规则名称关键字,模糊搜索(可选)") attendanceOvertimeSearchCmd.Flags().String("name", "", "加班规则名称关键字(--query 的别名)") - attendanceOvertimeSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(必填)") + attendanceOvertimeSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(默认 1,可选)") attendanceOvertimeSearchCmd.Flags().Int("current-page", 0, "页码(--page 的别名)") - attendanceOvertimeSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(必填)") + attendanceOvertimeSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(默认 20,可选)") attendanceOvertimeSearchCmd.Flags().Int("size", 0, "每页条数(--limit 的别名)") _ = attendanceOvertimeSearchCmd.Flags().MarkHidden("name") _ = attendanceOvertimeSearchCmd.Flags().MarkHidden("current-page") @@ -3029,9 +3029,9 @@ statsType 统计类型支持:week(周统计)、month(月统计)。`, attendanceGroupSearchCmd.Flags().String("type", "", "考勤组类型:FIXED 固定班制 / TURN 排班制 / NONE 自由工时(可选)") attendanceGroupSearchCmd.Flags().Bool("query-position", false, "是否查询地理定位和 Wifi 名称(可选)") attendanceGroupSearchCmd.Flags().Bool("query-ble", false, "是否查询蓝牙设备列表(可选)") - attendanceGroupSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(必填)") + attendanceGroupSearchCmd.Flags().Int("page", 1, "页码,从 1 开始(默认 1,可选)") attendanceGroupSearchCmd.Flags().Int("page-index", 0, "页码(--page 的别名)") - attendanceGroupSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(必填)") + attendanceGroupSearchCmd.Flags().Int("limit", 20, "每页条数,200 以内(默认 20,可选)") attendanceGroupSearchCmd.Flags().Int("size", 0, "每页条数(--limit 的别名)") _ = attendanceGroupSearchCmd.Flags().MarkHidden("name") _ = attendanceGroupSearchCmd.Flags().MarkHidden("page-index") @@ -3089,7 +3089,9 @@ statsType 统计类型支持:week(周统计)、month(月统计)。`, attendanceSummaryCmd.Flags().String("user", "", "钉钉用户 ID(必填)") attendanceSummaryCmd.Flags().String("date", "", "查询日期,格式 YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss(必填)") attendanceSummaryCmd.Flags().String("stats-type", "", "统计类型:week(周统计)/ month(月统计)(必填)") - attendanceSummaryCmd.Flags().String("tag-name", "", "标签名称(可选)") + attendanceSummaryCmd.Flags().String("tag-name", "", "旧版兼容参数(已废弃,不参与考勤摘要查询)") + _ = attendanceSummaryCmd.Flags().MarkDeprecated("tag-name", "--tag-name 不再参与 attendance summary 查询,请移除该参数") + _ = attendanceSummaryCmd.Flags().MarkHidden("tag-name") // rules (query_attendance_group_or_rules) attendanceRulesCmd.Flags().String("date", "", "考勤日期,格式 YYYY-MM-DD 或 yyyy-MM-dd HH:mm:ss (必填)") diff --git a/internal/helpers/attendance_search_defaults_test.go b/internal/helpers/attendance_search_defaults_test.go new file mode 100644 index 00000000..e40f5094 --- /dev/null +++ b/internal/helpers/attendance_search_defaults_test.go @@ -0,0 +1,175 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package helpers + +import ( + "context" + "io" + "reflect" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/pkg/edition" +) + +type attendanceSearchCall struct { + server string + toolName string + args map[string]any +} + +type attendanceSearchCaller struct { + calls []attendanceSearchCall +} + +func (c *attendanceSearchCaller) CallTool(_ context.Context, server string, toolName string, args map[string]any) (*edition.ToolResult, error) { + c.calls = append(c.calls, attendanceSearchCall{server: server, toolName: toolName, args: args}) + return &edition.ToolResult{Content: []edition.ContentBlock{{Type: "text", Text: `{}`}}}, nil +} + +func (*attendanceSearchCaller) Format() string { return "json" } +func (*attendanceSearchCaller) DryRun() bool { return false } +func (*attendanceSearchCaller) Fields() string { return "" } +func (*attendanceSearchCaller) JQ() string { return "" } + +func runAttendanceSearchCommand(t *testing.T, args ...string) (*attendanceSearchCaller, error) { + t.Helper() + previousDeps := deps + t.Cleanup(func() { deps = previousDeps }) + + caller := &attendanceSearchCaller{} + InitDeps(caller) + deps.Out.w = io.Discard + + cmd := newAttendanceCommand() + cmd.SilenceErrors = true + cmd.SilenceUsage = true + cmd.SetArgs(args) + return caller, cmd.Execute() +} + +func TestAttendanceSearchPaginationFlagsAreOptionalRuntimeDefaults(t *testing.T) { + tests := []struct { + name string + args []string + toolName string + wantArgs map[string]any + }{ + { + name: "adjustment", + args: []string{"adjustment", "search"}, + toolName: "get_adjustment_rule", + wantArgs: map[string]any{"ATRuleQueryParam": map[string]any{"currentPage": 1, "pageSize": 20}}, + }, + { + name: "overtime", + args: []string{"overtime", "search"}, + toolName: "get_overtime_rule", + wantArgs: map[string]any{"ATRuleQueryParam": map[string]any{"currentPage": 1, "pageSize": 20}}, + }, + { + name: "group", + args: []string{"group", "search"}, + toolName: "get_simple_groups", + wantArgs: map[string]any{ + "param": map[string]any{ + "queryPositionAndWifiNames": false, + "queryBleDeviceList": false, + }, + "pageQuery": map[string]any{"pageIndex": 1, "pageSize": 20}, + }, + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + caller, err := runAttendanceSearchCommand(t, test.args...) + if err != nil { + t.Fatalf("attendance search returned error: %v", err) + } + if len(caller.calls) != 1 || caller.calls[0].toolName != test.toolName { + t.Fatalf("tool calls = %#v, want one %s call", caller.calls, test.toolName) + } + if !reflect.DeepEqual(caller.calls[0].args, test.wantArgs) { + t.Fatalf("tool args = %#v, want %#v", caller.calls[0].args, test.wantArgs) + } + }) + } +} + +func TestAttendanceApproveListAcceptsCSVTypesExample(t *testing.T) { + caller, err := runAttendanceSearchCommand(t, + "approve", "list", + "--users", "user-smoke", + "--types", "overtime,leave", + "--start", "2026-04-01", + "--end", "2026-04-30", + ) + if err != nil { + t.Fatalf("attendance approve list returned error: %v", err) + } + if len(caller.calls) != 1 || caller.calls[0].toolName != "query_user_approve" { + t.Fatalf("tool calls = %#v, want one query_user_approve call", caller.calls) + } + want := map[string]any{ + "QueryUserApproveRequest": map[string]any{ + "userIds": []string{"user-smoke"}, + "bizTypes": []int{1, 3}, + "fromDate": "2026-04-01 00:00:00", + "toDate": "2026-04-30 00:00:00", + }, + } + if !reflect.DeepEqual(caller.calls[0].args, want) { + t.Fatalf("tool args = %#v, want %#v", caller.calls[0].args, want) + } +} + +func TestAttendanceSummaryKeepsHiddenDeprecatedTagNameCompatibility(t *testing.T) { + root := newAttendanceCommand() + summary, _, err := root.Find([]string{"summary"}) + if err != nil { + t.Fatalf("find attendance summary: %v", err) + } + for _, flagName := range []string{"user", "date", "stats-type"} { + if summary.Flags().Lookup(flagName) == nil { + t.Errorf("attendance summary does not expose --%s", flagName) + } + } + legacyTagName := summary.Flags().Lookup("tag-name") + if legacyTagName == nil { + t.Fatal("attendance summary no longer accepts legacy --tag-name") + } + if !legacyTagName.Hidden || legacyTagName.Deprecated == "" { + t.Fatalf("legacy --tag-name hidden=%v deprecated=%q, want hidden and deprecated", legacyTagName.Hidden, legacyTagName.Deprecated) + } + + caller, err := runAttendanceSearchCommand(t, + "summary", + "--user", "user-smoke", + "--date", "2026-03-12", + "--stats-type", "week", + "--tag-name", "legacy-script-value", + ) + if err != nil { + t.Fatalf("attendance summary returned error: %v", err) + } + if len(caller.calls) != 1 { + t.Fatalf("tool calls = %#v, want exactly one call", caller.calls) + } + call := caller.calls[0] + if call.server != "attendance-wukong" || call.toolName != "get_user_attendance_summary" { + t.Fatalf("tool call = %s/%s, want attendance-wukong/get_user_attendance_summary", call.server, call.toolName) + } + queryDate, err := parseDateToTimestamp("2026-03-12", "date") + if err != nil { + t.Fatalf("parse fixture date: %v", err) + } + want := map[string]any{ + "userId": "user-smoke", + "queryDate": queryDate, + "statsType": "week", + } + if !reflect.DeepEqual(call.args, want) { + t.Fatalf("tool args = %#v, want %#v", call.args, want) + } +} diff --git a/internal/helpers/chat.go b/internal/helpers/chat.go index 1773ffc7..eaadda24 100644 --- a/internal/helpers/chat.go +++ b/internal/helpers/chat.go @@ -4057,13 +4057,21 @@ flow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成 chatGroupDismissCmd := &cobra.Command{ Use: "dismiss", Short: "解散群聊", - Long: `解散指定群聊。该操作不可逆,需要群主权限。`, - Example: ` dws chat group dismiss --group + Long: `解散指定群聊。该操作不可逆,需要群主权限;必须先获得用户确认,再追加 --yes 执行。`, + Example: ` dws chat group dismiss --group --yes # 查询群 ID: dws chat search --query "群名"`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "group"); err != nil { return err } + if !commandBoolFlag(cmd, "yes") { + return apperrors.NewValidation( + "解散群聊不可逆;获得用户确认后加 --yes 执行", + apperrors.WithReason("confirmation_required"), + apperrors.WithHint("先确认目标群聊及影响范围;用户明确同意后以相同参数追加 --yes"), + apperrors.WithActions("确认目标群聊", "获得用户确认后使用 --yes 执行"), + ) + } return callMCPToolOnServer("im", "dismiss_group", map[string]any{ "openConversationId": mustGetFlag(cmd, "group"), }) @@ -4344,6 +4352,9 @@ flow-status 取值:1=处理中(PROCESSING),2=输入中(INPUTTING),3=完成 RunE: func(cmd *cobra.Command, args []string) error { toolArgs := map[string]any{} if v, _ := cmd.Flags().GetString("role"); v != "" { + if v != "OWNER" && v != "ADMIN" { + return apperrors.NewValidation("--role must be one of OWNER or ADMIN") + } toolArgs["roleFilter"] = v } if v, _ := cmd.Flags().GetInt("limit"); v > 0 { diff --git a/internal/helpers/chat_favorites_test.go b/internal/helpers/chat_favorites_test.go index e13d9fd6..e66468d3 100644 --- a/internal/helpers/chat_favorites_test.go +++ b/internal/helpers/chat_favorites_test.go @@ -83,6 +83,29 @@ func TestChatFavoritesCommandsRegistered(t *testing.T) { } } +func TestChatListMyGroupsValidatesReviewedRoleEnum(t *testing.T) { + caller := &chatFavoritesCaller{} + err := executeChatFavoritesCommand(t, caller, "group", "list-my-groups", "--role", "owner") + if err == nil || !strings.Contains(err.Error(), "OWNER or ADMIN") { + t.Fatalf("error = %v, want reviewed role validation", err) + } + if len(caller.calls) != 0 { + t.Fatalf("tool call count = %d, want 0", len(caller.calls)) + } + + caller = &chatFavoritesCaller{} + if err := executeChatFavoritesCommand(t, caller, "group", "list-my-groups", "--role", "OWNER", "--limit", "10"); err != nil { + t.Fatalf("list-my-groups returned error: %v", err) + } + if len(caller.calls) != 1 || caller.calls[0].toolName != "list_owned_or_admin_groups" { + t.Fatalf("tool calls = %#v, want one list_owned_or_admin_groups call", caller.calls) + } + want := map[string]any{"roleFilter": "OWNER", "limit": 10} + if !reflect.DeepEqual(caller.calls[0].args, want) { + t.Fatalf("tool args = %#v, want %#v", caller.calls[0].args, want) + } +} + func TestChatFavoriteMutationMappings(t *testing.T) { tests := []struct { name string diff --git a/internal/helpers/destructive_confirmation_test.go b/internal/helpers/destructive_confirmation_test.go new file mode 100644 index 00000000..a5aac072 --- /dev/null +++ b/internal/helpers/destructive_confirmation_test.go @@ -0,0 +1,348 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. + +package helpers + +import ( + "context" + stderrors "errors" + "io" + "reflect" + "sort" + "strings" + "testing" + + apperrors "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/errors" + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/pkg/edition" + "github.com/spf13/cobra" +) + +type guardedMutationCall struct { + productID string + toolName string + args map[string]any +} + +type guardedMutationCaller struct { + calls []guardedMutationCall + dryRun bool +} + +func (c *guardedMutationCaller) CallTool(_ context.Context, productID, toolName string, args map[string]any) (*edition.ToolResult, error) { + c.calls = append(c.calls, guardedMutationCall{productID: productID, toolName: toolName, args: args}) + return &edition.ToolResult{Content: []edition.ContentBlock{{Type: "text", Text: `{}`}}}, nil +} + +func (*guardedMutationCaller) Format() string { return "json" } +func (c *guardedMutationCaller) DryRun() bool { return c.dryRun } +func (*guardedMutationCaller) Fields() string { return "" } +func (*guardedMutationCaller) JQ() string { return "" } + +func executeGuardedMutationCommand(t *testing.T, caller *guardedMutationCaller, build func() *cobra.Command, args ...string) error { + t.Helper() + previousDeps := deps + t.Cleanup(func() { deps = previousDeps }) + + InitDeps(caller) + deps.Out.w = io.Discard + root := build() + if root.PersistentFlags().Lookup("yes") == nil { + root.PersistentFlags().Bool("yes", false, "confirm high-risk operation") + } + if root.PersistentFlags().Lookup("dry-run") == nil { + root.PersistentFlags().Bool("dry-run", false, "preview without executing") + } + root.SilenceErrors = true + root.SilenceUsage = true + root.SetArgs(args) + return root.Execute() +} + +func requireTypedConfirmationError(t *testing.T, err error) { + t.Helper() + if err == nil { + t.Fatal("command without --yes unexpectedly succeeded") + } + var appErr *apperrors.Error + if !stderrors.As(err, &appErr) || appErr.Category != apperrors.CategoryValidation { + t.Fatalf("confirmation error = %T %v, want typed validation error", err, err) + } + if appErr.Reason != "confirmation_required" { + t.Fatalf("confirmation reason = %q, want confirmation_required", appErr.Reason) + } +} + +func TestChatDismissGroupRequiresConfirmationBeforeToolCall(t *testing.T) { + caller := &guardedMutationCaller{} + err := executeGuardedMutationCommand(t, caller, newChatCommand, + "group", "dismiss", "--group", "conversation-1") + requireTypedConfirmationError(t, err) + if len(caller.calls) != 0 { + t.Fatalf("tool calls = %#v, want none before confirmation", caller.calls) + } + + caller = &guardedMutationCaller{} + err = executeGuardedMutationCommand(t, caller, newChatCommand, + "group", "dismiss", "--group", "conversation-1", "--yes") + if err != nil { + t.Fatalf("confirmed dismiss returned error: %v", err) + } + want := guardedMutationCall{ + productID: "im", + toolName: "dismiss_group", + args: map[string]any{"openConversationId": "conversation-1"}, + } + if len(caller.calls) != 1 || !reflect.DeepEqual(caller.calls[0], want) { + t.Fatalf("tool calls = %#v, want %#v", caller.calls, want) + } +} + +func TestSheetClearRangeRequiresConfirmationBeforeToolCall(t *testing.T) { + args := []string{ + "range", "clear", + "--node", "node-1", + "--sheet-id", "sheet-1", + "--range", "A1:B3", + "--type", "all", + } + caller := &guardedMutationCaller{} + err := executeGuardedMutationCommand(t, caller, newSheetCommand, args...) + requireTypedConfirmationError(t, err) + if len(caller.calls) != 0 { + t.Fatalf("tool calls = %#v, want none before confirmation", caller.calls) + } + + caller = &guardedMutationCaller{} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--yes")...) + if err != nil { + t.Fatalf("confirmed clear returned error: %v", err) + } + want := guardedMutationCall{ + productID: "", + toolName: "clear_range", + args: map[string]any{ + "nodeId": "node-1", + "sheetId": "sheet-1", + "range": "A1:B3", + "type": "all", + }, + } + if len(caller.calls) != 1 || !reflect.DeepEqual(caller.calls[0], want) { + t.Fatalf("tool calls = %#v, want %#v", caller.calls, want) + } + + caller = &guardedMutationCaller{dryRun: true} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--dry-run")...) + if err != nil { + t.Fatalf("clear dry-run without --yes returned error: %v", err) + } + if len(caller.calls) != 0 { + t.Fatalf("dry-run tool calls = %#v, want none", caller.calls) + } +} + +func TestSheetBatchClearRequiresConfirmationBeforeToolCall(t *testing.T) { + args := []string{ + "range", "batch-clear", + "--node", "node-1", + "--ranges", `["Sheet1!A1:B3","Sheet2!C1:D5"]`, + "--type", "all", + } + caller := &guardedMutationCaller{} + err := executeGuardedMutationCommand(t, caller, newSheetCommand, args...) + requireTypedConfirmationError(t, err) + if len(caller.calls) != 0 { + t.Fatalf("tool calls = %#v, want none before confirmation", caller.calls) + } + + caller = &guardedMutationCaller{} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--yes")...) + if err != nil { + t.Fatalf("confirmed batch-clear returned error: %v", err) + } + want := guardedMutationCall{ + productID: "", + toolName: "batch_update", + args: map[string]any{ + "nodeId": "node-1", + "operations": []any{ + map[string]any{"toolName": "clear_range", "input": map[string]any{"sheetId": "Sheet1", "range": "A1:B3", "type": "all"}}, + map[string]any{"toolName": "clear_range", "input": map[string]any{"sheetId": "Sheet2", "range": "C1:D5", "type": "all"}}, + }, + }, + } + if len(caller.calls) != 1 || !reflect.DeepEqual(caller.calls[0], want) { + t.Fatalf("tool calls = %#v, want %#v", caller.calls, want) + } + + caller = &guardedMutationCaller{dryRun: true} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--dry-run")...) + if err != nil { + t.Fatalf("batch-clear dry-run without --yes returned error: %v", err) + } + if len(caller.calls) != 0 { + t.Fatalf("dry-run tool calls = %#v, want none", caller.calls) + } +} + +func TestSheetBatchUpdateRequiresConfirmationBeforeToolCall(t *testing.T) { + operations := `[{"toolName":"range clear","input":{"sheet-id":"Sheet1","range":"A1:B3","type":"content"}},{"toolName":"delete-dimension","input":{"sheet-id":"Sheet1","dimension":"ROWS","position":2,"length":3}}]` + args := []string{"batch-update", "--node", "node-1", "--operations", operations} + caller := &guardedMutationCaller{} + err := executeGuardedMutationCommand(t, caller, newSheetCommand, args...) + requireTypedConfirmationError(t, err) + if len(caller.calls) != 0 { + t.Fatalf("tool calls = %#v, want none before confirmation", caller.calls) + } + + caller = &guardedMutationCaller{} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--yes")...) + if err != nil { + t.Fatalf("confirmed batch-update returned error: %v", err) + } + want := guardedMutationCall{ + productID: "", + toolName: "batch_update", + args: map[string]any{ + "nodeId": "node-1", + "operations": []any{ + map[string]any{"toolName": "clear_range", "input": map[string]any{"sheetId": "Sheet1", "range": "A1:B3", "type": "content"}}, + map[string]any{"toolName": "delete_dimension", "input": map[string]any{"sheetId": "Sheet1", "dimension": "ROWS", "startIndex": 2, "count": 3}}, + }, + }, + } + if len(caller.calls) != 1 || !reflect.DeepEqual(caller.calls[0], want) { + t.Fatalf("tool calls = %#v, want %#v", caller.calls, want) + } + + caller = &guardedMutationCaller{dryRun: true} + err = executeGuardedMutationCommand(t, caller, newSheetCommand, append(args, "--dry-run")...) + if err != nil { + t.Fatalf("batch-update dry-run without --yes returned error: %v", err) + } + if len(caller.calls) != 0 { + t.Fatalf("dry-run tool calls = %#v, want none", caller.calls) + } +} + +func TestSheetConfirmationGuardCoversEveryProtectedLeaf(t *testing.T) { + tests := []struct { + path string + args []string + }{ + { + path: "sheet batch-update", + args: []string{"batch-update", "--node", "node-1", "--operations", `[{"toolName":"range clear","input":{"sheet-id":"Sheet1","range":"A1:B3"}}]`}, + }, + { + path: "sheet chart delete", + args: []string{"chart", "delete", "--node", "node-1", "--sheet-id", "sheet-1", "--chart-id", "chart-1"}, + }, + { + path: "sheet range clear", + args: []string{"range", "clear", "--node", "node-1", "--sheet-id", "sheet-1", "--range", "A1:B3"}, + }, + { + path: "sheet cond-format delete", + args: []string{"cond-format", "delete", "--node", "node-1", "--sheet-id", "sheet-1", "--rule-id", "rule-1"}, + }, + { + path: "sheet delete-dimension", + args: []string{"delete-dimension", "--node", "node-1", "--sheet-id", "sheet-1", "--dimension", "ROWS", "--position", "1", "--length", "1"}, + }, + { + path: "sheet delete-dropdown", + args: []string{"delete-dropdown", "--node", "node-1", "--sheet-id", "sheet-1", "--range", "A1:A2"}, + }, + { + path: "sheet filter delete", + args: []string{"filter", "delete", "--node", "node-1", "--sheet-id", "sheet-1"}, + }, + { + path: "sheet filter-view delete", + args: []string{"filter-view", "delete", "--node", "node-1", "--sheet-id", "sheet-1", "--filter-view-id", "view-1"}, + }, + { + path: "sheet delete-float-image", + args: []string{"delete-float-image", "--node", "node-1", "--sheet-id", "sheet-1", "--float-image-id", "image-1"}, + }, + { + path: "sheet pivot-table delete", + args: []string{"pivot-table", "delete", "--node", "node-1", "--sheet-id", "sheet-1", "--pivot-table-id", "pivot-1"}, + }, + { + path: "sheet delete-sheet", + args: []string{"delete-sheet", "--node", "node-1", "--sheet-id", "sheet-1"}, + }, + { + path: "sheet filter-view delete-criteria", + args: []string{"filter-view", "delete-criteria", "--node", "node-1", "--sheet-id", "sheet-1", "--filter-view-id", "view-1", "--column", "0"}, + }, + { + path: "sheet range batch-clear", + args: []string{"range", "batch-clear", "--node", "node-1", "--ranges", `["Sheet1!A1:B3"]`}, + }, + { + path: "sheet range move-to", + args: []string{"range", "move-to", "--node", "node-1", "--sheet-id", "sheet-1", "--source-range", "A1:B3", "--target-range", "D1"}, + }, + } + + // A newly protected command must add a runnable case here. This keeps the + // runtime assertion coupled to the structural wrapper instead of a stale + // hand-maintained subset. + root := newSheetCommand() + guardedPaths := make(map[string]bool) + var visit func(*cobra.Command) + visit = func(command *cobra.Command) { + if HasSheetMutationConfirmationGuard(command) { + guardedPaths[command.CommandPath()] = true + } + for _, child := range command.Commands() { + visit(child) + } + } + visit(root) + testPaths := make(map[string]bool, len(tests)) + for _, test := range tests { + testPaths[test.path] = true + } + var missingCases, staleCases []string + for path := range guardedPaths { + if !testPaths[path] { + missingCases = append(missingCases, path) + } + } + for path := range testPaths { + if !guardedPaths[path] { + staleCases = append(staleCases, path) + } + } + if len(missingCases) != 0 || len(staleCases) != 0 { + sort.Strings(missingCases) + sort.Strings(staleCases) + t.Fatalf("Sheet confirmation runtime cases differ from protected leaves: missing_cases=%v stale_cases=%v", missingCases, staleCases) + } + + for _, test := range tests { + test := test + t.Run(strings.TrimPrefix(test.path, "sheet "), func(t *testing.T) { + caller := &guardedMutationCaller{} + err := executeGuardedMutationCommand(t, caller, newSheetCommand, test.args...) + requireTypedConfirmationError(t, err) + if len(caller.calls) != 0 { + t.Fatalf("tool calls before confirmation = %#v, want none", caller.calls) + } + + caller = &guardedMutationCaller{dryRun: true} + dryRunArgs := append(append([]string(nil), test.args...), "--dry-run") + if err := executeGuardedMutationCommand(t, caller, newSheetCommand, dryRunArgs...); err != nil { + t.Fatalf("dry-run without --yes returned error: %v", err) + } + if len(caller.calls) != 0 { + t.Fatalf("dry-run tool calls = %#v, want none", caller.calls) + } + }) + } +} diff --git a/internal/helpers/devapp.go b/internal/helpers/devapp.go index 2ff36bd2..95fadb86 100644 --- a/internal/helpers/devapp.go +++ b/internal/helpers/devapp.go @@ -1904,7 +1904,12 @@ func devAppRequireWriteGuard(cmd *cobra.Command, operation string) error { if commandDryRun(cmd) || devAppYes(cmd) { return nil } - return apperrors.NewValidation(fmt.Sprintf("%s 是写操作;加 --dry-run 预览,或确认后加 --yes 执行", operation)) + return apperrors.NewValidation( + fmt.Sprintf("%s 是写操作;加 --dry-run 预览,或确认后加 --yes 执行", operation), + apperrors.WithReason("confirmation_required"), + apperrors.WithHint("先确认目标应用及变更影响;用户明确同意后以相同参数追加 --yes"), + apperrors.WithActions("确认目标应用和变更内容", "获得用户确认后使用 --yes 执行"), + ) } func devAppYes(cmd *cobra.Command) bool { diff --git a/internal/helpers/devapp_test.go b/internal/helpers/devapp_test.go index 20d5667b..03be2898 100644 --- a/internal/helpers/devapp_test.go +++ b/internal/helpers/devapp_test.go @@ -4,10 +4,12 @@ import ( "bytes" "context" "encoding/json" + stderrors "errors" "reflect" "strings" "testing" + apperrors "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/errors" "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/executor" "github.com/spf13/cobra" ) @@ -935,6 +937,62 @@ func TestDevAppMemberAndSecurityRequireWriteGuard(t *testing.T) { } } +func TestEveryDevAppWriteCommandRequiresGuard(t *testing.T) { + paths := [][]string{ + {"event", "subscribe"}, + {"event", "unsubscribe"}, + {"create"}, + {"update"}, + {"delete"}, + {"disable"}, + {"enable"}, + {"webapp", "config"}, + {"permission", "add"}, + {"permission", "remove"}, + {"member", "add"}, + {"member", "remove"}, + {"security", "config"}, + {"robot", "submit"}, + {"robot", "config"}, + {"robot", "enable"}, + {"robot", "disable"}, + {"version", "create"}, + {"version", "publish"}, + } + + for _, path := range paths { + path := path + t.Run(strings.Join(path, "/"), func(t *testing.T) { + runner := &captureRunner{} + root := newDevAppTestRoot(runner) + var out bytes.Buffer + root.SetOut(&out) + root.SetErr(&out) + root.SetArgs(append([]string{"dev", "app"}, path...)) + + err := root.Execute() + if err == nil { + t.Fatal("Execute() error = nil, want write guard") + } + var appErr *apperrors.Error + if !stderrors.As(err, &appErr) { + t.Fatalf("error type = %T, want *errors.Error", err) + } + if appErr.Reason != "confirmation_required" { + t.Fatalf("error reason = %q, want confirmation_required", appErr.Reason) + } + for _, marker := range []string{"写操作", "--dry-run", "--yes"} { + if !strings.Contains(err.Error(), marker) { + t.Fatalf("error = %q, want %q write-guard marker", err.Error(), marker) + } + } + if runner.last.Tool != "" { + t.Fatalf("tool = %q, want no invocation before confirmation", runner.last.Tool) + } + }) + } +} + func TestDevAppUnwrapsSuccessfulServiceResult(t *testing.T) { runner := &devAppResponseRunner{ response: map[string]any{ diff --git a/internal/helpers/minutes_list_scope_test.go b/internal/helpers/minutes_list_scope_test.go new file mode 100644 index 00000000..77d9fd39 --- /dev/null +++ b/internal/helpers/minutes_list_scope_test.go @@ -0,0 +1,69 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package helpers + +import ( + "context" + "io" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/pkg/edition" +) + +type minutesListScopeCaller struct { + calls int + serverID string + toolName string + arguments map[string]any +} + +func (c *minutesListScopeCaller) CallTool(_ context.Context, serverID, toolName string, arguments map[string]any) (*edition.ToolResult, error) { + c.calls++ + c.serverID = serverID + c.toolName = toolName + c.arguments = arguments + return &edition.ToolResult{Content: []edition.ContentBlock{{Type: "text", Text: `{}`}}}, nil +} + +func (*minutesListScopeCaller) Format() string { return "json" } +func (*minutesListScopeCaller) DryRun() bool { return false } +func (*minutesListScopeCaller) Fields() string { return "" } +func (*minutesListScopeCaller) JQ() string { return "" } + +func TestMinutesListLeavesDeliverTheirFixedRPCScope(t *testing.T) { + for _, test := range []struct { + path string + wantScope string + }{ + {path: "mine", wantScope: "created"}, + {path: "shared", wantScope: "shared"}, + {path: "all", wantScope: "noLimit"}, + } { + t.Run(test.path, func(t *testing.T) { + previousDeps := deps + t.Cleanup(func() { deps = previousDeps }) + caller := &minutesListScopeCaller{} + InitDeps(caller) + deps.Out.w = io.Discard + deps.Out.errW = io.Discard + + command := newMinutesCommand() + command.SilenceErrors = true + command.SilenceUsage = true + command.SetArgs([]string{"list", test.path}) + if err := command.Execute(); err != nil { + t.Fatalf("minutes list %s: %v", test.path, err) + } + if caller.calls != 1 { + t.Fatalf("minutes list %s calls = %d, want 1", test.path, caller.calls) + } + if caller.serverID != "minutes" || caller.toolName != "list_by_keyword_and_time_range" { + t.Fatalf("minutes list %s routed to %s/%s", test.path, caller.serverID, caller.toolName) + } + if got := caller.arguments["belongingConditionId"]; got != test.wantScope { + t.Fatalf("minutes list %s belongingConditionId = %#v, want %q", test.path, got, test.wantScope) + } + }) + } +} diff --git a/internal/helpers/report.go b/internal/helpers/report.go index 1f29977f..c6834c10 100644 --- a/internal/helpers/report.go +++ b/internal/helpers/report.go @@ -12,6 +12,7 @@ import ( "strings" "time" + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/cli" "github.com/spf13/cobra" ) @@ -215,6 +216,32 @@ func newReportCommand() *cobra.Command { } addReportSentFlags(createdListCmd) + // These deprecated leaves wrap the same business handlers with a stderr + // warning. Keep the implementation-side equivalence review next to the + // command construction; Registry alias review alone cannot prove handlers + // do not inject a different request preset. + cli.AnnotateRuntimeCompatibilityEquivalence(templateGetCmd, templateDetailCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.template-get-detail-v1", Reason: "The deprecated detail leaf only adds a deprecation warning before the exact template get business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(entrySubmitCmd, createCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.entry-submit-create-v1", Reason: "The deprecated create leaf only adds a deprecation warning before the exact entry submit business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(entryGetCmd, detailCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.entry-get-detail-v1", Reason: "The deprecated detail leaf only adds a deprecation warning before the exact entry get business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(inboxListCmd, listCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.inbox-list-legacy-list-v1", Reason: "The deprecated list leaf only adds a deprecation warning before the exact inbox list business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(entryStatsCmd, statsCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.entry-stats-legacy-stats-v1", Reason: "The deprecated stats leaf only adds a deprecation warning before the exact entry stats business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(outboxListCmd, sendListCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.outbox-list-legacy-spellings-v1", Reason: "The deprecated sent and created leaves only add a deprecation warning before the exact outbox list business handler.", Reviewed: true, + }) + cli.AnnotateRuntimeCompatibilityEquivalence(outboxListCmd, createdListCmd, cli.RuntimeCompatibilityEquivalence{ + ID: "report.outbox-list-legacy-spellings-v1", Reason: "The deprecated sent and created leaves only add a deprecation warning before the exact outbox list business handler.", Reviewed: true, + }) + root.AddCommand( // 新命令(资源.动词二段式) templateCmd, diff --git a/internal/helpers/sheet.go b/internal/helpers/sheet.go index 40142d00..4039226c 100644 --- a/internal/helpers/sheet.go +++ b/internal/helpers/sheet.go @@ -150,6 +150,38 @@ func newSheetCommand() *cobra.Command { root.AddCommand(standaloneCmds...) root.AddCommand(rangeCmd, filterCmd, filterViewCmd, condFormatCmd, chartCmd, templateCmd, pivotTableCmd) + // This is the reviewed runtime counterpart of the final Sheet Schema + // confirmation=user_required set. It is intentionally command-local: there + // is no Cobra-wide or Schema-driven interceptor. The app-level delivery gate + // verifies this exact protected set against the final typed SchemaRegistry. + confirmationGuards := []struct { + path string + operation string + targetHint string + }{ + {path: "batch-update", operation: "批量更新", targetHint: "文档、子操作及影响范围"}, + {path: "chart delete", operation: "删除浮动图表", targetHint: "文档、工作表和图表"}, + {path: "range clear", operation: "清除工作表区域", targetHint: "工作表、清除范围和清除类型"}, + {path: "cond-format delete", operation: "删除条件格式规则", targetHint: "文档、工作表和规则"}, + {path: "delete-dimension", operation: "删除行或列", targetHint: "工作表、维度、起始位置和数量"}, + {path: "delete-dropdown", operation: "删除下拉列表", targetHint: "工作表和单元格范围"}, + {path: "filter delete", operation: "删除全局筛选", targetHint: "文档和工作表"}, + {path: "filter-view delete", operation: "删除筛选视图", targetHint: "文档、工作表和筛选视图"}, + {path: "delete-float-image", operation: "删除浮动图片", targetHint: "文档、工作表和浮动图片"}, + {path: "pivot-table delete", operation: "删除透视表", targetHint: "文档、工作表和透视表"}, + {path: "delete-sheet", operation: "删除工作表", targetHint: "文档和工作表"}, + {path: "filter-view delete-criteria", operation: "删除筛选视图列条件", targetHint: "文档、工作表、筛选视图和列"}, + {path: "range batch-clear", operation: "批量清除工作表区域", targetHint: "文档、工作表、清除范围和清除类型"}, + {path: "range move-to", operation: "移动工作表区域", targetHint: "源工作表范围和目标位置"}, + } + for _, guard := range confirmationGuards { + command, remaining, err := root.Find(strings.Fields(guard.path)) + if err != nil || command == nil || len(remaining) != 0 || command == root { + panic(fmt.Sprintf("attach Sheet confirmation guard %q: command not found (remaining=%v, err=%v)", guard.path, remaining, err)) + } + protectSheetMutationCommand(command, guard.operation, guard.targetHint) + } + // Guards for grouped parent commands attachUnknownSubcommandGuard(root) attachUnknownSubcommandGuard(rangeCmd) diff --git a/internal/helpers/sheet_batch.go b/internal/helpers/sheet_batch.go index 674a2b48..65d56285 100644 --- a/internal/helpers/sheet_batch.go +++ b/internal/helpers/sheet_batch.go @@ -7,6 +7,7 @@ import ( "os" "strings" + apperrors "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/internal/errors" "github.com/spf13/cobra" ) @@ -315,6 +316,62 @@ func resolveCsvContent(csvVal string) string { // ── batch-update / batch-clear 命令定义 ────────────────────────────────────────── +func requireSheetMutationConfirmation(cmd *cobra.Command, operation, targetHint string) error { + // Let dry-run reach callMCPTool so it emits the exact translated preview. + // The ToolCaller is the authoritative execution boundary and mirrors the + // root --dry-run flag; do not bypass confirmation on a flag-only mismatch. + if deps != nil && deps.Caller != nil && deps.Caller.DryRun() { + return nil + } + if commandBoolFlag(cmd, "yes") { + return nil + } + return apperrors.NewValidation( + fmt.Sprintf("%s可能删除工作表内容或结构;获得用户确认后加 --yes 执行", operation), + apperrors.WithReason("confirmation_required"), + apperrors.WithHint(fmt.Sprintf("先确认%s;用户明确同意后以相同参数追加 --yes", targetHint)), + apperrors.WithActions(fmt.Sprintf("确认%s", targetHint), "获得用户确认后使用 --yes 执行"), + ) +} + +const sheetMutationConfirmationGuardAnnotation = "dws.sheet.confirmation-guard" + +// protectSheetMutationCommand installs the command-local execution guard used +// by Sheet leaves whose final Schema contract declares +// confirmation=user_required. Keeping the annotation and the wrapper in the +// same function makes the Schema-to-runtime coverage gate structural: a +// command cannot advertise the marker without also running the guard. +func protectSheetMutationCommand(cmd *cobra.Command, operation, targetHint string) { + if cmd == nil { + panic("protect sheet mutation command: nil command") + } + if cmd.Annotations != nil && cmd.Annotations[sheetMutationConfirmationGuardAnnotation] == "true" { + panic(fmt.Sprintf("protect sheet mutation command: duplicate guard on %q", cmd.CommandPath())) + } + originalRunE := cmd.RunE + if originalRunE == nil { + panic(fmt.Sprintf("protect sheet mutation command: %q has no RunE", cmd.CommandPath())) + } + if cmd.Annotations == nil { + cmd.Annotations = make(map[string]string) + } + cmd.Annotations[sheetMutationConfirmationGuardAnnotation] = "true" + cmd.RunE = func(cmd *cobra.Command, args []string) error { + if err := requireSheetMutationConfirmation(cmd, operation, targetHint); err != nil { + return err + } + return originalRunE(cmd, args) + } +} + +// HasSheetMutationConfirmationGuard reports whether a Sheet command is +// protected by protectSheetMutationCommand. It is exported for the app-level +// final Schema-to-runtime delivery gate; callers must not set the annotation +// directly. +func HasSheetMutationConfirmationGuard(cmd *cobra.Command) bool { + return cmd != nil && cmd.Annotations != nil && cmd.Annotations[sheetMutationConfirmationGuardAnnotation] == "true" +} + func newBatchUpdateCmd() *cobra.Command { return &cobra.Command{ Use: "batch-update", @@ -323,6 +380,8 @@ func newBatchUpdateCmd() *cobra.Command { 默认严格事务模式:任一子操作失败则整批回滚。 传 --continue-on-error 切换为宽松模式(遇失败继续执行)。 +由于子操作可包含清除、删除等破坏性操作,真实执行必须获得用户确认后加 --yes。 +使用 --dry-run 可预览翻译后的完整请求,不需要 --yes,也不会调用远程接口。 toolName 使用 CLI 命令名(与原子命令一致),input 的键用 CLI flag 名去掉 --。 CLI 层自动翻译为 MCP toolName + 参数名,无需记忆 MCP 参数名。 @@ -342,15 +401,15 @@ dws sheet group-dimension 命令。 完整映射表见: dingtalk-workspace/references/products/sheet/sheet-batch-operations.md`, - Example: ` # 批量清除 + 写入 + 合并 + Example: ` # 批量清除 + 写入 + 合并(获得用户确认后加 --yes) dws sheet batch-update --node NODE_ID --operations '[ {"toolName":"range clear","input":{"sheet-id":"Sheet1","range":"A1:B3","type":"content"}}, {"toolName":"range update","input":{"sheet-id":"Sheet1","range":"A1","values":[[{"type":"text","text":"hello"}]]}}, {"toolName":"merge-cells","input":{"sheet-id":"Sheet1","range":"A1:B1","merge-type":"mergeAll"}} - ]' + ]' --yes # 宽松模式 - dws sheet batch-update --node NODE_ID --continue-on-error --operations '[...]'`, + dws sheet batch-update --node NODE_ID --continue-on-error --operations '[...]' --yes`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "node", "operations"); err != nil { return err @@ -401,9 +460,10 @@ func newRangeBatchClearCmd() *cobra.Command { Long: `批量清除多个区域,一次原子请求。任一区域清除失败则整批回滚。 每个 --ranges 项必须包含工作表前缀(格式: "SheetName!A1:B3")。 -不同区域可以属于不同工作表。`, - Example: ` dws sheet range batch-clear --node NODE_ID --ranges '["Sheet1!A1:B3","Sheet2!C1:D5"]' - dws sheet range batch-clear --node NODE_ID --ranges '["Sheet1!A1:Z1000"]' --type all`, +不同区域可以属于不同工作表。 +真实执行必须获得用户确认后加 --yes;--dry-run 仅预览且不调用远程接口。`, + Example: ` dws sheet range batch-clear --node NODE_ID --ranges '["Sheet1!A1:B3","Sheet2!C1:D5"]' --yes + dws sheet range batch-clear --node NODE_ID --ranges '["Sheet1!A1:Z1000"]' --type all --yes`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "node", "ranges"); err != nil { return err diff --git a/internal/helpers/sheet_chart.go b/internal/helpers/sheet_chart.go index 8ebfb2f5..00ff19c5 100644 --- a/internal/helpers/sheet_chart.go +++ b/internal/helpers/sheet_chart.go @@ -293,13 +293,9 @@ position.col 使用列字母表示法(如 "A"、"AA"),不支持数字形 注意: 这是一个危险操作,删除后图表不可恢复。执行前需要确认,或传入 --yes 跳过确认。 chart-id 可通过 chart list 获取。`, - Example: ` dws sheet chart delete --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID --yes - dws sheet chart delete --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID`, + Example: ` dws sheet chart delete --node NODE_ID --sheet-id SHEET_ID --chart-id CHART_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { chartID := mustGetFlag(cmd, "chart-id") - if !confirmDelete("浮动图表", chartID) { - return nil - } return callMCPTool("delete_float_chart", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), "sheetId": mustGetFlag(cmd, "sheet-id"), diff --git a/internal/helpers/sheet_cond_format.go b/internal/helpers/sheet_cond_format.go index 7ee12f5e..bbcde851 100644 --- a/internal/helpers/sheet_cond_format.go +++ b/internal/helpers/sheet_cond_format.go @@ -270,10 +270,6 @@ ruleId 可通过 cond-format list 获取。`, Example: ` # 删除条件格式规则(必须加 --yes 确认) dws sheet cond-format delete --node NODE_ID --sheet-id SHEET_ID --rule-id RULE_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { - yes, _ := cmd.Flags().GetBool("yes") - if !yes { - return fmt.Errorf("删除条件格式规则是不可恢复的危险操作,请先向用户确认后加 --yes 执行") - } return callMCPTool("delete_cond_format", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), "sheetId": mustGetFlag(cmd, "sheet-id"), diff --git a/internal/helpers/sheet_dimension.go b/internal/helpers/sheet_dimension.go index 69b41125..d420d2d7 100644 --- a/internal/helpers/sheet_dimension.go +++ b/internal/helpers/sheet_dimension.go @@ -255,17 +255,17 @@ sheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获 支持在 --position 中携带工作表前缀(如 "Sheet1!3" / "Sheet1!A"),此时将忽略 --sheet-id。 删除后后续的行/列会向前移动填补空位;若需要仅清空内容但保留行/列占位,请使用 clear_range 工具。`, - Example: ` # 从第 3 行开始删除 2 行 - dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension ROWS --position "3" --length 2 + Example: ` # 获得用户确认后从第 3 行开始删除 2 行 + dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension ROWS --position "3" --length 2 --yes - # 从 A 列开始删除 1 列 - dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension COLUMNS --position "A" --length 1 + # 获得用户确认后从 A 列开始删除 1 列 + dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension COLUMNS --position "A" --length 1 --yes # 使用工作表前缀(忽略 --sheet-id) - dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension ROWS --position "Sheet1!3" --length 5 + dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension ROWS --position "Sheet1!3" --length 5 --yes - # 从 AB 列开始删除 3 列 - dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension COLUMNS --position "AB" --length 3`, + # 获得用户确认后从 AB 列开始删除 3 列 + dws sheet delete-dimension --node NODE_ID --sheet-id SHEET_ID --dimension COLUMNS --position "AB" --length 3 --yes`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "node", "sheet-id", "dimension", "position", "length"); err != nil { return err @@ -556,11 +556,11 @@ sheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获 nodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。 sheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。`, - Example: ` # 删除指定范围的下拉列表 - dws sheet delete-dropdown --node NODE_ID --sheet-id SHEET_ID --range "A2:A100" + Example: ` # 获得用户确认后删除指定范围的下拉列表 + dws sheet delete-dropdown --node NODE_ID --sheet-id SHEET_ID --range "A2:A100" --yes - # 删除多列范围的下拉列表 - dws sheet delete-dropdown --node NODE_ID --sheet-id SHEET_ID --range "B1:D10"`, + # 获得用户确认后删除多列范围的下拉列表 + dws sheet delete-dropdown --node NODE_ID --sheet-id SHEET_ID --range "B1:D10" --yes`, RunE: func(cmd *cobra.Command, args []string) error { return callMCPTool("delete_dropdown_lists", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), diff --git a/internal/helpers/sheet_filter_view.go b/internal/helpers/sheet_filter_view.go index 17f8ec2b..6a1ee1db 100644 --- a/internal/helpers/sheet_filter_view.go +++ b/internal/helpers/sheet_filter_view.go @@ -230,7 +230,7 @@ func newFilterCmd() *cobra.Command { 删除后所有筛选条件丢失,所有被隐藏的行将重新显示。此操作不可恢复。 工作表没有筛选时调用会报错。`, - Example: ` dws sheet filter delete --node NODE_ID --sheet-id SHEET_ID`, + Example: ` dws sheet filter delete --node NODE_ID --sheet-id SHEET_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { return callMCPTool("delete_filter", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), @@ -508,8 +508,8 @@ filterViewId 可通过 filter-view list 获取。 nodeId 支持传入文档链接 URL 或文档 ID(dentryUuid),系统自动识别。 sheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获取。 filterViewId 可通过 filter-view list 获取。`, - Example: ` # 删除指定筛选视图 - dws sheet filter-view delete --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID`, + Example: ` # 获得用户确认后删除指定筛选视图 + dws sheet filter-view delete --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { return callMCPTool("delete_filter_view", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), @@ -627,11 +627,11 @@ sheetId 支持传入工作表 ID 或工作表名称,可通过 sheet list 获 filterViewId 可通过 filter-view list 获取。 --column 为列偏移量(从 0 开始),相对于筛选视图范围首列。`, - Example: ` # 删除第 1 列(A 列)的筛选条件 - dws sheet filter-view delete-criteria --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID --column 0 + Example: ` # 获得用户确认后删除第 1 列(A 列)的筛选条件 + dws sheet filter-view delete-criteria --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID --column 0 --yes - # 删除第 3 列(C 列)的筛选条件 - dws sheet filter-view delete-criteria --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID --column 2`, + # 获得用户确认后删除第 3 列(C 列)的筛选条件 + dws sheet filter-view delete-criteria --node NODE_ID --sheet-id SHEET_ID --filter-view-id FV_ID --column 2 --yes`, RunE: func(cmd *cobra.Command, args []string) error { column, err := cmd.Flags().GetInt("column") if err != nil { diff --git a/internal/helpers/sheet_float_image.go b/internal/helpers/sheet_float_image.go index 09b3e237..211ef2ac 100644 --- a/internal/helpers/sheet_float_image.go +++ b/internal/helpers/sheet_float_image.go @@ -209,7 +209,7 @@ floatImageId 可通过 list-float-images 获取。`, 操作不可恢复,删除后图片将从工作表中移除。 floatImageId 可通过 list-float-images 获取。`, - Example: ` dws sheet delete-float-image --node NODE_ID --sheet-id SHEET_ID --float-image-id FI_ID`, + Example: ` dws sheet delete-float-image --node NODE_ID --sheet-id SHEET_ID --float-image-id FI_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { return callMCPTool("delete_float_image", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), diff --git a/internal/helpers/sheet_pivot_table.go b/internal/helpers/sheet_pivot_table.go index dc67f740..91ac7937 100644 --- a/internal/helpers/sheet_pivot_table.go +++ b/internal/helpers/sheet_pivot_table.go @@ -234,9 +234,6 @@ func newPivotTableCmd() *cobra.Command { return err } pivotTableID := mustGetFlag(cmd, "pivot-table-id") - if !confirmDangerousAction(cmd, "delete 透视表", pivotTableID) { - return nil - } return callMCPTool("delete_pivot_table", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), "sheetId": mustGetFlag(cmd, "sheet-id"), diff --git a/internal/helpers/sheet_range_ops.go b/internal/helpers/sheet_range_ops.go index 425f3945..a80524b5 100644 --- a/internal/helpers/sheet_range_ops.go +++ b/internal/helpers/sheet_range_ops.go @@ -225,10 +225,12 @@ dws sheet info --node NODE_ID --sheet-id SHEET_ID --format json,并读取 merg 范围格式使用 A1 表示法: --range A1:B3 清除 A1 到 B3 的矩形区域 --range A1 清除单个单元格 - --range A:C 清除整列范围`, - Example: ` dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" - dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" --type format - dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" --type all`, + --range A:C 清除整列范围 + +该操作会删除内容或格式;必须先获得用户确认,再追加 --yes 执行。`, + Example: ` dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" --yes + dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" --type format --yes + dws sheet range clear --node NODE_ID --sheet-id SHEET_ID --range "A1:B3" --type all --yes`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "node", "sheet-id", "range"); err != nil { return err @@ -386,11 +388,11 @@ column 使用字母列名(如 "A"、"B"、"AA"),表示排序的目标列 限制: - 同一工作表内源和目标范围不能重叠`, Example: ` dws sheet range move-to --node NODE_ID --sheet-id SHEET_ID \ - --source-range "A1:C5" --target-range "D1" + --source-range "A1:C5" --target-range "D1" --yes dws sheet range move-to --node NODE_ID --sheet-id SHEET_ID \ - --source-range "A1:C5" --target-range "A1" --target-sheet-id Sheet2 + --source-range "A1:C5" --target-range "A1" --target-sheet-id Sheet2 --yes dws sheet range move-to --node NODE_ID --sheet-id SHEET_ID \ - --source-range "A1:C5" --target-range "Sheet2!A1"`, + --source-range "A1:C5" --target-range "Sheet2!A1" --yes`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "node", "sheet-id", "source-range", "target-range"); err != nil { return err diff --git a/internal/helpers/sheet_workbook.go b/internal/helpers/sheet_workbook.go index a3af4ab4..b6f6d966 100644 --- a/internal/helpers/sheet_workbook.go +++ b/internal/helpers/sheet_workbook.go @@ -250,7 +250,7 @@ name 不能包含 / \ ? * [ ] : 等特殊字符,最长 100 字符。`, 约束: - 不能删除隐藏的工作表(需先取消隐藏再删除) - 不能删除最后一个可见工作表(至少保留一个可见工作表)`, - Example: ` dws sheet delete-sheet --node NODE_ID --sheet-id SHEET_ID`, + Example: ` dws sheet delete-sheet --node NODE_ID --sheet-id SHEET_ID --yes`, RunE: func(cmd *cobra.Command, args []string) error { return callMCPTool("delete_sheet", map[string]any{ "nodeId": mustGetFlag(cmd, "node"), diff --git a/internal/helpers/todo.go b/internal/helpers/todo.go index a1675444..7031474b 100644 --- a/internal/helpers/todo.go +++ b/internal/helpers/todo.go @@ -387,28 +387,37 @@ func newTodoCommand() *cobra.Command { todoTaskAddReminderCmd := &cobra.Command{ Use: "add-reminder", Short: "添加待办提醒", - Example: ` dws todo task add-reminder --task-id --base-time --due-date-offset - dws todo task add-reminder --task-id --base-time --reminder-time-stamp + Example: ` dws todo task add-reminder --task-id --base-time dueTime --due-date-offset -30 + dws todo task add-reminder --task-id --base-time customTime --reminder-time-stamp 2026-03-10T18:00:00+08:00 # 查询 taskId: dws todo task list # 查询 userId: dws contact user search --query "姓名"`, RunE: func(cmd *cobra.Command, args []string) error { if err := validateRequiredFlags(cmd, "task-id", "base-time"); err != nil { return err } - baseTime := mustGetFlag(cmd, "base-time") + baseTime := strings.TrimSpace(mustGetFlag(cmd, "base-time")) dueDateOffset := any(nil) reminderTimeStamp := any(nil) - if baseTime == "dueTime" { - dueDateOffset = mustGetFlag(cmd, "due-date-offset") - // dueDateOffset should not be empty - } else if baseTime == "customTime" { - if v, _ := cmd.Flags().GetString("reminder-time-stamp"); v != "" { - ms, err := parseISOTimeToMillis("reminder-time-stamp", v) - if err != nil { - return err - } - reminderTimeStamp = ms + switch baseTime { + case "dueTime": + value := strings.TrimSpace(mustGetFlag(cmd, "due-date-offset")) + if value == "" { + return fmt.Errorf("--due-date-offset is required when --base-time=dueTime") } + dueDateOffset = value + case "customTime": + value, _ := cmd.Flags().GetString("reminder-time-stamp") + value = strings.TrimSpace(value) + if value == "" { + return fmt.Errorf("--reminder-time-stamp is required when --base-time=customTime") + } + ms, err := parseISOTimeToMillis("reminder-time-stamp", value) + if err != nil { + return err + } + reminderTimeStamp = ms + default: + return fmt.Errorf("--base-time must be one of dueTime or customTime, got %q", baseTime) } return callMCPTool("add_todo_reminder", map[string]any{ "todoReminderAddRequest": map[string]any{ diff --git a/internal/helpers/todo_reminder_test.go b/internal/helpers/todo_reminder_test.go new file mode 100644 index 00000000..d6159b4b --- /dev/null +++ b/internal/helpers/todo_reminder_test.go @@ -0,0 +1,149 @@ +// Copyright 2026 Alibaba Group +// Licensed under the Apache License, Version 2.0 (the "License"); + +package helpers + +import ( + "context" + "io" + "reflect" + "strings" + "testing" + + "github.com/DingTalk-Real-AI/dingtalk-workspace-cli/pkg/edition" +) + +type todoReminderCall struct { + toolName string + args map[string]any +} + +type todoReminderCaller struct { + calls []todoReminderCall +} + +func (c *todoReminderCaller) CallTool(_ context.Context, _ string, toolName string, args map[string]any) (*edition.ToolResult, error) { + c.calls = append(c.calls, todoReminderCall{toolName: toolName, args: args}) + return &edition.ToolResult{Content: []edition.ContentBlock{{Type: "text", Text: `{}`}}}, nil +} + +func (*todoReminderCaller) Format() string { return "json" } +func (*todoReminderCaller) DryRun() bool { return false } +func (*todoReminderCaller) Fields() string { return "" } +func (*todoReminderCaller) JQ() string { return "" } + +func runTodoReminderCommand(t *testing.T, args ...string) (*todoReminderCaller, error) { + t.Helper() + previousDeps := deps + t.Cleanup(func() { deps = previousDeps }) + + caller := &todoReminderCaller{} + InitDeps(caller) + deps.Out.w = io.Discard + + cmd := newTodoCommand() + cmd.SilenceErrors = true + cmd.SilenceUsage = true + cmd.SetArgs(append([]string{"task", "add-reminder"}, args...)) + return caller, cmd.Execute() +} + +func TestTodoAddReminderValidatesModeSpecificInputsBeforeCallingTool(t *testing.T) { + tests := []struct { + name string + args []string + wantErr string + }{ + { + name: "due time requires offset", + args: []string{"--task-id", "task-smoke", "--base-time", "dueTime"}, + wantErr: "--due-date-offset is required", + }, + { + name: "custom time requires timestamp", + args: []string{"--task-id", "task-smoke", "--base-time", "customTime"}, + wantErr: "--reminder-time-stamp is required", + }, + { + name: "unknown base time", + args: []string{"--task-id", "task-smoke", "--base-time", "deadline", "--due-date-offset", "-30"}, + wantErr: "--base-time must be one of dueTime or customTime", + }, + { + name: "custom time validates timestamp", + args: []string{"--task-id", "task-smoke", "--base-time", "customTime", "--reminder-time-stamp", "tomorrow"}, + wantErr: "reminder-time-stamp", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + caller, err := runTodoReminderCommand(t, test.args...) + if err == nil || !strings.Contains(err.Error(), test.wantErr) { + t.Fatalf("error = %v, want containing %q", err, test.wantErr) + } + if len(caller.calls) != 0 { + t.Fatalf("tool call count = %d, want 0", len(caller.calls)) + } + }) + } +} + +func TestTodoAddReminderMapsReviewedModes(t *testing.T) { + tests := []struct { + name string + args []string + wantBaseTime string + wantDueDateOffset any + wantReminderTimestamp any + }{ + { + name: "due time", + args: []string{"--task-id", "task-smoke", "--base-time", "dueTime", "--due-date-offset", "-30"}, + wantBaseTime: "dueTime", + wantDueDateOffset: "-30", + }, + { + name: "custom time", + args: []string{"--task-id", "task-smoke", "--base-time", "customTime", "--reminder-time-stamp", "2026-03-10T18:00:00+08:00"}, + wantBaseTime: "customTime", + wantReminderTimestamp: int64(1773136800000), + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + caller, err := runTodoReminderCommand(t, test.args...) + if err != nil { + t.Fatalf("todo add-reminder returned error: %v", err) + } + if len(caller.calls) != 1 || caller.calls[0].toolName != "add_todo_reminder" { + t.Fatalf("tool calls = %#v, want one add_todo_reminder call", caller.calls) + } + request, ok := caller.calls[0].args["todoReminderAddRequest"].(map[string]any) + if !ok { + t.Fatalf("request = %#v, want object", caller.calls[0].args["todoReminderAddRequest"]) + } + if request["taskId"] != "task-smoke" || request["baseTime"] != test.wantBaseTime { + t.Fatalf("request identity = %#v", request) + } + if request["dueDateOffset"] != test.wantDueDateOffset { + t.Fatalf("dueDateOffset = %#v, want %#v", request["dueDateOffset"], test.wantDueDateOffset) + } + if request["reminderTimeStamp"] != test.wantReminderTimestamp { + t.Fatalf("reminderTimeStamp = %#v, want %#v", request["reminderTimeStamp"], test.wantReminderTimestamp) + } + }) + } +} + +func TestTodoRoleTypesCSVExampleUsesRuntimeParser(t *testing.T) { + got, err := parseRoleTypes("creator,executor") + if err != nil { + t.Fatalf("parse role-types example: %v", err) + } + want := []string{"creator", "executor"} + if !reflect.DeepEqual(got, want) { + t.Fatalf("role types = %#v, want %#v", got, want) + } +} diff --git a/scripts/dev/schema_command_smoke.py b/scripts/dev/schema_command_smoke.py index 59db3591..bc352eda 100755 --- a/scripts/dev/schema_command_smoke.py +++ b/scripts/dev/schema_command_smoke.py @@ -1,10 +1,22 @@ #!/usr/bin/env python3 -"""Run every executable `dws schema --all` leaf in dry-run mode. +"""Validate every full Schema leaf against Cobra Help and smoke runtime wiring. -The script treats `dws schema --all --format json` as the command inventory, expands -each leaf schema, synthesizes flag values from parameter metadata, and executes -the runnable CLI path with `--dry-run --yes --format json`. Every available -combination of `require_one_of` branches is exercised independently. +The script loads ``dws schema --all --format json`` exactly once and uses those +full leaf payloads directly. Every leaf receives a bidirectional Schema/Help +flag contract check that excludes root execution controls and reviewed generic +payload escape hatches, but retains effective product/group flags. Runtime +execution is opt-in: only a leaf that publishes a valid ``dry_run`` object is +invoked with ``--dry-run``. Merely inheriting the global flag is never treated +as capability evidence, and ``--yes`` is never injected. + +The subprocess result is only a final-binary exit-health check. It deliberately +does not infer preview evidence from human-readable text. The Go Agent-example +gate is the sole proof of preview kind, absence of real ToolCaller invocations, +and non-interactive safety. + +Run the fast, binary-free self-tests with:: + + python3 -m unittest scripts/dev/schema_command_smoke_test.py """ from __future__ import annotations @@ -13,7 +25,6 @@ import argparse import concurrent.futures import itertools import json -import os import re import shlex import subprocess @@ -25,6 +36,35 @@ from pathlib import Path from typing import Any +GLOBAL_EXECUTION_CONTROL_FLAGS = frozenset( + { + "client-id", + "client-secret", + "debug", + "dry-run", + "fields", + "format", + "jq", + "mock", + "output", + "profile", + "timeout", + "token", + "verbose", + "yes", + } +) +COBRA_FRAMEWORK_FLAGS = frozenset({"help"}) +DRY_RUN_PREVIEW_KINDS = frozenset({"invocation", "request", "plan", "diff"}) +GENERIC_PAYLOAD_FLAG_USAGES = { + "json": "Base JSON object payload for this tool invocation", + "params": "Additional JSON object payload merged after --json", +} +HELP_FLAG_PATTERN = re.compile( + r"^\s*(?:-[a-zA-Z0-9],\s*)?--([a-zA-Z0-9][a-zA-Z0-9_.-]*)(?:[ =]|$)" +) + + @dataclass class SmokeResult: canonical_path: str @@ -189,16 +229,19 @@ def scalar_value(flag: str, param: dict[str, Any], canonical_path: str) -> str: def value_for(flag: str, param: dict[str, Any], canonical_path: str) -> str | None: - if canonical_path == "pat.batch_grant" and flag == "scope": - return "aitable.record:read" + # Reviewed examples and declared enums are contract data. They must win + # before type/name heuristics (notably integer enums such as mute-time). + if param.get("example") not in (None, ""): + return str(param["example"]) + enum = param.get("enum") or [] + if enum: + return str(enum[0]) + if canonical_path == "sheet.range_batch_set_style" and flag == "batch": return str(Path(tempfile.gettempdir()) / "dws-schema-smoke-style.json") if canonical_path == "report.create_report" and flag == "contents-file": return "tmp/dws-schema-smoke-report.json" - if param.get("example") not in (None, ""): - return str(param["example"]) - typ = str(param.get("type", "string")).lower() prop = str(param.get("property", "")) haystack = " ".join([kebab_to_words(flag), kebab_to_words(prop)]) @@ -383,6 +426,8 @@ def build_command( include_optional: bool, one_of_choices: tuple[str, ...] = (), ) -> list[str]: + if not declared_dry_run(leaf): + raise ValueError("runtime smoke requires an explicit leaf dry_run capability") cli_path = str(leaf["cli_path"]) canonical_path = str(leaf.get("canonical_path", "")) extra_flags = smoke_extra_flags(canonical_path) @@ -405,6 +450,9 @@ def build_command( for flag in sorted(params): param = params[flag] or {} + if flag == "yes": + # A preview must prove that confirmation cannot be bypassed. + continue if flag not in selected_params and flag not in extra_flags: continue if str(param.get("type", "")).lower() == "boolean": @@ -412,11 +460,65 @@ def build_command( continue value = value_for(flag, param, canonical_path) argv.extend([f"--{flag}", "" if value is None else value]) - argv.extend(["--dry-run", "--yes", "--format", "json"]) + # A positive leaf dry_run declaration is the only caller-side admission + # condition. Confirmation must never be bypassed by injecting --yes, and + # no output flag is appended because commands may own a same-named flag. + argv.append("--dry-run") return argv -def help_flags(binary: str, cwd: Path, cli_path: str, timeout: int) -> set[str]: +def effective_schema_flags_from_help(output: str) -> set[str]: + """Return executable non-root flags from Cobra's rendered Help. + + Cobra renders a leaf's own flags under ``Flags`` and all persistent + ancestors under ``Global Flags``. Schema intentionally excludes only the + root execution controls; product/group persistent flags remain part of the + leaf contract. Keeping section origin prevents a local business ``--format`` + flag from being confused with the root output-format control. + """ + local_flags: set[str] = set() + inherited_flags: set[str] = set() + section = "" + saw_flags_section = False + for line in output.splitlines(): + heading = line.strip() + if heading in {"Flags:", "Local Flags:"}: + section = "local" + saw_flags_section = True + continue + if heading in {"Global Flags:", "Inherited Flags:"}: + section = "inherited" + saw_flags_section = True + continue + if re.fullmatch(r"[A-Za-z][A-Za-z ]*:", heading): + section = "" + continue + if not section: + continue + match = HELP_FLAG_PATTERN.match(line) + if not match: + continue + name = match.group(1) + generic_usage = GENERIC_PAYLOAD_FLAG_USAGES.get(name) + if generic_usage and generic_usage in line: + # These two generic transport escape hatches are intentionally not + # projected as typed Schema parameters. Match their reviewed usage + # text rather than excluding every business flag named json/params. + continue + if section == "local": + local_flags.add(name) + else: + inherited_flags.add(name) + + if not saw_flags_section: + raise RuntimeError("command help has no recognizable Flags section") + return ( + local_flags + | (inherited_flags - GLOBAL_EXECUTION_CONTROL_FLAGS) + ) - COBRA_FRAMEWORK_FLAGS + + +def help_schema_flags(binary: str, cwd: Path, cli_path: str, timeout: int) -> set[str]: proc = subprocess.run( [binary, *shlex.split(cli_path), "--help"], cwd=cwd, @@ -430,47 +532,7 @@ def help_flags(binary: str, cwd: Path, cli_path: str, timeout: int) -> set[str]: f"{binary} {cli_path} --help exited {proc.returncode}: " f"{(proc.stderr or proc.stdout).strip()}" ) - return set( - re.findall( - r"(?m)^\s*(?:-[a-zA-Z0-9],\s*)?--([a-zA-Z0-9][a-zA-Z0-9_.-]*)(?:[ =]|$)", - proc.stdout, - ) - ) - - -def is_auth_required(output: str) -> bool: - lowered = output.lower() - return any( - token in lowered - for token in [ - '"category": "auth"', - '"reason": "not_authenticated"', - "dws auth login", - "未登录", - ] - ) - - -def is_external_required(output: str) -> bool: - """Identify failures that require real tenant resources or backend state. - - Dry-run support is not uniform across legacy helpers: some resolve users or - fetch an existing object before rendering their request. These failures are - external coverage blockers, not local command-contract failures. - """ - lowered = output.lower() - return any( - token in lowered - for token in [ - '"category": "api"', - '"server_error_code"', - '"trace_id"', - "mcp_tool_error", - "cannot resolve userid", - "response missing downloadurl", - "requested resource not found", - ] - ) + return effective_schema_flags_from_help(proc.stdout) def run_smoke_case( @@ -482,7 +544,11 @@ def run_smoke_case( include_optional: bool, choices: tuple[str, ...], ) -> SmokeResult: - case_name = "default" if not choices else "one_of:" + "+".join(choices) + case_name = ( + "dry_run/default" + if not choices + else "dry_run/one_of:" + "+".join(choices) + ) try: command = build_command(binary, leaf, include_optional, choices) proc = subprocess.run( @@ -493,15 +559,14 @@ def run_smoke_case( stderr=subprocess.PIPE, timeout=timeout, ) - combined = (proc.stderr or "") + "\n" + (proc.stdout or "") - if proc.returncode == 0: - status = "pass" - elif is_auth_required(combined): - status = "auth_required" - elif is_external_required(combined): - status = "external_required" - else: - status = "fail" + # Exit zero proves only that the built command accepted and completed + # the reviewed dry-run invocation. Preview/safety evidence belongs to + # the fail-closed Go Agent-example gate, not text scraping here. + status = ( + "runtime_exit_pass" + if proc.returncode == 0 + else "runtime_exit_fail" + ) return SmokeResult( canonical_path=path, case_name=case_name, @@ -538,51 +603,118 @@ def run_smoke_case( ) +def dry_run_capability_error(leaf: dict[str, Any]) -> str: + """Return a closed-shape error for a leaf-local dry_run declaration.""" + if "dry_run" not in leaf: + return "" + capability = leaf["dry_run"] + if not isinstance(capability, dict): + return "dry_run must be an object" + unknown_fields = sorted(set(capability) - {"preview_kind", "remote_reads"}) + if unknown_fields: + return "dry_run has unsupported fields: " + ", ".join(unknown_fields) + preview_kind = capability.get("preview_kind") + if not isinstance(preview_kind, str) or preview_kind not in DRY_RUN_PREVIEW_KINDS: + allowed = ", ".join(sorted(DRY_RUN_PREVIEW_KINDS)) + return f"dry_run.preview_kind must be one of: {allowed}" + if "remote_reads" in capability and not isinstance(capability["remote_reads"], bool): + return "dry_run.remote_reads must be a boolean" + return "" + + +def declared_dry_run(leaf: dict[str, Any]) -> bool: + """Return true only for a valid, positive leaf-local declaration.""" + problem = dry_run_capability_error(leaf) + if problem: + raise ValueError(problem) + return "dry_run" in leaf + + def run_one( binary: str, cwd: Path, - path: str, + leaf: dict[str, Any], timeout: int, include_optional: bool, ) -> list[SmokeResult]: + path = str(leaf.get("canonical_path", "")) + cli_path = str(leaf.get("cli_path", "")) + help_command = [binary, *shlex.split(cli_path), "--help"] try: - leaf = run_json([binary, "schema", path, "--format", "json"], cwd, timeout) - cli_path = str(leaf.get("cli_path", "")) - declared = set((leaf.get("parameters") or {}).keys()) - missing = sorted(declared - help_flags(binary, cwd, cli_path, timeout)) - if missing: + if not path or not cli_path: + raise ValueError("full Schema leaf requires canonical_path and cli_path") + parameters = leaf.get("parameters") + if not isinstance(parameters, dict): + raise ValueError("full Schema leaf parameters must be an object") + declared = set(parameters) + executable = help_schema_flags(binary, cwd, cli_path, timeout) + schema_only = sorted(declared - executable) + help_only = sorted(executable - declared) + if schema_only or help_only: + problems = [] + if schema_only: + problems.append( + "Schema-only/non-effective flags: " + ", ".join(schema_only) + ) + if help_only: + problems.append( + "effective non-global Help flags missing from Schema: " + + ", ".join(help_only) + ) return [ SmokeResult( canonical_path=path, - case_name="schema", + case_name="contract", cli_path=cli_path, - command=[binary, *shlex.split(cli_path), "--help"], + command=help_command, status="schema_flag_mismatch", exit_code=3, stdout="", stderr="", - error="schema parameters missing from command help: " - + ", ".join(missing), + error="; ".join(problems), ) ] + + contract = SmokeResult( + canonical_path=path, + case_name="contract", + cli_path=cli_path, + command=help_command, + status="contract_pass", + exit_code=0, + stdout="", + stderr="", + ) + capability_problem = dry_run_capability_error(leaf) + if capability_problem: + contract.status = "invalid_dry_run_capability" + contract.exit_code = 3 + contract.error = capability_problem + return [contract] + if not declared_dry_run(leaf): + return [contract] + return [ - run_smoke_case( - binary, - cwd, - path, - leaf, - timeout, - include_optional, - choices, - ) - for choices in one_of_cases(leaf) + contract, + *[ + run_smoke_case( + binary, + cwd, + path, + leaf, + timeout, + include_optional, + choices, + ) + for choices in one_of_cases(leaf) + ], ] except subprocess.TimeoutExpired as exc: return [ SmokeResult( canonical_path=path, - case_name="schema", - cli_path="", + case_name="contract", + cli_path=cli_path, command=exc.cmd if isinstance(exc.cmd, list) else [str(exc.cmd)], status="timeout", exit_code=124, @@ -595,9 +727,9 @@ def run_one( return [ SmokeResult( canonical_path=path, - case_name="schema", - cli_path="", - command=[], + case_name="contract", + cli_path=cli_path, + command=help_command, status="error", exit_code=1, stdout="", @@ -611,6 +743,11 @@ def result_to_dict(result: SmokeResult) -> dict[str, Any]: return { "canonical_path": result.canonical_path, "case": result.case_name, + "phase": ( + "contract" + if result.case_name == "contract" + else "runtime_exit_health" + ), "cli_path": result.cli_path, "command": result.command, "status": result.status, @@ -621,7 +758,91 @@ def result_to_dict(result: SmokeResult) -> dict[str, Any]: } -def write_markdown(results: list[SmokeResult], output: Path, tool_count: int) -> None: +def load_schema_leaves( + binary: str, + cwd: Path, + timeout: int, + requested_paths: list[str] | None = None, +) -> list[dict[str, Any]]: + """Load the full inventory once and optionally select canonical paths.""" + listing = run_json( + [binary, "schema", "--all", "--format", "json"], + cwd, + timeout, + attempts=1, + ) + if not isinstance(listing, dict): + raise RuntimeError("schema --all payload must be an object") + products = listing.get("products") + if not isinstance(products, list): + raise RuntimeError("schema --all products must be an array") + by_path: dict[str, dict[str, Any]] = {} + for product_index, product in enumerate(products): + if not isinstance(product, dict): + raise RuntimeError( + f"schema --all product {product_index} must be an object" + ) + tools = product.get("tools") + if not isinstance(tools, list): + raise RuntimeError( + f"schema --all product {product_index} tools must be an array" + ) + for raw_leaf in tools: + if not isinstance(raw_leaf, dict): + raise RuntimeError("schema --all returned a non-object tool") + raw_path = raw_leaf.get("canonical_path") + if not isinstance(raw_path, str) or not raw_path.strip(): + raise RuntimeError("schema --all returned a tool without canonical_path") + path = raw_path.strip() + if path in by_path: + raise RuntimeError(f"schema --all returned duplicate tool {path}") + cli_path = raw_leaf.get("cli_path") + if not isinstance(cli_path, str) or not cli_path.strip(): + raise RuntimeError( + f"schema --all tool {path} has no non-empty cli_path" + ) + if "parameters" not in raw_leaf: + raise RuntimeError( + f"schema --all tool {path} is a summary, not a full leaf" + ) + if not isinstance(raw_leaf["parameters"], dict): + raise RuntimeError( + f"schema --all full tool {path} parameters must be an object" + ) + for parameter_name, parameter in raw_leaf["parameters"].items(): + if not isinstance(parameter, dict): + raise RuntimeError( + "schema --all full tool " + f"{path} parameter {parameter_name!r} must be an object" + ) + capability_problem = dry_run_capability_error(raw_leaf) + if capability_problem: + raise RuntimeError( + f"schema --all tool {path} has invalid dry_run: " + f"{capability_problem}" + ) + by_path[path] = raw_leaf + + if not by_path: + raise RuntimeError("schema --all returned no full tools") + if not requested_paths: + return [by_path[path] for path in sorted(by_path)] + + selected_paths = list(dict.fromkeys(requested_paths)) + missing = sorted(set(selected_paths) - set(by_path)) + if missing: + raise RuntimeError( + "requested canonical path missing from schema --all: " + ", ".join(missing) + ) + return [by_path[path] for path in selected_paths] + + +def write_markdown( + results: list[SmokeResult], + output: Path, + tool_count: int, + runtime_tool_count: int, +) -> None: counts: dict[str, int] = {} for result in results: counts[result.status] = counts.get(result.status, 0) + 1 @@ -631,13 +852,21 @@ def write_markdown(results: list[SmokeResult], output: Path, tool_count: int) -> "", f"- Generated: {datetime.now(timezone.utc).isoformat()}", f"- Tools: {tool_count}", - f"- Cases: {len(results)}", + f"- Contract checks: {sum(r.case_name == 'contract' for r in results)}", + f"- Runtime exit-health tools: {runtime_tool_count}", + f"- Runtime exit-health cases: {sum(r.case_name.startswith('dry_run/') for r in results)}", + f"- Result rows: {len(results)}", + "- Safety proof: Go Agent-example dry-run gate (not inferred here)", ] for status in sorted(counts): lines.append(f"- {status}: {counts[status]}") lines.extend(["", "## Non-passing cases", ""]) - failures = [r for r in results if r.status != "pass"] + failures = [ + r + for r in results + if r.status not in {"contract_pass", "runtime_exit_pass"} + ] if not failures: lines.append("No failures.") else: @@ -667,48 +896,62 @@ def write_markdown(results: list[SmokeResult], output: Path, tool_count: int) -> def main() -> int: - parser = argparse.ArgumentParser() - parser.add_argument("--binary", default="./dws") + parser = argparse.ArgumentParser( + description=( + "Load full schema --all once, check every selected leaf against " + "Cobra Help, and exit-health-check only explicit dry_run capabilities." + ) + ) + parser.add_argument("--binary", default="./dws", help="dws binary to inspect") parser.add_argument("--output-jsonl", default="tmp/schema-command-smoke.jsonl") parser.add_argument("--output-md", default="tmp/schema-command-smoke.md") - parser.add_argument("--jobs", type=int, default=8) - parser.add_argument("--timeout", type=int, default=20) - parser.add_argument("--include-optional", action="store_true") parser.add_argument( - "--strict-external", + "--jobs", type=int, default=8, help="parallel Help/runtime-health workers" + ) + parser.add_argument("--timeout", type=int, default=20, help="seconds per subprocess") + parser.add_argument( + "--include-optional", action="store_true", - help="treat auth/backend-dependent dry-runs as failures", + help="include optional parameters in explicit runtime exit-health cases", + ) + parser.add_argument( + "--path", + action="append", + help=( + "canonical path selected from the single schema --all payload; " + "repeatable" + ), ) - parser.add_argument("--path", action="append", help="canonical schema path to run; repeatable") args = parser.parse_args() cwd = Path.cwd() - fixture = Path(tempfile.gettempdir()) / "dws-schema-smoke-fixture.txt" - fixture.write_text("schema smoke fixture\n", encoding="utf-8") - style_fixture = Path(tempfile.gettempdir()) / "dws-schema-smoke-style.json" - style_fixture.write_text( - '[{"sheetId":"sheet-smoke","range":"A1","fontSize":12}]\n', - encoding="utf-8", + leaves = load_schema_leaves( + args.binary, cwd, args.timeout, requested_paths=args.path ) - report_fixture = cwd / "tmp" / "dws-schema-smoke-report.json" - report_fixture.parent.mkdir(parents=True, exist_ok=True) - report_fixture.write_text( - '[{"content":"schema smoke","sort":"0","key":"work",' - '"contentType":"markdown","type":"1"}]\n', - encoding="utf-8", - ) - - if args.path: - paths = args.path - else: - listing = run_json([args.binary, "schema", "--all", "--format", "json"], cwd, args.timeout) - paths = [tool["canonical_path"] for product in listing["products"] for tool in product["tools"]] + runtime_tool_count = sum(declared_dry_run(leaf) for leaf in leaves) + if runtime_tool_count: + fixture = Path(tempfile.gettempdir()) / "dws-schema-smoke-fixture.txt" + fixture.write_text("schema smoke fixture\n", encoding="utf-8") + style_fixture = Path(tempfile.gettempdir()) / "dws-schema-smoke-style.json" + style_fixture.write_text( + '[{"sheetId":"sheet-smoke","range":"A1","fontSize":12}]\n', + encoding="utf-8", + ) + report_fixture = cwd / "tmp" / "dws-schema-smoke-report.json" + report_fixture.parent.mkdir(parents=True, exist_ok=True) + report_fixture.write_text( + '[{"content":"schema smoke","sort":"0","key":"work",' + '"contentType":"markdown","type":"1"}]\n', + encoding="utf-8", + ) with concurrent.futures.ThreadPoolExecutor(max_workers=args.jobs) as executor: result_groups = list( executor.map( - lambda p: run_one(args.binary, cwd, p, args.timeout, args.include_optional), - paths, + lambda leaf: run_one( + args.binary, cwd, leaf, args.timeout, args.include_optional + ), + leaves, ) ) results = [result for group in result_groups for result in group] @@ -723,13 +966,29 @@ def main() -> int: md_path = Path(args.output_md) md_path.parent.mkdir(parents=True, exist_ok=True) - write_markdown(results, md_path, len(paths)) + write_markdown(results, md_path, len(leaves), runtime_tool_count) - accepted = {"pass"} - if not args.strict_external: - accepted.update({"auth_required", "external_required"}) + accepted = {"contract_pass", "runtime_exit_pass"} failures = [result for result in results if result.status not in accepted] - print(f"tools={len(paths)}") + contract_results = [result for result in results if result.case_name == "contract"] + runtime_results = [ + result for result in results if result.case_name.startswith("dry_run/") + ] + print(f"tools={len(leaves)}") + print( + "contract_pass=" + f"{sum(result.status == 'contract_pass' for result in contract_results)}" + ) + print( + "contract_failures=" + f"{sum(result.status != 'contract_pass' for result in contract_results)}" + ) + print(f"runtime_exit_tools={runtime_tool_count}") + print(f"runtime_exit_cases={len(runtime_results)}") + print( + "runtime_exit_failures=" + f"{sum(result.status != 'runtime_exit_pass' for result in runtime_results)}" + ) print(f"total={len(results)}") print(f"failures={len(failures)}") print(f"jsonl={jsonl_path}") diff --git a/scripts/dev/schema_command_smoke_test.py b/scripts/dev/schema_command_smoke_test.py new file mode 100644 index 00000000..3b428538 --- /dev/null +++ b/scripts/dev/schema_command_smoke_test.py @@ -0,0 +1,406 @@ +#!/usr/bin/env python3 +"""Fast unit tests for schema_command_smoke.py (no dws binary required).""" + +from __future__ import annotations + +import importlib.util +import sys +import unittest +from pathlib import Path +from unittest import mock + + +SCRIPT = Path(__file__).with_name("schema_command_smoke.py") +SPEC = importlib.util.spec_from_file_location("schema_command_smoke", SCRIPT) +if SPEC is None or SPEC.loader is None: # pragma: no cover - import guard + raise RuntimeError(f"cannot import {SCRIPT}") +smoke = importlib.util.module_from_spec(SPEC) +sys.modules[SPEC.name] = smoke +SPEC.loader.exec_module(smoke) + + +class SchemaCommandSmokeTest(unittest.TestCase): + def test_value_prefers_example_and_enum_before_numeric_heuristic(self) -> None: + self.assertEqual( + smoke.value_for( + "mute-time", + {"type": "integer", "example": 600000, "enum": [300000]}, + "chat.set_group_member_mute_list", + ), + "600000", + ) + self.assertEqual( + smoke.value_for( + "mute-time", + {"type": "integer", "enum": [300000, 600000]}, + "chat.set_group_member_mute_list", + ), + "300000", + ) + + def test_build_command_never_injects_yes_or_output_format(self) -> None: + leaf = { + "canonical_path": "sample.update", + "cli_path": "sample update", + "parameters": { + "mode": { + "type": "string", + "required": True, + "enum": ["safe"], + }, + "yes": {"type": "boolean", "required": True}, + }, + "positionals": [], + "constraints": {}, + "dry_run": {"preview_kind": "plan"}, + } + command = smoke.build_command("dws", leaf, include_optional=False) + self.assertEqual( + command, + ["dws", "sample", "update", "--mode", "safe", "--dry-run"], + ) + self.assertNotIn("--yes", command) + self.assertNotIn("--format", command) + + def test_build_command_rejects_inherited_only_dry_run(self) -> None: + leaf = { + "canonical_path": "sample.read", + "cli_path": "sample read", + "parameters": {}, + } + with self.assertRaisesRegex(ValueError, "explicit leaf dry_run"): + smoke.build_command("dws", leaf, include_optional=False) + + def test_global_flag_presence_does_not_declare_capability(self) -> None: + leaf = { + "canonical_path": "sample.read", + "cli_path": "sample read", + "parameters": {}, + } + self.assertFalse(smoke.declared_dry_run(leaf)) + with ( + mock.patch.object(smoke, "help_schema_flags", return_value=set()), + mock.patch.object(smoke, "run_smoke_case") as run_case, + ): + results = smoke.run_one("dws", Path("."), leaf, 1, False) + run_case.assert_not_called() + self.assertEqual(len(results), 1) + self.assertEqual(results[0].case_name, "contract") + self.assertEqual(results[0].status, "contract_pass") + + def test_explicit_capability_adds_runtime_case_after_contract(self) -> None: + leaf = { + "canonical_path": "sample.plan", + "cli_path": "sample plan", + "parameters": {}, + "positionals": [], + "constraints": {}, + "dry_run": {"preview_kind": "plan"}, + } + runtime_result = smoke.SmokeResult( + canonical_path="sample.plan", + case_name="dry_run/default", + cli_path="sample plan", + command=["dws", "sample", "plan", "--dry-run"], + status="runtime_exit_pass", + exit_code=0, + stdout="", + stderr="", + ) + with ( + mock.patch.object(smoke, "help_schema_flags", return_value=set()), + mock.patch.object( + smoke, "run_smoke_case", return_value=runtime_result + ) as run_case, + ): + results = smoke.run_one("dws", Path("."), leaf, 1, False) + run_case.assert_called_once() + self.assertEqual( + [(result.case_name, result.status) for result in results], + [ + ("contract", "contract_pass"), + ("dry_run/default", "runtime_exit_pass"), + ], + ) + + def test_schema_help_mismatch_blocks_runtime(self) -> None: + leaf = { + "canonical_path": "sample.plan", + "cli_path": "sample plan", + "parameters": {"target": {"type": "string"}}, + "dry_run": {"preview_kind": "plan"}, + } + with ( + mock.patch.object(smoke, "help_schema_flags", return_value=set()), + mock.patch.object(smoke, "run_smoke_case") as run_case, + ): + results = smoke.run_one("dws", Path("."), leaf, 1, False) + run_case.assert_not_called() + self.assertEqual(results[0].status, "schema_flag_mismatch") + self.assertIn("target", results[0].error) + + def test_help_schema_flag_missing_from_schema_blocks_runtime(self) -> None: + leaf = { + "canonical_path": "sample.plan", + "cli_path": "sample plan", + "parameters": {}, + "dry_run": {"preview_kind": "plan"}, + } + with ( + mock.patch.object( + smoke, "help_schema_flags", return_value={"new-local-flag"} + ), + mock.patch.object(smoke, "run_smoke_case") as run_case, + ): + results = smoke.run_one("dws", Path("."), leaf, 1, False) + run_case.assert_not_called() + self.assertEqual(results[0].status, "schema_flag_mismatch") + self.assertIn("new-local-flag", results[0].error) + + def test_help_parser_keeps_effective_flags_and_ignores_root_controls(self) -> None: + help_text = """Usage: + dws sample run [flags] + +Flags: + -f, --format string Business export format + --json string Complete business JSON payload + -h, --help help for run + +Global Flags: + --client-id string OAuth client ID + --debug debug logging + --dimension string Product-level query dimension + --dry-run preview + --fields string output fields + --jq string output filter + --keyword string Product-level query keyword + --mock mock transport + --profile string profile + --timeout int timeout + -v, --verbose verbose + -y, --yes confirmation bypass +""" + self.assertEqual( + smoke.effective_schema_flags_from_help(help_text), + {"format", "json", "dimension", "keyword"}, + ) + + def test_help_parser_excludes_only_reviewed_generic_payload_usage(self) -> None: + help_text = """Flags: + --json string Base JSON object payload for this tool invocation + --params string Additional JSON object payload merged after --json + --payload string Business payload + -h, --help help for run +""" + self.assertEqual( + smoke.effective_schema_flags_from_help(help_text), {"payload"} + ) + + def test_runtime_exit_zero_is_health_not_preview_proof(self) -> None: + leaf = { + "canonical_path": "sample.plan", + "cli_path": "sample plan", + "parameters": {}, + "positionals": [], + "constraints": {}, + "dry_run": {"preview_kind": "plan"}, + } + proc = mock.Mock(returncode=0, stdout="ordinary success", stderr="") + with mock.patch.object(smoke.subprocess, "run", return_value=proc): + result = smoke.run_smoke_case( + "dws", Path("."), "sample.plan", leaf, 1, False, () + ) + self.assertEqual(result.status, "runtime_exit_pass") + self.assertEqual(smoke.result_to_dict(result)["phase"], "runtime_exit_health") + + def test_inventory_is_loaded_once_and_paths_filter_full_leaves(self) -> None: + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.first", + "cli_path": "sample first", + "parameters": {}, + }, + { + "canonical_path": "sample.second", + "cli_path": "sample second", + "parameters": {"id": {"type": "string"}}, + }, + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing) as run_json: + leaves = smoke.load_schema_leaves( + "dws", Path("."), 1, requested_paths=["sample.second"] + ) + run_json.assert_called_once_with( + ["dws", "schema", "--all", "--format", "json"], + Path("."), + 1, + attempts=1, + ) + self.assertEqual( + [leaf["canonical_path"] for leaf in leaves], ["sample.second"] + ) + self.assertIn("parameters", leaves[0]) + + def test_inventory_rejects_summary_tools(self) -> None: + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.summary", + "cli_path": "sample summary", + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + with self.assertRaisesRegex(RuntimeError, "summary, not a full leaf"): + smoke.load_schema_leaves("dws", Path("."), 1) + + def test_inventory_rejects_non_object_parameters(self) -> None: + for parameters in (None, []): + with self.subTest(parameters=parameters): + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.invalid", + "cli_path": "sample invalid", + "parameters": parameters, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + with self.assertRaisesRegex( + RuntimeError, "parameters must be an object" + ): + smoke.load_schema_leaves("dws", Path("."), 1) + + def test_inventory_rejects_non_object_parameter_entry(self) -> None: + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.invalid", + "cli_path": "sample invalid", + "parameters": {"target": None}, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + with self.assertRaisesRegex( + RuntimeError, "parameter 'target' must be an object" + ): + smoke.load_schema_leaves("dws", Path("."), 1) + + def test_inventory_rejects_invalid_dry_run_shape_and_kind(self) -> None: + invalid = [ + None, + [], + {}, + {"preview_kind": ""}, + {"preview_kind": " PLAN "}, + {"preview_kind": "unknown"}, + {"preview_kind": 1}, + {"preview_kind": "plan", "invented": True}, + ] + for capability in invalid: + with self.subTest(capability=capability): + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.invalid", + "cli_path": "sample invalid", + "parameters": {}, + "dry_run": capability, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + with self.assertRaisesRegex(RuntimeError, "invalid dry_run"): + smoke.load_schema_leaves("dws", Path("."), 1) + + def test_inventory_accepts_every_reviewed_dry_run_preview_kind(self) -> None: + for preview_kind in sorted(smoke.DRY_RUN_PREVIEW_KINDS): + with self.subTest(preview_kind=preview_kind): + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.valid", + "cli_path": "sample valid", + "parameters": {}, + "dry_run": {"preview_kind": preview_kind}, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + leaves = smoke.load_schema_leaves("dws", Path("."), 1) + self.assertTrue(smoke.declared_dry_run(leaves[0])) + + remote_reads_listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.remote-plan", + "cli_path": "sample remote-plan", + "parameters": {}, + "dry_run": { + "preview_kind": "plan", + "remote_reads": True, + }, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=remote_reads_listing): + leaves = smoke.load_schema_leaves("dws", Path("."), 1) + self.assertTrue(smoke.declared_dry_run(leaves[0])) + + def test_inventory_rejects_non_boolean_dry_run_remote_reads(self) -> None: + listing = { + "products": [ + { + "tools": [ + { + "canonical_path": "sample.invalid", + "cli_path": "sample invalid", + "parameters": {}, + "dry_run": { + "preview_kind": "plan", + "remote_reads": "yes", + }, + } + ] + } + ] + } + with mock.patch.object(smoke, "run_json", return_value=listing): + with self.assertRaisesRegex(RuntimeError, "remote_reads must be a boolean"): + smoke.load_schema_leaves("dws", Path("."), 1) + + +if __name__ == "__main__": + unittest.main() diff --git a/scripts/policy/check-schema-binary.sh b/scripts/policy/check-schema-binary.sh index 18a967f8..840c0d8f 100755 --- a/scripts/policy/check-schema-binary.sh +++ b/scripts/policy/check-schema-binary.sh @@ -101,7 +101,7 @@ if ! cmp -s "$tmp/expected-list.json" "$tmp/actual-list.json"; then exit 1 fi -# The full 539-tool set and every alias mapping were compared above using the +# The exact public EffectiveCommandRegistry set and every alias mapping were compared above using the # release binary's --all payload. Exercise representative canonical/primary # query routes here; exhaustive per-path resolution runs in the in-process Go # delivery gate, avoiding more than one thousand cold binary startups in CI. diff --git a/scripts/policy/check-schema-catalog.sh b/scripts/policy/check-schema-catalog.sh index 3217d66f..4b4ae9c2 100755 --- a/scripts/policy/check-schema-catalog.sh +++ b/scripts/policy/check-schema-catalog.sh @@ -64,9 +64,38 @@ fi if ! jq -e --arg registry_count "$registry_count" ' .coverage.source_tools == ($registry_count | tonumber) and .coverage.matched_tools == (.tools | length) and - all(.tools[]; ((.interface_mode // "") | length) > 0) + all(.tools[]; + .reviewed == false and + (has("interface_mode") | not) and + (has("availability") | not) and + (has("interface_ref") | not) and + (has("interface_reason") | not) + ) ' internal/cli/schema_hints/runtime-surface-completeness.json >/dev/null; then - printf '%s\n' 'runtime-surface interface disposition coverage is stale' >&2 + printf '%s\n' 'runtime-surface completeness source must remain unreviewed and interface-free' >&2 + exit 1 +fi + +if ! jq -e ' + .source.name == "reviewed-interface-disposition-v2" and + .source.reviewed == true and + (.tools | length) > 0 and + all(.tools[]; + ((keys - ["availability", "interface_mode", "interface_reason", "interface_ref"]) | length) == 0 and + .availability == "available" and + (if .interface_mode == "mcp" then + ((.interface_ref.product_id // "") | length) > 0 and + ((.interface_ref.rpc_name // "") | length) > 0 and + ((.interface_reason // "") | length) == 0 + elif .interface_mode == "composite" then + .interface_ref == null and + ((.interface_reason // "") | length) > 0 + else + false + end) + ) +' internal/cli/schema_hints/zz-interface-disposition-review.json >/dev/null; then + printf '%s\n' 'reviewed interface-only disposition source is invalid' >&2 exit 1 fi @@ -165,11 +194,28 @@ fi binding_count="$(jq '[.bindings[] | length] | add' internal/cli/schema_parameter_bindings.json)" if ! jq -e --slurpfile bindings internal/cli/schema_parameter_bindings.json ' . as $catalog | - $bindings[0].version == 2 and - $bindings[0].historical_binding_count == 311 and - ($bindings[0].migrations | length) == 5 and - ($bindings[0].excluded | length) == 3 and - ($bindings[0].added | length) == 25 and + $bindings[0].version == 3 and + $bindings[0].baseline.manifest == "schema-parameter-bindings-v3" and + ($bindings[0].baseline.sha256 | test("^sha256:[0-9a-f]{64}$")) and + ($bindings[0].baseline.reason | length) > 0 and + $bindings[0].baseline.reviewed == true and + all(($bindings[0].removals // {} | to_entries)[]; + (.key | length) > 0 and + (.value.reason | length) > 0 and + .value.reviewed == true and + ((.value.replaced_by // "") | type) == "string" + ) and + all(($bindings[0].corrections // {} | to_entries)[]; + (.key | length) > 0 and + (.value.old_property | length) > 0 and + (.value.new_property | length) > 0 and + .value.old_property != .value.new_property and + (.value.reason | length) > 0 and + .value.reviewed == true + ) and + all(($bindings[0].mapping_exclusions // {} | to_entries)[]; + (.key | length) > 0 and (.value | length) > 0 + ) and ([$bindings[0].bindings | to_entries[] | .key as $tool | .value | to_entries[] | {tool: $tool, flag: .key, property: .value} @@ -209,11 +255,17 @@ if policy_search_go '\.ListTools\(' internal/app internal/cli; then exit 1 fi +# Run the typed content gates as policy, rather than treating non-empty +# correction/exclusion maps as proof that their exact keys and winners are +# valid against the shipped Catalog and pinned MCP metadata. go test ./internal/cli \ - -run '^(TestEmbeddedSchemaCatalog.*|TestEmbeddedSchemaAllPayload.*|TestRuntimeSchemaAllPayload.*|TestSchemaAllReturnsCompleteEmbeddedLeafSchemas|TestSchemaCatalogDeliveryCompleteness.*|TestValidateSchemaDeliveryInvariants.*|TestSchemaAliasViewProblem.*|TestSchemaDeliveryToolsByCanonical.*|TestSchemaUsesEmbeddedCatalogWithoutRuntimeLoad|TestWalkLeafCommandsTraversesAnnotatedHiddenSubtree)$' \ + -run '^(TestEmbeddedSchemaCatalog.*|TestEmbeddedSchemaAllPayload.*|TestRuntimeSchemaAllPayload.*|TestSchemaAllReturnsCompleteEmbeddedLeafSchemas|TestSchemaCatalogDeliveryCompleteness.*|TestValidateSchemaDeliveryInvariants.*|TestSchemaAliasViewProblem.*|TestSchemaDeliveryToolsByCanonical.*|TestSchemaUsesEmbeddedCatalogWithoutRuntimeLoad|TestWalkLeafCommandsTraversesAnnotatedHiddenSubtree|TestSchemaParameterBindingsMatchReviewedBaselineAndEmbeddedCatalog|TestDecodeSchemaParameterBindingsFailsClosed|TestSchemaParameterBindingManifestHashIsExactContentNotCount|TestBuildEffectiveCommandRegistryFailsClosedOnInvalidParameterBindingSource|TestValidateSchemaParameterBindingDeliveryRejectsStaleReviewedKeys|TestEmbeddedCatalogMCPParameterMappingsAreComplete|TestSchemaParameterMappingAuditExclusionRules|TestRuntimeSchemaReviewedMappingExclusionSelectsEmptyProperty|TestRuntimeCommandParameterSpecsPreserveReviewedEmptyPropertyProvenance|TestSchemaParameterBindingCorrectionsAreReviewed)$' \ + -count=1 +go test ./internal/helpers \ + -run '^TestSheetConfirmationGuardCoversEveryProtectedLeaf$' \ -count=1 go test ./internal/app \ - -run '^(TestEmbeddedSchemaContractMapsToExecutableTree|TestRuntimeSchemaCompletenessCoversPublicCommandTree|TestRegisterPluginHTTPServerDoesNotProbeEndpoint|TestRegisterStdioServerFromManifestDoesNotStartProcess)$' \ + -run '^(TestEmbeddedSchemaContractMapsToExecutableTree|TestFinalSchemaParametersMatchExecutableHelpFlags|TestEmbeddedSchemaParametersMatchExecutableHelpFlags|TestSchemaHelpFlagCompletenessRejects.*|TestRuntimeSchemaCompletenessCoversPublicCommandTree|TestReviewedRoutedInterfacesReachFinalSchema|TestViewGetWrappersUsePinnedGetViewsInterface|TestReviewedInterfaceDispositionSourceOwnsRuntimeSurface|TestSheetFinalSchemaConfirmationMatchesRuntimeGuards|TestRegisterPluginHTTPServerDoesNotProbeEndpoint|TestRegisterStdioServerFromManifestDoesNotStartProcess)$' \ -count=1 printf 'schema catalog check: ok (%s products, %s tools)\n' "$catalog_product_count" "$registry_count" diff --git a/scripts/policy/check-schema-command-registry.sh b/scripts/policy/check-schema-command-registry.sh index 7b97c707..644ad2dc 100755 --- a/scripts/policy/check-schema-command-registry.sh +++ b/scripts/policy/check-schema-command-registry.sh @@ -80,7 +80,7 @@ check_schema_loader_references \ '^internal/cli/runtime_schema\.go:[0-9]+:(func loadEmbeddedMCPMetadata\(\) embeddedMCPMetadata \{|[[:space:]]*runtimeEmbeddedMCPMetadataLazy\.metadata = loadEmbeddedMCPMetadata\(\))$' check_schema_loader_references \ 'loadSchemaParameterBindings' \ - '^internal/cli/schema_parameter_bindings\.go:[0-9]+:(func loadSchemaParameterBindings\(\) schemaParameterBindingSnapshot \{|[[:space:]]*runtimeSchemaParameterBindingsLazy\.snapshot = loadSchemaParameterBindings\(\))$' + '^internal/cli/schema_parameter_bindings\.go:[0-9]+:(func loadSchemaParameterBindings\(\) \(schemaParameterBindingSnapshot, error\) \{|[[:space:]]*runtimeSchemaParameterBindingsLazy\.snapshot, runtimeSchemaParameterBindingsLazy\.err = loadSchemaParameterBindings\(\))$' # Catch the common direct eager form statically; the fresh-process tests below # additionally catch indirect or multi-line package initializers. diff --git a/skills/mono/SKILL.md b/skills/mono/SKILL.md index c52082d8..0ab46f44 100644 --- a/skills/mono/SKILL.md +++ b/skills/mono/SKILL.md @@ -210,7 +210,7 @@ Schema 与 Help 冲突是**契约漂移**,不得静默猜测或把两边字段 ### Helper-only 与本地 Cobra 命令 -`dev.*` 包含 helper-only 执行面,`event.*` 是无固定 MCP backing 的本地 Cobra 命令;实现来源不同,不改变统一查询边界:进入全局 `dws schema` 的命令必须先进入 reviewed CommandRegistry,并由同一 `ToolSpec` 投影到 leaf、产品/分组、`--all` 与 Catalog。不得在查询时重新调用 MCP `tools/list`,也不得把 Cobra 临时合成结果作为第二条 Schema 数据路径。 +`dev.*` 包含 helper-only 执行面,其中远端 helper 未进入 pinned metadata 时标记为 `composite`,不能伪装成 `local`。`event list` / `event schema` 读取内置目录和 payload 定义,属于 `local`;`event consume` / `event status` / `event stop` 同时编排远端个人订阅控制面与本地 bus/consume,属于 `composite`。实现来源不同,不改变统一查询边界:进入全局 `dws schema` 的命令必须先进入 reviewed CommandRegistry,并由同一 `ToolSpec` 投影到 leaf、产品/分组、`--all` 与 Catalog。不得在查询时重新调用 MCP `tools/list`,也不得把 Cobra 临时合成结果作为第二条 Schema 数据路径。 事件需要区分两种 Schema:`dws event schema ` 查询事件 payload 字段;`dws schema "event consume"` 查询 CLI 命令参数。前者是真实业务命令,后者只读取最终内嵌 SchemaRegistry;不能相互替代。 diff --git a/skills/mono/references/products/aitable.md b/skills/mono/references/products/aitable.md index 482265d0..c22a23f0 100644 --- a/skills/mono/references/products/aitable.md +++ b/skills/mono/references/products/aitable.md @@ -287,7 +287,7 @@ dws aitable chart get --base-id --dashboard-id --chart- ```bash # 第一步:创建任务(按 scope 传必要参数) -dws aitable export data --base-id --scope table --table-id --format excel --timeout-ms 1000 +dws aitable export data --base-id --scope table --table-id --export-format excel --timeout-ms 1000 --format json # 第二步:拿 taskId 继续轮询,直到返回 downloadUrl dws aitable export data --base-id --task-id --timeout-ms 3000 diff --git a/skills/mono/references/products/aitable/aitable-export-import.md b/skills/mono/references/products/aitable/aitable-export-import.md index fd4ea89b..0d6e8317 100644 --- a/skills/mono/references/products/aitable/aitable-export-import.md +++ b/skills/mono/references/products/aitable/aitable-export-import.md @@ -4,21 +4,23 @@ `export data` 为异步任务:首次调用可能只返回 `taskId`,需要继续轮询。 -> ⚠️ **`--format` 冲突警告**:`export data` 的 `--format` 是**导出格式**(excel/attachment 等),不是全局输出格式。**此命令禁止追加全局 `--format json`**,否则会覆盖导出格式导致 `INVALID_EXPORT_FORMAT` 错误。输出默认就是 JSON,无需额外指定。 +> ⚠️ **两种 format 严格分工**:业务导出格式只用 `--export-format`(excel/attachment 等);全局 `--format` 只控制 CLI 输出格式,推荐保持 `--format json`。旧写法 `--format excel` 仅用于兼容历史脚本,新调用不要使用。 ```bash -# 第一步:创建任务(按 scope 传必要参数)——注意:不要加 --format json! -dws aitable export data --base-id --scope table --table-id --format excel --timeout-ms 1000 +# 第一步:创建任务;--export-format 是业务导出格式,--format json 是结构化输出格式 +dws aitable export data --base-id --scope table --table-id --export-format excel --timeout-ms 1000 --format json # 第二步:拿 taskId 继续轮询,直到返回 downloadUrl -dws aitable export data --base-id --task-id --timeout-ms 3000 +dws aitable export data --base-id --task-id --timeout-ms 3000 --format json ``` ### 参数约束 -| scope | 必传参数 | +创建导出任务时统一必传 `--base-id`、`--scope` 和 `--export-format`;下表是不同 scope 的额外必传参数。使用 `--task-id` 轮询时不再传 scope/导出格式。 + +| scope | 额外必传参数 | |-------|----------| -| `all` | 只需 `--base-id` | +| `all` | 无 | | `table` | 必须 `--table-id` | | `view` | 必须 `--table-id` + `--view-id` | diff --git a/skills/mono/references/products/attendance.md b/skills/mono/references/products/attendance.md index e839b773..804a0870 100644 --- a/skills/mono/references/products/attendance.md +++ b/skills/mono/references/products/attendance.md @@ -597,7 +597,6 @@ Example: Flags: --date string 查询日期, 格式 YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss (必填) --stats-type string 统计类型: week 周统计 / month 月统计 (必填) - --tag-name string 标签名称 (可选) --user string 钉钉用户 ID (必填) ``` @@ -1259,7 +1258,7 @@ dws attendance checkin records --operator-corp-id corp001 --operator-staff-id op - `group update` 的 --group-id 必填,其余均可选,至少需指定一个修改项;仅需对要修改的字段赋値,未传字段会从已有配置自动补充;修改打卡地址/wifi/蓝牙等复杂子对象时用 `--group-vo` 传入完整 JSON;`--group-vo` 与单字段 flag 同时传入时单字段 flag 优先级更高 - `group create` 的 `--name` 和 `--type` 必填,`--type` 必须为 FIXED/TURN/NONE 之一;type=FIXED 时 `--group-vo` 必须包含 `workDayClassList`(非空)和 `defaultClassId`(非 null);由于保存考勤组耗时较久,建议加 `--timeout 10` - `group filtered-get` 的 `--group-id` 必填,`--member/--position/--wifi/--bles` 均可选,默认 false。**返回结果中如含成员 userId 列表,必须调用 `dws contact user get --ids ,,...`(支持逗号分隔传多个 ID),将 userId 转换为员工姓名后再输出;不得直接输出裸 userId。** -- `summary` 必须同时传 `--user`、`--date`、`--stats-type`(week 周统计 / month 月统计),三者缺一即报错;`--date` 支持 `YYYY-MM-DD` 或 `yyyy-MM-dd HH:mm:ss`;`--tag-name` 可选 +- `summary` 必须同时传 `--user`、`--date`、`--stats-type`(week 周统计 / month 月统计),三者缺一即报错;`--date` 支持 `YYYY-MM-DD` 或 `yyyy-MM-dd HH:mm:ss` - `rules` 的 `--date` 支持 YYYY-MM-DD 或 yyyy-MM-dd HH:mm:ss 两种格式 - `selfsetting get/save` 的 `--setting-scene` 必须是 `checkRemind`、`fastCheck`、`checkResultNotify`、`lackRemind`、`personalAttendStatNotify`、`bossAttendStatNotify` 之一 - `selfsetting get/save` 的 MCP 入参 `userId` 为必填;CLI 的 `--user` 也必填,必须显式传入目标用户 ID @@ -1361,4 +1360,4 @@ dws attendance boss-check --plan-id 948964045503 --time "2026-05-13 18:00" --res - 涉及超过 3 条记录的聚合(求和、分组、计数、排序、跨字段计算)时必须落 Python 脚本处理,禁止用大模型口算或目测。脚本里如果用到 mcp,先提前看下 mcp 返回的结构,避免执行异常 - 遇到时长字段时,注意区分单位是秒、分钟还是小时 - 遇到意图不清晰的场景不要猜测,主动询问用户明确意图 -- 如果查询结果很多时,不要自作主张省略,必须明确告知用户或者用表格或展示所有。 \ No newline at end of file +- 如果查询结果很多时,不要自作主张省略,必须明确告知用户或者用表格或展示所有。 diff --git a/skills/mono/references/products/event.md b/skills/mono/references/products/event.md index c3fb685a..7a0c4393 100644 --- a/skills/mono/references/products/event.md +++ b/skills/mono/references/products/event.md @@ -19,7 +19,7 @@ | `dws event stop --dry-run` / `--yes` | 先预览,再确认取消订阅并停止对应本地消费 | | `dws event stop --all --dry-run` / `--yes` | 先预览,再确认清理当前身份下全部个人订阅 | -注意区分两个 schema:`dws event schema ` 查事件的输出字段;`dws schema "event consume"` 查 consume 命令自身的入参(统一内嵌 ToolSpec,含 parameters + 位置参数)。`source` 是 reviewed command identity 的 provenance;本地实现机制看 `interface_mode=local`,不要把两者混为一谈。 +注意区分两个 schema:`dws event schema ` 查事件的输出字段;`dws schema "event consume"` 查 consume 命令自身的入参(统一内嵌 ToolSpec,含 parameters + 位置参数)。`source` 是 reviewed command identity 的 provenance;`event list/schema` 是 `interface_mode=local`,`event consume/status/stop` 因同时编排远端订阅控制面与本地 bus 而是 `interface_mode=composite`,不要把 identity 与实现机制混为一谈。 ## Event catalog diff --git a/skills/mono/references/products/sheet/sheet-batch-operations.md b/skills/mono/references/products/sheet/sheet-batch-operations.md index d354af92..819a654d 100644 --- a/skills/mono/references/products/sheet/sheet-batch-operations.md +++ b/skills/mono/references/products/sheet/sheet-batch-operations.md @@ -7,6 +7,7 @@ 1. **目标 range 必须落在用户授权范围内**:除用户明示要修改的区域外,子操作禁止扩张到无关单元格 / 列 / 工作表。规划 range 时先确认每个子操作的边界。 2. **批次完成后必须回读校验**:整个 `batch-update` 执行成功后,用 `range read` 或 `csv-get` 抽样回读受影响区域,至少校验 3-5 个代表性单元格(首 / 中 / 末),与本地预先计算的预期值对照。 3. **预期条数前置断言**:涉及"批量填充 N 行"或"对 M 个区域分别写入"时,先把 N、M 硬编码进代码,回读后断言实际等于预期;不一致就再发一轮 `batch-update` 补齐,禁止交付半成品。 +4. **统一确认语义**:`range batch-clear` 和 `batch-update` 都可删除内容或结构;先用 `--dry-run` 预览,真实执行必须获得用户确认后追加 `--yes`。 ## 使用场景 @@ -49,9 +50,9 @@ Usage: dws sheet range batch-clear [flags] Example: - 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 - dws sheet range batch-clear --node --ranges '["Sheet1!A2:A100","Sheet1!C2:C100"]' --type format + dws sheet range batch-clear --node --ranges '["Sheet1!A1:B3","Sheet2!C1:D5"]' --yes + dws sheet range batch-clear --node --ranges '["Sheet1!A1:Z1000"]' --type all --yes + dws sheet range batch-clear --node --ranges '["Sheet1!A2:A100","Sheet1!C2:C100"]' --type format --yes Flags: --node string 表格文档 ID 或 URL (必填) --ranges string 目标区域 JSON 数组,每项带 sheet 前缀 (必填) @@ -72,8 +73,8 @@ Example: {"toolName":"range update","input":{"sheet-id":"Sheet1","range":"A1","values":[[{"type":"text","text":"hello"}]]}}, {"toolName":"merge-cells","input":{"sheet-id":"Sheet1","range":"A1:B1","merge-type":"mergeAll"}}, {"toolName":"update-dimension","input":{"sheet-id":"Sheet1","dimension":"ROWS","start-index":"1","length":1,"pixel-size":40}} - ]' - dws sheet batch-update --node --continue-on-error --operations '[...]' + ]' --yes + dws sheet batch-update --node --continue-on-error --operations '[...]' --yes Flags: --node string 表格文档 ID 或 URL (必填) --operations string 操作数组 JSON (必填,每项 {toolName, input}) @@ -89,6 +90,7 @@ Notes: - operations 最多 20 条 - 当需要对多个区域执行相同清除时,优先使用 `range batch-clear`(更简洁) - 典型场景:先插入行列再写入数据、先清除再写入、批量合并+调整行高列宽 + - 真实执行必须获得用户确认后加 --yes;--dry-run 不需要 --yes ``` ### 子操作定位规则 diff --git a/skills/mono/references/url-patterns.md b/skills/mono/references/url-patterns.md index 452817ca..1b8d892b 100644 --- a/skills/mono/references/url-patterns.md +++ b/skills/mono/references/url-patterns.md @@ -137,7 +137,7 @@ dws doc list --folder "https://alidocs.dingtalk.com/i/nodes/ghi789" --format jso |-------------------------|------|------|------|------|------|------| | **adoc**(在线文档) | `doc read` | `doc update` / `doc block update` | ⚠️ `doc delete` | ⚠️ `doc export` (→ docx) | ⚠️ `doc permission *` | ⚠️ `doc media download/insert` | | **axls**(在线电子表格) | `sheet range read` / `sheet list` | `sheet range update` / `sheet append` | ⚠️ `doc delete`(节点删除) | `sheet export`(单命令一站式:提交→轮询→下载,可选 `--output` 落盘) | ⚠️ `doc permission *`(节点级,跨产品) | 不适用 | -| **able**(在线多维表) | `aitable base get` / `aitable record query` | `aitable record create/update` | ⚠️ `doc delete`(节点删除)或 `aitable base delete --yes` | `aitable export data --scope all --format excel`(取 downloadUrl,`--output` 不落盘) | ⚠️ `doc permission *`(节点级) | `aitable attachment upload` | +| **able**(在线多维表) | `aitable base get` / `aitable record query` | `aitable record create/update` | ⚠️ `doc delete`(节点删除)或 `aitable base delete --yes` | `aitable export data --scope all --export-format excel --format json`(取 downloadUrl,`--output` 不落盘) | ⚠️ `doc permission *`(节点级) | `aitable attachment upload` | | **xlsx / xls / xlsm / csv**(本地表格文件) | `drive download` → 本地用 xlsx skill 解析 | 不支持服务端写(先下载改本地再上传) | ⚠️ `doc delete`(节点删除) | 不需要(本身就是 xlsx) | ⚠️ `doc permission *` | 不适用 | | **普通文件** (nodeType=file) | `drive download` | 不支持服务端写 | ⚠️ `doc delete` | 不需要 | ⚠️ `doc permission *` | 不适用 | | **文件夹** (nodeType=folder) | `doc list --folder ` | `doc create --folder ...` | ⚠️ `doc delete` | 不适用 | ⚠️ `doc permission *` | 不适用 | diff --git a/skills/multi/dingtalk-aitable/references/aitable/aitable-export-import.md b/skills/multi/dingtalk-aitable/references/aitable/aitable-export-import.md index fd4ea89b..0d6e8317 100644 --- a/skills/multi/dingtalk-aitable/references/aitable/aitable-export-import.md +++ b/skills/multi/dingtalk-aitable/references/aitable/aitable-export-import.md @@ -4,21 +4,23 @@ `export data` 为异步任务:首次调用可能只返回 `taskId`,需要继续轮询。 -> ⚠️ **`--format` 冲突警告**:`export data` 的 `--format` 是**导出格式**(excel/attachment 等),不是全局输出格式。**此命令禁止追加全局 `--format json`**,否则会覆盖导出格式导致 `INVALID_EXPORT_FORMAT` 错误。输出默认就是 JSON,无需额外指定。 +> ⚠️ **两种 format 严格分工**:业务导出格式只用 `--export-format`(excel/attachment 等);全局 `--format` 只控制 CLI 输出格式,推荐保持 `--format json`。旧写法 `--format excel` 仅用于兼容历史脚本,新调用不要使用。 ```bash -# 第一步:创建任务(按 scope 传必要参数)——注意:不要加 --format json! -dws aitable export data --base-id --scope table --table-id --format excel --timeout-ms 1000 +# 第一步:创建任务;--export-format 是业务导出格式,--format json 是结构化输出格式 +dws aitable export data --base-id --scope table --table-id --export-format excel --timeout-ms 1000 --format json # 第二步:拿 taskId 继续轮询,直到返回 downloadUrl -dws aitable export data --base-id --task-id --timeout-ms 3000 +dws aitable export data --base-id --task-id --timeout-ms 3000 --format json ``` ### 参数约束 -| scope | 必传参数 | +创建导出任务时统一必传 `--base-id`、`--scope` 和 `--export-format`;下表是不同 scope 的额外必传参数。使用 `--task-id` 轮询时不再传 scope/导出格式。 + +| scope | 额外必传参数 | |-------|----------| -| `all` | 只需 `--base-id` | +| `all` | 无 | | `table` | 必须 `--table-id` | | `view` | 必须 `--table-id` + `--view-id` | diff --git a/skills/multi/dingtalk-attendance/references/attendance.md b/skills/multi/dingtalk-attendance/references/attendance.md index 42e33ba9..86e20d66 100644 --- a/skills/multi/dingtalk-attendance/references/attendance.md +++ b/skills/multi/dingtalk-attendance/references/attendance.md @@ -551,7 +551,6 @@ Example: Flags: --date string 查询日期, 格式 YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss (必填) --stats-type string 统计类型: week 周统计 / month 月统计 (必填) - --tag-name string 标签名称 (可选) --user string 钉钉用户 ID (必填) ``` @@ -1213,7 +1212,7 @@ dws attendance checkin records --operator-corp-id corp001 --operator-staff-id op - `group update` 的 --group-id 必填,其余均可选,至少需指定一个修改项;仅需对要修改的字段赋値,未传字段会从已有配置自动补充;修改打卡地址/wifi/蓝牙等复杂子对象时用 `--group-vo` 传入完整 JSON;`--group-vo` 与单字段 flag 同时传入时单字段 flag 优先级更高 - `group create` 的 `--name` 和 `--type` 必填,`--type` 必须为 FIXED/TURN/NONE 之一;type=FIXED 时 `--group-vo` 必须包含 `workDayClassList`(非空)和 `defaultClassId`(非 null);由于保存考勤组耗时较久,建议加 `--timeout 10` - `group filtered-get` 的 `--group-id` 必填,`--member/--position/--wifi/--bles` 均可选,默认 false。**返回结果中如含成员 userId 列表,必须调用 `dws contact user get --ids ,,...`(支持逗号分隔传多个 ID),将 userId 转换为员工姓名后再输出;不得直接输出裸 userId。** -- `summary` 必须同时传 `--user`、`--date`、`--stats-type`(week 周统计 / month 月统计),三者缺一即报错;`--date` 支持 `YYYY-MM-DD` 或 `yyyy-MM-dd HH:mm:ss`;`--tag-name` 可选 +- `summary` 必须同时传 `--user`、`--date`、`--stats-type`(week 周统计 / month 月统计),三者缺一即报错;`--date` 支持 `YYYY-MM-DD` 或 `yyyy-MM-dd HH:mm:ss` - `rules` 的 `--date` 支持 YYYY-MM-DD 或 yyyy-MM-dd HH:mm:ss 两种格式 - `selfsetting get/save` 的 `--setting-scene` 必须是 `checkRemind`、`fastCheck`、`checkResultNotify`、`lackRemind`、`personalAttendStatNotify`、`bossAttendStatNotify` 之一 - `selfsetting get/save` 的 MCP 入参 `userId` 为必填;CLI 的 `--user` 也必填,必须显式传入目标用户 ID @@ -1315,4 +1314,4 @@ dws attendance boss-check --plan-id 948964045503 --time "2026-05-13 18:00" --res - 涉及超过 3 条记录的聚合(求和、分组、计数、排序、跨字段计算)时必须落 Python 脚本处理,禁止用大模型口算或目测。脚本里如果用到 mcp,先提前看下 mcp 返回的结构,避免执行异常 - 遇到时长字段时,注意区分单位是秒、分钟还是小时 - 遇到意图不清晰的场景不要猜测,主动询问用户明确意图 -- 如果查询结果很多时,不要自作主张省略,必须明确告知用户或者用表格或展示所有。 \ No newline at end of file +- 如果查询结果很多时,不要自作主张省略,必须明确告知用户或者用表格或展示所有。 diff --git a/skills/multi/dingtalk-doc/references/url-patterns.md b/skills/multi/dingtalk-doc/references/url-patterns.md index c6c108db..8c5bc8f6 100644 --- a/skills/multi/dingtalk-doc/references/url-patterns.md +++ b/skills/multi/dingtalk-doc/references/url-patterns.md @@ -137,7 +137,7 @@ dws doc list --folder "https://alidocs.dingtalk.com/i/nodes/ghi789" --format jso |-------------------------|------|------|------|------|------|------| | **adoc**(在线文档) | `doc read` | `doc update` / `doc block update` | ⚠️ `doc delete` | ⚠️ `doc export` (→ docx) | ⚠️ `doc permission *` | ⚠️ `doc media download/insert` | | **axls**(在线电子表格) | `sheet range read` / `sheet list` | `sheet range update` / `sheet append` | ⚠️ `doc delete`(节点删除) | `sheet export`(单命令一站式:提交→轮询→下载,可选 `--output` 落盘) | ⚠️ `doc permission *`(节点级,跨产品) | 不适用 | -| **able**(在线多维表) | `aitable base get` / `aitable record query` | `aitable record create/update` | ⚠️ `doc delete`(节点删除)或 `aitable base delete --yes` | `aitable export data --scope all --format excel`(取 downloadUrl,`--output` 不落盘) | ⚠️ `doc permission *`(节点级) | `aitable attachment upload` | +| **able**(在线多维表) | `aitable base get` / `aitable record query` | `aitable record create/update` | ⚠️ `doc delete`(节点删除)或 `aitable base delete --yes` | `aitable export data --scope all --export-format excel --format json`(取 downloadUrl,`--output` 不落盘) | ⚠️ `doc permission *`(节点级) | `aitable attachment upload` | | **xlsx / xls / xlsm / csv**(本地表格文件) | `drive download` → 本地用 xlsx skill 解析 | 不支持服务端写(先下载改本地再上传) | ⚠️ `doc delete`(节点删除) | 不需要(本身就是 xlsx) | ⚠️ `doc permission *` | 不适用 | | **普通文件** (nodeType=file) | `drive download` | 不支持服务端写 | ⚠️ `doc delete` | 不需要 | ⚠️ `doc permission *` | 不适用 | | **文件夹** (nodeType=folder) | `doc list --folder ` | `doc create --folder ...` | ⚠️ `doc delete` | 不适用 | ⚠️ `doc permission *` | 不适用 | diff --git a/skills/multi/dingtalk-event/SKILL.md b/skills/multi/dingtalk-event/SKILL.md index e322f509..a6966385 100644 --- a/skills/multi/dingtalk-event/SKILL.md +++ b/skills/multi/dingtalk-event/SKILL.md @@ -25,7 +25,7 @@ description: 钉钉个人消息事件长连接监听、订阅与消费,输出 | `dws event stop --dry-run` / `--yes` | 先预览,再确认取消个人订阅并停止对应本地消费 | | `dws event stop --all --dry-run` / `--yes` | 先预览,再确认清理当前身份下本地记录的全部个人订阅 | -区分两个 schema:`dws event schema ` 查事件输出字段;`dws schema "event consume"` 查 consume 命令入参(统一内嵌 ToolSpec,含 parameters + 位置参数)。`source` 是 reviewed command identity 的 provenance;本地实现机制看 `interface_mode=local`,不要把两者混为一谈。 +区分两个 schema:`dws event schema ` 查事件输出字段;`dws schema "event consume"` 查 consume 命令入参(统一内嵌 ToolSpec,含 parameters + 位置参数)。`source` 是 reviewed command identity 的 provenance;`event list/schema` 是 `interface_mode=local`,`event consume/status/stop` 因同时编排远端订阅控制面与本地 bus 而是 `interface_mode=composite`,不要把 identity 与实现机制混为一谈。 ## Event catalog diff --git a/skills/multi/dingtalk-sheet/references/sheet/sheet-batch-operations.md b/skills/multi/dingtalk-sheet/references/sheet/sheet-batch-operations.md index d354af92..819a654d 100644 --- a/skills/multi/dingtalk-sheet/references/sheet/sheet-batch-operations.md +++ b/skills/multi/dingtalk-sheet/references/sheet/sheet-batch-operations.md @@ -7,6 +7,7 @@ 1. **目标 range 必须落在用户授权范围内**:除用户明示要修改的区域外,子操作禁止扩张到无关单元格 / 列 / 工作表。规划 range 时先确认每个子操作的边界。 2. **批次完成后必须回读校验**:整个 `batch-update` 执行成功后,用 `range read` 或 `csv-get` 抽样回读受影响区域,至少校验 3-5 个代表性单元格(首 / 中 / 末),与本地预先计算的预期值对照。 3. **预期条数前置断言**:涉及"批量填充 N 行"或"对 M 个区域分别写入"时,先把 N、M 硬编码进代码,回读后断言实际等于预期;不一致就再发一轮 `batch-update` 补齐,禁止交付半成品。 +4. **统一确认语义**:`range batch-clear` 和 `batch-update` 都可删除内容或结构;先用 `--dry-run` 预览,真实执行必须获得用户确认后追加 `--yes`。 ## 使用场景 @@ -49,9 +50,9 @@ Usage: dws sheet range batch-clear [flags] Example: - 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 - dws sheet range batch-clear --node --ranges '["Sheet1!A2:A100","Sheet1!C2:C100"]' --type format + dws sheet range batch-clear --node --ranges '["Sheet1!A1:B3","Sheet2!C1:D5"]' --yes + dws sheet range batch-clear --node --ranges '["Sheet1!A1:Z1000"]' --type all --yes + dws sheet range batch-clear --node --ranges '["Sheet1!A2:A100","Sheet1!C2:C100"]' --type format --yes Flags: --node string 表格文档 ID 或 URL (必填) --ranges string 目标区域 JSON 数组,每项带 sheet 前缀 (必填) @@ -72,8 +73,8 @@ Example: {"toolName":"range update","input":{"sheet-id":"Sheet1","range":"A1","values":[[{"type":"text","text":"hello"}]]}}, {"toolName":"merge-cells","input":{"sheet-id":"Sheet1","range":"A1:B1","merge-type":"mergeAll"}}, {"toolName":"update-dimension","input":{"sheet-id":"Sheet1","dimension":"ROWS","start-index":"1","length":1,"pixel-size":40}} - ]' - dws sheet batch-update --node --continue-on-error --operations '[...]' + ]' --yes + dws sheet batch-update --node --continue-on-error --operations '[...]' --yes Flags: --node string 表格文档 ID 或 URL (必填) --operations string 操作数组 JSON (必填,每项 {toolName, input}) @@ -89,6 +90,7 @@ Notes: - operations 最多 20 条 - 当需要对多个区域执行相同清除时,优先使用 `range batch-clear`(更简洁) - 典型场景:先插入行列再写入数据、先清除再写入、批量合并+调整行高列宽 + - 真实执行必须获得用户确认后加 --yes;--dry-run 不需要 --yes ``` ### 子操作定位规则