wiki

package
v1.0.54 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 21, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Overview

Package wiki declares high-fidelity shortcuts for the DingTalk wiki (knowledge base) service: space management, member management and node management. Tool names and parameters mirror internal/helpers/wiki.go.

Index

Constants

This section is empty.

Variables

View Source
var NodeCopy = shortcut.Shortcut{
	Service:     "wiki",
	Command:     "+node-copy",
	Product:     "doc",
	Description: "复制知识库节点",
	Intent:      "当你想基于已有文档/文件夹快速生成一份副本(如用模板起草新文档、留档备份)时使用;指定源 node 和目标 folder,会实际在知识库中复制出一个新节点,原节点保持不变。",
	Risk:        shortcut.RiskWrite,
	Flags: []shortcut.Flag{
		{Name: "workspace", Type: shortcut.FlagString, Desc: "知识库 ID", Required: true},
		{Name: "node", Type: shortcut.FlagString, Desc: "源节点 ID", Required: true},
		{Name: "folder", Type: shortcut.FlagString, Desc: "目标文件夹 nodeId (不传则复制到根目录)"},
	},
	Tips: []string{`dws wiki +node-copy --workspace <workspaceId> --node <nodeId> --folder <targetFolderId>`},
	Execute: func(rt *shortcut.RuntimeContext) error {
		params := map[string]any{
			"nodeId":      rt.Str("node"),
			"workspaceId": rt.Str("workspace"),
		}
		if rt.Changed("folder") {
			params["targetFolderId"] = rt.Str("folder")
		}
		return rt.CallMCP("copy_document", params)
	},
}

NodeCreate → create_file (doc) NodeCopy → copy_document (doc)

View Source
var NodeList = shortcut.Shortcut{
	Service:     "wiki",
	Command:     "+node-list",
	Product:     "doc",
	Description: "列出知识库节点",
	Intent:      "当你要浏览某个知识库的目录结构、查看某文件夹下有哪些文档/子文件夹并拿到它们的 nodeId 时使用;输入 workspace(可选父节点 folder),分页返回该层级的节点列表,是逐层进入知识库定位文档的常用方式。",
	Risk:        shortcut.RiskRead,
	Flags: []shortcut.Flag{
		{Name: "workspace", Type: shortcut.FlagString, Desc: "知识库 ID", Required: true},
		{Name: "folder", Type: shortcut.FlagString, Desc: "父节点 nodeId (不传则列出根目录)"},
		{Name: "limit", Type: shortcut.FlagInt, Desc: "每页数量 (默认 50,最大 50)"},
		{Name: "cursor", Type: shortcut.FlagString, Desc: "分页游标"},
	},
	Tips: []string{`dws wiki +node-list --workspace <workspaceId> --folder <parentNodeId>`},
	Execute: func(rt *shortcut.RuntimeContext) error {
		params := map[string]any{"workspaceId": rt.Str("workspace")}
		if rt.Changed("folder") {
			params["folderId"] = rt.Str("folder")
		}
		if rt.Changed("limit") {
			params["pageSize"] = rt.Int("limit")
		}
		if rt.Changed("cursor") {
			params["pageToken"] = rt.Str("cursor")
		}
		data, err := rt.CallMCPData("wiki", "list_nodes", params)
		if err != nil {
			return err
		}
		nodes := nodeListProject(data)
		return rt.Output(map[string]any{"count": len(nodes), "nodes": nodes})
	},
}

NodeList → list_nodes (doc)

