mirror of
https://github.com/larksuite/cli.git
synced 2026-07-13 21:24:31 +08:00
## Summary
Add explicit guidance on the parent `docs` command so agents pick the right
lark-doc API version. Without this, agents that have an older lark-doc skill
installed can mistakenly mix v2 flags into a v1 flow.
## Changes
- Add `--api-version` help flag and a Tips section to `docs` so `lark docs --help`
(and `--api-version v2`) explain when v2 should be used.
- Refresh the lark-doc skill references and `docs_fetch_v2` keyword flag
description for clarity.
- Add `shortcuts/register_test.go` covering the new docs help wiring.
## Test Plan
- [x] Unit tests pass (`go test ./shortcuts/...`)
- [x] Manual local verification confirms the `lark docs --help` and
`lark docs --help --api-version v2` commands work as expected
## Related Issues
- None
Change-Id: Id3b3196e6a069bb52f95a6fc679b8258313faf3d
43 lines
1.2 KiB
Go
43 lines
1.2 KiB
Go
// Copyright (c) 2026 Lark Technologies Pte. Ltd.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package doc
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/spf13/cobra"
|
|
"github.com/spf13/pflag"
|
|
|
|
"github.com/larksuite/cli/shortcuts/common"
|
|
)
|
|
|
|
// installVersionedHelp sets a custom help function on cmd that shows only the
|
|
// flags relevant to the selected --api-version. flagVersions maps flag name to
|
|
// its version ("v1" or "v2"). Flags not in the map are treated as shared and
|
|
// always visible.
|
|
func installVersionedHelp(cmd *cobra.Command, defaultVersion string, flagVersions map[string]string) {
|
|
origHelp := cmd.HelpFunc()
|
|
cmd.SetHelpFunc(func(cmd *cobra.Command, args []string) {
|
|
ver, _ := cmd.Flags().GetString("api-version")
|
|
if ver == "" {
|
|
ver = defaultVersion
|
|
}
|
|
// Show/hide flags based on the active version.
|
|
cmd.Flags().VisitAll(func(f *pflag.Flag) {
|
|
if fv, ok := flagVersions[f.Name]; ok {
|
|
f.Hidden = fv != ver
|
|
}
|
|
})
|
|
origHelp(cmd, args)
|
|
})
|
|
}
|
|
|
|
// warnDeprecatedV1 prints a deprecation notice to stderr when the v1 (MCP) code
|
|
// path is used.
|
|
func warnDeprecatedV1(runtime *common.RuntimeContext, shortcut string) {
|
|
fmt.Fprintf(runtime.IO().ErrOut,
|
|
"[deprecated] docs %s with v1 API is deprecated and will be removed in a future release.\n",
|
|
shortcut)
|
|
}
|