yao/helper/doc.yml
Max efc84fbb97 feat(doc): add yao doc CLI commands and YAML documentation for all packages
Implement yao doc process list/inspect/validate and yao doc runtime
list/inspect/validate commands. Validate uses engine addressing logic
(process.Of) and checks dynamic-ID group registries (model, store, fs,
task, schedule) to verify resources actually exist.

- cmd/doc/: CLI command tree with process and runtime subcommands
- cmd/root.go: wire docCmd into rootCmd
- 27 process doc.yml + doc.go pairs across yao packages
- cmd/doc/doc_test.go: integration tests

Made-with: Cursor
2026-04-23 21:37:43 +08:00

473 lines
12 KiB
YAML

group: xiang.helper
type: process
entries:
# Array operations
- name: ArrayPluck
desc: "[Deprecated: use utils.arr.Pluck] Merge multiple record sets into one by plucking specified columns"
args:
- name: columns
type: array
required: true
desc: Array of column names to pluck
- name: data
type: object
required: true
desc: Map of column names to value arrays
return:
type: array
desc: Merged array of records
- name: ArraySplit
desc: "[Deprecated: use utils.arr.Split] Split an array of records into columns and values"
args:
- name: records
type: array
required: true
desc: Array of record objects
return:
type: object
desc: "Object with columns (string[]) and values (any[][])"
- name: ArrayColumn
desc: "[Deprecated: use utils.arr.Column] Extract values of a specified field from an array of records"
args:
- name: records
type: array
required: true
desc: Array of record objects
- name: name
type: string
required: true
desc: Field name to extract
return:
type: array
desc: Array of field values
- name: ArrayKeep
desc: "[Deprecated: use utils.arr.Keep] Keep only specified keys in each record"
args:
- name: records
type: array
required: true
desc: Array of record objects
- name: columns
type: array
required: true
desc: Array of key names to keep
return:
type: array
desc: Filtered array of records
- name: ArrayTree
desc: "[Deprecated: use utils.arr.Tree] Convert a flat array of records into a tree structure"
args:
- name: records
type: array
required: true
desc: Array of record objects
- name: setting
type: object
required: true
desc: "Tree settings: {primary, parent, children, etc.}"
return:
type: array
desc: Tree-structured array
- name: ArrayUnique
desc: "[Deprecated: use utils.arr.Unique] Remove duplicate values from an array"
args:
- name: array
type: array
required: true
desc: Array to deduplicate
return:
type: array
desc: Array with duplicates removed
- name: ArrayMapSet
desc: "[Deprecated: use utils.arr.MapSet] Set a field value on every map in an array"
args:
- name: records
type: array
required: true
desc: Array of map objects
- name: key
type: string
required: true
desc: Key to set in each map
- name: value
type: any
required: true
desc: Value to set
return:
type: array
desc: Modified array
- name: ArrayIndexes
desc: "[Deprecated: use utils.arr.Indexes] Return the index numbers of an array"
args:
- name: array
type: array
required: true
desc: Input array
return:
type: array
desc: Array of integer indexes
- name: ArrayGet
desc: "[Deprecated: use utils.arr.Get] Get an element at a specified index from an array"
args:
- name: array
type: array
required: true
desc: Input array
- name: index
type: number
required: true
desc: Index to retrieve
return:
type: any
desc: Element at the given index, or null if out of range
# Map operations
- name: MapKeys
desc: "[Deprecated: use utils.map.Keys] Return all keys of a map"
args:
- name: record
type: object
required: true
desc: Input map
return:
type: array
desc: Array of key strings
- name: MapValues
desc: "[Deprecated: use utils.map.Values] Return all values of a map"
args:
- name: record
type: object
required: true
desc: Input map
return:
type: array
desc: Array of values
- name: MapGet
desc: "[Deprecated: use utils.map.Get] Get a value by key from a map (supports dot notation)"
args:
- name: record
type: object
required: true
desc: Input map
- name: key
type: string
required: true
desc: Key name (supports dot notation for nested access)
return:
type: any
desc: Value at the given key
- name: MapSet
desc: "[Deprecated: use utils.map.Set] Set a key-value pair in a map (supports dot notation)"
args:
- name: record
type: object
required: true
desc: Input map
- name: key
type: string
required: true
desc: Key name (supports dot notation for nested access)
- name: value
type: any
required: true
desc: Value to set
return:
type: object
desc: Modified map
- name: MapDel
desc: "[Deprecated: use utils.map.Del] Delete a key from a map"
args:
- name: record
type: object
required: true
desc: Input map
- name: key
type: string
required: true
desc: Key name to delete
return:
type: object
desc: Modified map
- name: MapMultiDel
desc: "[Deprecated: use utils.map.DelMany] Delete multiple keys from a map"
args:
- name: record
type: object
required: true
desc: Input map
- name: keys
type: string
required: true
desc: Keys to delete (variadic)
return:
type: object
desc: Modified map
- name: MapToArray
desc: "[Deprecated: use utils.map.Array] Convert a map to an array of key-value objects"
args:
- name: record
type: object
required: true
desc: Input map
return:
type: array
desc: "Array of {key, value} objects"
# String operations
- name: StrConcat
desc: "[Deprecated: use utils.str.Concat] Concatenate multiple values into a string"
args:
- name: values
type: any
required: true
desc: Values to concatenate (variadic, minimum 2)
return:
type: string
desc: Concatenated string
- name: HexToString
desc: "[Deprecated: use utils.str.Hex] Encode a string or byte array to hexadecimal"
args:
- name: input
type: any
required: true
desc: String or byte array to encode
return:
type: string
desc: Hex-encoded string
# Captcha
- name: Captcha
desc: "[Deprecated: use utils.captcha.Make] Generate a captcha image/audio"
args:
- name: params
type: any
required: true
desc: "URL-style params with width, height, length, type, lang, background"
return:
type: object
desc: "Object with id and content (base64 image/audio data)"
- name: CaptchaValidate
desc: "[Deprecated: use utils.captcha.Verify] Validate a captcha code"
args:
- name: id
type: string
required: true
desc: Captcha ID
- name: code
type: string
required: true
desc: User-entered captcha code
return:
type: bool
desc: True if valid; throws exception if invalid
# Password
- name: PasswordValidate
desc: "[Deprecated: use utils.pwd.Verify] Validate a password against a bcrypt hash"
args:
- name: password
type: string
required: true
desc: Plain text password
- name: passwordHash
type: string
required: true
desc: Bcrypt hash to compare against
return:
type: bool
desc: True if password matches; throws exception if invalid
# JWT
- name: JwtMake
desc: "[Deprecated: use utils.jwt.Make] Generate a JWT token"
args:
- name: id
type: number
required: true
desc: User ID
- name: data
type: object
required: true
desc: Custom claims data
- name: option
type: object
required: false
desc: "Options: {subject, audience, issuer, timeout (seconds), sid, expires_at}"
return:
type: object
desc: "JWT token object with token string and expires_at timestamp"
- name: JwtValidate
desc: "[Deprecated: use utils.jwt.Verify] Validate and parse a JWT token"
args:
- name: token
type: string
required: true
desc: JWT token string
return:
type: object
desc: "Decoded JWT claims: {id, sid, data, ...standard claims}"
# Flow control
- name: For
desc: "[Deprecated: use utils.flow.For] Execute a process in a loop from start to end"
args:
- name: from
type: number
required: true
desc: Start index (inclusive)
- name: to
type: number
required: true
desc: End index (exclusive)
- name: process
type: object
required: true
desc: "Process definition: {process: \"name\", args: [\"::key\", \"::value\"]}"
return:
type: "null"
desc: Returns null
- name: Each
desc: "[Deprecated: use utils.flow.Each] Iterate over a value (array, map, or integer) and execute a process"
args:
- name: data
type: any
required: true
desc: Value to iterate over (array, map, or integer)
- name: process
type: object
required: true
desc: "Process definition: {process: \"name\", args: [\"::key\", \"::value\"]}"
return:
type: "null"
desc: Returns null
- name: Case
desc: "[Deprecated: use utils.flow.Case] Execute the first process whose conditions are met"
args:
- name: cases
type: object
required: true
desc: "Case objects (variadic): {when: [{...conditions}], process: \"name\", args: [...]}"
return:
type: any
desc: Return value from the matched process, or null if no match
- name: IF
desc: "[Deprecated: use utils.flow.IF] Conditional execution with optional else branch"
args:
- name: condition
type: object
required: true
desc: "Primary condition: {when: [{...conditions}], process: \"name\", args: [...]}"
- name: else
type: object
required: false
desc: "Else condition: {when: [{...conditions}], process: \"name\", args: [...]}"
return:
type: any
desc: Return value from the executed process, or null
- name: Throw
desc: "[Deprecated: use utils.flow.Throw] Throw an exception with a message and HTTP status code"
args:
- name: message
type: string
required: true
desc: Error message
- name: code
type: number
required: true
desc: HTTP status code
return:
type: void
desc: Does not return; throws exception
- name: Return
desc: "[Deprecated: use utils.flow.Return] Return all arguments as-is"
args:
- name: values
type: any
required: false
desc: Values to return (variadic)
return:
type: array
desc: Array of all passed arguments
# Environment
- name: EnvGet
desc: "[Deprecated: use utils.env.Get] Get an environment variable value"
args:
- name: name
type: string
required: true
desc: Environment variable name
return:
type: string
desc: Environment variable value
- name: EnvSet
desc: "[Deprecated: use utils.env.Set] Set an environment variable"
args:
- name: name
type: string
required: true
desc: Environment variable name
- name: value
type: string
required: true
desc: Value to set
return:
type: any
desc: Error on failure, null on success
- name: EnvMultiGet
desc: "[Deprecated: use utils.env.GetMany] Get multiple environment variable values"
args:
- name: names
type: string
required: true
desc: Environment variable names (variadic)
return:
type: object
desc: Map of variable names to their values
- name: EnvMultiSet
desc: "[Deprecated: use utils.env.SetMany] Set multiple environment variables"
args:
- name: envs
type: object
required: true
desc: Map of variable names to values
return:
type: any
desc: Error on failure, null on success
# Print
- name: Print
desc: "[Deprecated: use utils.fmt.Print] Print values to stdout (debug dump)"
args:
- name: values
type: any
required: true
desc: Values to print (variadic)
return:
type: "null"
desc: Returns null