View Source
var NodeMove = shortcut.Shortcut{
	Service:     "wiki",
	Command:     "+node-move",
	Product:     "doc",
	Description: "移动知识库节点",
	Intent:      "当你要重新整理知识库目录、把某个文档或文件夹从当前位置挪到另一个文件夹(或根目录)下时使用;指定源 node 和目标 folder,会实际改变该节点在知识库中的所属位置。",
	Risk:        shortcut.RiskWrite,
	Flags: []shortcut.Flag{
		{Name: "workspace", Type: shortcut.FlagString, Desc: "知识库 ID", Required: true},
		{Name: "node", Type: shortcut.FlagString, Desc: "源节点 ID", Required: true},
		{Name: "folder", Type: shortcut.FlagString, Desc: "目标文件夹 nodeId (不传则移动到根目录)"},
	},
	Tips: []string{`dws wiki +node-move --workspace <workspaceId> --node <nodeId> --folder <targetFolderId>`},
	Execute: func(rt *shortcut.RuntimeContext) error {
		params := map[string]any{
			"nodeId":      rt.Str("node"),
			"workspaceId": rt.Str("workspace"),
		}
		if rt.Changed("folder") {
			params["targetFolderId"] = rt.Str("folder")
		}
		return rt.CallMCP("move_document", params)
	},
}

NodeMove → move_document (doc)

View Source
var SpaceList = shortcut.Shortcut{
	Service:     "wiki",
	Command:     "+space-list",
	Product:     "wiki",
	Description: "列出组织 / 个人知识库",
	Intent:      "当你想浏览自己有权限访问的知识库、拿到目标知识库的 workspaceId 却不确定具体名称时使用;可按类型(组织知识库或我的知识库)分页列出,返回知识库列表,是定位知识库的常用入口。",
	Risk:        shortcut.RiskRead,
	Flags: []shortcut.Flag{
		{Name: "type", Type: shortcut.FlagString, Default: "orgWikiSpace", Desc: "知识库类型: orgWikiSpace(默认) / myWikiSpace", Enum: []string{"orgWikiSpace", "myWikiSpace"}},
		{Name: "limit", Type: shortcut.FlagString, Desc: "每页数量 1-50 (默认 20)"},
		{Name: "cursor", Type: shortcut.FlagString, Desc: "分页游标 (首页留空)"},
	},
	Tips: []string{
		`dws wiki +space-list`,
		`dws wiki +space-list --type myWikiSpace`,
	},
	Execute: func(rt *shortcut.RuntimeContext) error {
		params := map[string]any{}
		if rt.Changed("type") {
			params["wikiSpaceType"] = rt.Str("type")
		}
		if rt.Changed("limit") {
			params["pageSize"] = rt.Str("limit")
		}
		if rt.Changed("cursor") {
			params["pageToken"] = rt.Str("cursor")
		}
		data, err := rt.CallMCPData("wiki", "list_wikiSpaces", params)
		if err != nil {
			return err
		}
		spaces := spaceListProject(data)
		return rt.Output(map[string]any{"count": len(spaces), "spaces": spaces})
	},
}

SpaceCreate → create_wikiSpace SpaceGet → get_wikiSpace SpaceList → list_wikiSpaces

View Source
var SpaceSearch = shortcut.Shortcut{
	Service:     "wiki",
	Command:     "+space-search",
	Product:     "wiki",
	Description: "搜索知识库",
	Intent:      "当你只记得知识库名称的部分关键词、想快速按名称定位某个知识库时使用;输入关键词返回匹配的知识库列表,比逐页 +space-list 更快找到目标 workspaceId。",
	Risk:        shortcut.RiskRead,
	Flags: []shortcut.Flag{
		{Name: "query", Type: shortcut.FlagString, Desc: "搜索关键词", Required: true},
		{Name: "limit", Type: shortcut.FlagString, Desc: "返回数量 1-20 (默认 10)"},
	},
	Tips: []string{`dws wiki +space-search --query "产品文档"`},
	Execute: func(rt *shortcut.RuntimeContext) error {
		params := map[string]any{"keyword": rt.Str("query")}
		if rt.Changed("limit") {
			params["pageSize"] = rt.Str("limit")
		}
		data, err := rt.CallMCPData("wiki", "search_wikiSpaces", params)
		if err != nil {
			return err
		}
		spaces := spaceListProject(data)
		return rt.Output(map[string]any{"count": len(spaces), "spaces": spaces})
	},
}

SpaceSearch → search_wikiSpaces

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL