yao/openapi/user/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

264 lines
7.1 KiB
YAML

group: user
type: process
entries:
# Profile
- name: profile.get
desc: Get the current user's profile information
args:
- name: options
type: object
required: false
desc: "Optional flags: {team: bool, member: bool, type: bool} to include team, member, or type info"
return:
type: object
desc: User profile data in OIDC format with optional team/member/type info
- name: profile.update
desc: Update the current user's profile information
args:
- name: data
type: object
required: true
desc: "Profile fields to update (name, given_name, family_name, nickname, picture, gender, locale, theme, metadata, etc.)"
return:
type: object
desc: "Object with user_id and message"
# Team Management
- name: team.list
desc: List teams owned by the current user with pagination and filtering
args:
- name: params
type: object
required: true
desc: "Query parameters: {status, name, page, pagesize}"
return:
type: object
desc: Paginated team list with data array and pagination info
- name: team.get
desc: Get details of a specific team the current user is a member of
args:
- name: teamID
type: string
required: true
desc: Team ID to retrieve
return:
type: object
desc: Team details including name, description, logo, owner_id, status, settings
- name: team.create
desc: Create a new team with the current user as owner
args:
- name: data
type: object
required: true
desc: "Team data: {name, description, settings, ...}"
return:
type: object
desc: "Object with team_id of the created team"
- name: team.update
desc: Update an existing team owned by the current user
args:
- name: teamID
type: string
required: true
desc: Team ID to update
- name: data
type: object
required: true
desc: "Fields to update: {name, description, settings, ...}"
return:
type: object
desc: "Object with message"
- name: team.delete
desc: Delete a team owned by the current user (removes all members first)
args:
- name: teamID
type: string
required: true
desc: Team ID to delete
return:
type: object
desc: "Object with message"
# Team Member Management
- name: member.list
desc: List members of a team with advanced filtering and pagination
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: params
type: object
required: true
desc: "Query parameters: {page, pagesize, status, member_type, role_id, email, display_name, order, fields, locale}"
return:
type: object
desc: Paginated member list with data array and pagination info
- name: member.get
desc: Get details of a specific team member
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: memberID
type: string
required: true
desc: Member ID (business key)
return:
type: object
desc: Member details including role, status, display_name, robot config, etc.
- name: member.update
desc: Update a team member (owner only, for role/status changes)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: memberID
type: string
required: true
desc: Member ID (business key)
- name: data
type: object
required: true
desc: "Fields to update: {role_id, status, settings, last_activity}"
return:
type: object
desc: "Object with message"
- name: member.profile.get
desc: Get a team member's profile (display_name, bio, avatar, email)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: userID
type: string
required: true
desc: "User ID of the member (not member_id)"
return:
type: object
desc: Member profile data with user_id, team_id, display_name, bio, avatar, email
- name: member.profile.update
desc: Update a team member's own profile (display_name, bio, avatar, email)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: userID
type: string
required: true
desc: "User ID of the member (not member_id)"
- name: data
type: object
required: true
desc: "Profile fields to update: {display_name, bio, avatar, email}"
return:
type: object
desc: "Object with user_id and message"
- name: member.delete
desc: Remove a member from a team (owner only)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: memberID
type: string
required: true
desc: Member ID (business key)
return:
type: object
desc: "Object with message"
# Team Invitation Management
- name: team.invitation.list
desc: List pending invitations for a team with pagination
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: params
type: object
required: true
desc: "Query parameters: {status, page, pagesize}"
return:
type: object
desc: Paginated invitation list with data array and pagination info
- name: team.invitation.get
desc: Get details of a specific team invitation
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: invitationID
type: string
required: true
desc: Invitation ID (business key)
return:
type: object
desc: Invitation details including status, role, invited_by, expiry, etc.
- name: team.invitation.create
desc: Create a new team invitation (owner only)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: data
type: object
required: true
desc: "Invitation data: {user_id, email, member_type, role_id, message, expiry, settings}"
return:
type: object
desc: "Object with invitation_id"
- name: team.invitation.resend
desc: Resend a pending team invitation with a new token and extended expiry
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: invitationID
type: string
required: true
desc: Invitation ID (business key)
- name: locale
type: string
required: false
desc: "Locale for email template (default: \"en\")"
return:
type: object
desc: "Object with message"
- name: team.invitation.delete
desc: Cancel a pending team invitation (owner only)
args:
- name: teamID
type: string
required: true
desc: Team ID
- name: invitationID
type: string
required: true
desc: Invitation ID (business key)
return:
type: object
desc: "Object with message"