Move 121/210 parameter-level Schema field overlays from schema_hints/metadata JSON into in-code ParamDecl declarations on DeclareLeafMetadata commands. The declared values are emitted as dws.schema.* annotations at assembly time via ApplyParamDecls, outranking tool_schema_hint (rank 620 > 500) so the hint overlay becomes redundant once the declaration is in place. Key mechanism changes: - Add SchemaDecl.Parameters []ParamDecl with property/required/ interface_type/description/required_when/enum fields - Add cli.ParamDecl type carried inside ContractFinalPayload - ApplyParamDecls emits dws.schema.* annotations from the payload at assembly time (no sync.Map, no tree-rebuild key issue) - Add cli.AnnotateRuntimeFlagInterfaceType (41 overlays needed it) - Add cli.AnnotateRuntimeFlagRequiredValue for explicit true/false - Compatibility alias check tolerates dws.schema.* annotation differences between primary and alias commands - Remove runtime source_hash recomputation (87ms/997k allocs saved; enforced by check-generated-drift.sh at build time instead) - Add shortcut.Flag.RequiredWhen and wire through FromShortcut - Add boolFlag OR semantics to fix confirmationBypass disagreement - Add bindKey default kebab-to-camel for forgotten Bind - Add schema consumption benchmarks (catalog decode 1.5s/817MB, shortcut load 1.9ms/3MB — three orders of magnitude apart) - Add catalog codegen feasibility probe (34 tools: 0.06s compile, 31ns access, 87KB linked — extrapolates to 2.1MB for 845 tools) Migrated products (29 tools, 121 fields): aisearch(1), chat(12), contact(4), doc(3), drive(1), hrbrain(10), mail(2), report(1), sheet(3), todo(6) Remaining 89 fields across 11 products blocked by: - RPCName not found as string literal (19 tools, shortcut/variable) - No matching DeclareLeafMetadata near callMCPTool (11 tools) - No single RPCName for multi-step commands (drive.upload etc.) All tests green: corecmd, cli, helpers. Generation and drift clean.
62 lines
2.9 KiB
JSON
62 lines
2.9 KiB
JSON
{
|
|
"version": 1,
|
|
"source": {
|
|
"kind": "explicit",
|
|
"name": "dws-tool-metadata/hrbrain",
|
|
"repository": "DingTalk-Real-AI/dingtalk-workspace-cli",
|
|
"channel": "open-source",
|
|
"reviewed": true
|
|
},
|
|
"tools": {
|
|
"hrbrain.list_talent_pools": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain talent-pool list",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the list_talent_pools MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.get_talent_pool_detail": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain talent-pool detail",
|
|
"review_reason": "Reviewed unpinned remote adapter: --pool-code maps 1:1 to the poolCode MCP call argument observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.list_pool_employees": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain talent-pool employees",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the list_pool_employees MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.get_profile_metadata": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain profile metadata",
|
|
"review_reason": "Reviewed unpinned remote adapter: --work-no maps 1:1 to the workNo MCP call argument observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.query_profile_data": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain profile query",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the query_profile_data MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.get_profile_label": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain profile labels",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the get_profile_label MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.get_employee_career": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain profile career",
|
|
"review_reason": "Reviewed unpinned remote adapter: --work-no maps 1:1 to the workNo MCP call argument observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.get_employee_performance": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain profile performance",
|
|
"review_reason": "Reviewed unpinned remote adapter: --work-no maps 1:1 to the workNo MCP call argument observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.search_employees": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain search employees",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the search_employees MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
},
|
|
"hrbrain.search_employees_structured": {
|
|
"reviewed": true,
|
|
"cli_path": "hrbrain search employees-structured",
|
|
"review_reason": "Reviewed unpinned remote adapter: flags map 1:1 to the search_employees_structured MCP call arguments observed in internal/helpers/hrbrain.go."
|
|
}
|
|
}
|
|
} |