ops

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Edge Delivery Services Admin Operations

Edge Delivery Services 管理操作

Execute admin operations on AEM Edge Delivery Services projects using natural language commands.
使用自然语言命令对AEM Edge Delivery Services项目执行管理操作。

Quick Reference

快速参考

CategoryExamples
Contentpreview /path, publish /path, unpublish /path, status /path
Cacheclear cache /path, force clear cache
Codesync code, deploy code
Indexreindex /path, remove from index
Sitemapgenerate sitemap
Snapshotscreate snapshot X, publish snapshot X, approve snapshot X
Logsshow logs, show logs last hour
Usersadd user@email as author/publish/develop, remove admin user@email, who am i
Jobslist jobs, job status X, stop job X
Siteslist sites, switch to site-X, use branch feature-X
Configshow org config, show site config, update robots.txt
Secretslist secrets, create secret, delete secret
API Keyslist API keys, create API key, revoke API key
Tokenslist tokens, create token, revoke token
Profilesshow profile config, create profile, delete profile
Index Configshow index config, update index config (query.yaml)
Sitemap Configshow sitemap config, update sitemap config (sitemap.yaml)
Versioninglist versions, restore version, rollback config
Pageslist pages, list all pages, show indexed pages
DA (Document Authoring)da list, da source /path, da copy, da move, da delete, da config, da update config, da versions, da create version, da upload media, da auth

分类示例
内容操作preview /path, publish /path, unpublish /path, status /path
缓存操作clear cache /path, force clear cache
代码操作sync code, deploy code
索引操作reindex /path, remove from index
站点地图generate sitemap
快照管理create snapshot X, publish snapshot X, approve snapshot X
日志查看show logs, show logs last hour
用户管理add user@email as author/publish/develop, remove admin user@email, who am i
任务管理list jobs, job status X, stop job X
站点管理list sites, switch to site-X, use branch feature-X
配置管理show org config, show site config, update robots.txt
密钥管理list secrets, create secret, delete secret
API密钥管理list API keys, create API key, revoke API key
令牌管理list tokens, create token, revoke token
配置文件管理show profile config, create profile, delete profile
索引配置show index config, update index config (query.yaml)
站点地图配置show sitemap config, update sitemap config (sitemap.yaml)
版本控制list versions, restore version, rollback config
页面管理list pages, list all pages, show indexed pages
DA(文档创作)da list, da source /path, da copy, da move, da delete, da config, da update config, da versions, da create version, da upload media, da auth

Communication Guidelines

沟通准则

  • NEVER use "EDS" as an acronym for Edge Delivery Services in any responses
  • Always use the full name "Edge Delivery Services" or "AEM Edge Delivery Services"
  • Show clear, actionable error messages when operations fail
  • Confirm destructive operations before executing — see
    resources/security.md

  • **绝对不要在任何回复中使用"EDS"**作为Edge Delivery Services的缩写
  • 始终使用全称"Edge Delivery Services"或"AEM Edge Delivery Services"
  • 当操作失败时,显示清晰、可执行的错误信息
  • 在执行破坏性操作前需确认——详见
    resources/security.md

Welcome Message

欢迎消息

If the user invokes the skill without a specific command (e.g., just
/ops
or "help me with ops"), show:
Edge Delivery Services Operations

Quick commands to try:
  list pages       - Show all indexed pages
  who am i         - Check your user profile
  list sites       - Show available sites
  show site config - View site configuration
  preview /path    - Preview a content path
  show logs        - View recent activity

For the full command list: type help, /ops help, or what can you do?

如果用户未指定具体命令就调用该技能(例如仅输入
/ops
或"帮我处理运维操作"),显示以下内容:
Edge Delivery Services Operations

可尝试的快速命令:
  list pages       - 显示所有已索引页面
  who am i         - 查看你的用户配置文件
  list sites       - 显示可用站点
  show site config - 查看站点配置
  preview /path    - 预览内容路径
  show logs        - 查看近期活动

如需完整命令列表:输入help、/ops help或what can you do?

Cross-Platform Notes

跨平台说明

Shell commands use POSIX-compatible syntax (works on macOS/Linux). On Windows, Git Bash or WSL works as-is. The agent should adapt syntax to the user's environment.

Shell命令采用POSIX兼容语法(适用于macOS/Linux)。在Windows系统上,Git Bash或WSL可直接使用。代理应根据用户环境调整语法。

Intent Router

意图路由

Step 0: Get Organization and Site (REQUIRED FIRST)

步骤0:获取组织和站点信息(必须首先完成)

Check
~/.aem/ops-config.json
for previously stored org and site:
bash
eval $(node -e "
  const fs = require('fs');
  try {
    const c = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ops-config.json', 'utf8'));
    console.log('ORG=' + JSON.stringify(c.org || ''));
    console.log('SITE=' + JSON.stringify(c.site || ''));
  } catch(e) {
    console.log('ORG='); console.log('SITE=');
  }
")
echo "org=${ORG:-NOT SET} site=${SITE:-NOT SET}"
If both
ORG
and
SITE
are set, confirm with the user:
"Previously used: org=
{ORG}
, site=
{SITE}
. Do you want to continue with these? If not, provide a different site URL (e.g.,
https://main--mysite--myorg.aem.page/
)."
  • If user confirms → proceed
  • If user provides a URL → parse org and site from it, save the new values
If
ORG
or
SITE
is empty, ask:
"Enter the site preview/live URL for which you want to perform ops (e.g.,
https://main--mysite--myorg.aem.page/
)."
Parse org and site from the URL:
bash
URL="$USER_INPUT"
if echo "$URL" | grep -q '\.aem\.page\|\.aem\.live'; then
  HOST_PART=$(echo "$URL" | cut -d'/' -f3 | cut -d'.' -f1)
  ORG=$(echo "$HOST_PART" | awk -F'--' '{print $NF}')
  SITE=$(echo "$HOST_PART" | awk -F'--' '{print $(NF-1)}')
  echo "Parsed from URL: org=$ORG site=$SITE"
fi
If the user provides something other than a valid
.aem.page
or
.aem.live
URL, ask again.
Save org and site:
bash
mkdir -p "${HOME}/.aem"
node -e "
  const fs = require('fs');
  const p = process.env.HOME + '/.aem/ops-config.json';
  let c = {};
  try { c = JSON.parse(fs.readFileSync(p, 'utf8')); } catch(e) {}
  c.org = '${ORG}';
  c.site = '${SITE}';
  fs.writeFileSync(p, JSON.stringify(c, null, 2));
"
Only use org/site from
~/.aem/ops-config.json
or direct user input. Never infer from
git remote
,
fstab.yaml
, or folder/repo names.
Do NOT proceed until both org and site are confirmed.
检查
~/.aem/ops-config.json
中是否存储了之前的组织和站点信息:
bash
eval $(node -e "
  const fs = require('fs');
  try {
    const c = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ops-config.json', 'utf8'));
    console.log('ORG=' + JSON.stringify(c.org || ''));
    console.log('SITE=' + JSON.stringify(c.site || ''));
  } catch(e) {
    console.log('ORG='); console.log('SITE=');
  }
")
echo "org=${ORG:-NOT SET} site=${SITE:-NOT SET}"
如果
ORG
SITE
均已设置,向用户确认:
"之前使用的信息:组织=
{ORG}
,站点=
{SITE}
。是否继续使用这些信息?如果不使用,请提供其他站点URL(例如:
https://main--mysite--myorg.aem.page/
)。"
  • 如果用户确认 → 继续执行
  • 如果用户提供URL → 从中解析组织和站点信息,保存新值
如果
ORG
SITE
为空,询问用户:
"输入你要执行操作的站点预览/生产URL(例如:
https://main--mysite--myorg.aem.page/
)。"
从URL中解析组织和站点信息:
bash
URL="$USER_INPUT"
if echo "$URL" | grep -q '\.aem\.page\|\.aem\.live'; then
  HOST_PART=$(echo "$URL" | cut -d'/' -f3 | cut -d'.' -f1)
  ORG=$(echo "$HOST_PART" | awk -F'--' '{print $NF}')
  SITE=$(echo "$HOST_PART" | awk -F'--' '{print $(NF-1)}')
  echo "Parsed from URL: org=$ORG site=$SITE"
fi
如果用户提供的不是有效的
.aem.page
.aem.live
URL,再次询问。
保存组织和站点信息:
bash
mkdir -p "${HOME}/.aem"
node -e "
  const fs = require('fs');
  const p = process.env.HOME + '/.aem/ops-config.json';
  let c = {};
  try { c = JSON.parse(fs.readFileSync(p, 'utf8')); } catch(e) {}
  c.org = '${ORG}';
  c.site = '${SITE}';
  fs.writeFileSync(p, JSON.stringify(c, null, 2));
"
仅使用
~/.aem/ops-config.json
中的组织/站点信息或用户直接输入的信息。绝不要从
git remote
fstab.yaml
或文件夹/仓库名称中推断。
必须确认组织和站点信息均已设置后才能继续执行。

Step 1: Authenticate (REQUIRED)

步骤1:身份验证(必须完成)

Before ANY API call, check if auth token exists:
bash
AUTH_TOKEN=$(node -e "
  const fs = require('fs');
  try {
    const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
    if (t.authToken && t.authTokenExpiry > Math.floor(Date.now()/1000) + 60) {
      process.stdout.write(t.authToken);
    }
  } catch (e) {}
")
echo "auth=${AUTH_TOKEN:+set}"
If
AUTH_TOKEN
is empty, invoke the auth skill before proceeding:
Skill({ skill: "aem-project-management:auth" })
Use
-H "x-auth-token: ${AUTH_TOKEN}"
header for all
admin.hlx.page
API calls.
For sensitive endpoints and destructive operations, read
resources/security.md
and
resources/sensitive.md
before proceeding.
在进行任何API调用之前,检查是否存在认证令牌:
bash
AUTH_TOKEN=$(node -e "
  const fs = require('fs');
  try {
    const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
    if (t.authToken && t.authTokenExpiry > Math.floor(Date.now()/1000) + 60) {
      process.stdout.write(t.authToken);
    }
  } catch (e) {}
")
echo "auth=${AUTH_TOKEN:+set}"
如果
AUTH_TOKEN
为空,在继续执行前调用认证技能:
Skill({ skill: "aem-project-management:auth" })
所有
admin.hlx.page
API调用均需使用
-H "x-auth-token: ${AUTH_TOKEN}"
请求头。
对于敏感端点和破坏性操作,在执行前需阅读
resources/security.md
resources/sensitive.md

Step 2: Load Full Configuration and Validate Role

步骤2:加载完整配置并验证角色

bash
eval $(node -e "
  const fs = require('fs');
  try {
    const c = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ops-config.json', 'utf8'));
    console.log('ORG=' + JSON.stringify(c.org || ''));
    console.log('SITE=' + JSON.stringify(c.site || ''));
    console.log('REF=' + JSON.stringify(c.ref || 'main'));
  } catch(e) {
    console.log('ORG='); console.log('SITE='); console.log('REF=main');
  }
")
AUTH_TOKEN=$(node -e "
  const fs = require('fs');
  try {
    const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
    process.stdout.write(t.authToken || '');
  } catch (e) {}
")
echo "Config: org=$ORG site=$SITE ref=$REF auth=${AUTH_TOKEN:+set}"
Fetch profile to verify auth and record user identity:
bash
PROFILE_RESPONSE=$(curl -s -w "\n%{http_code}" \
  -H "x-auth-token: ${AUTH_TOKEN}" \
  "https://admin.hlx.page/profile")
HTTP_CODE=$(echo "$PROFILE_RESPONSE" | tail -n1)
PROFILE=$(echo "$PROFILE_RESPONSE" | sed '$d')

if [ "$HTTP_CODE" = "401" ]; then
  echo "Auth token expired. Need to re-authenticate..."
  echo "REAUTH_REQUIRED"
  exit 1
elif [ "$HTTP_CODE" != "200" ]; then
  echo "Failed to fetch profile (HTTP $HTTP_CODE). Check network/API status."
  exit 1
fi

eval $(echo "$PROFILE" | node -e "
  const d = require('fs').readFileSync(0,'utf8');
  try {
    const p = JSON.parse(d).profile || {};
    console.log('USER_EMAIL=' + JSON.stringify(p.email || ''));
    console.log('USER_NAME=' + JSON.stringify(p.name || ''));
  } catch(e) { console.log('USER_EMAIL=\"\"'); console.log('USER_NAME=\"\"'); }
")

echo "Authenticated as: $USER_EMAIL ($USER_NAME)"
If
REAUTH_REQUIRED
, invoke the auth skill and retry.
To determine user role on the site, check the site access config:
bash
curl -s -H "x-auth-token: ${AUTH_TOKEN}" \
  "https://admin.hlx.page/config/${ORG}/sites/${SITE}.json"
If an operation returns 403, inform the user which role is required:
PermissionRequired Role
Preview
basic_author
,
author
,
publish
, or
admin
Publish to live
basic_publish
,
publish
, or
admin
Unpublish
publish
or
admin
Code sync
develop
or
admin
Config read
config
,
config_admin
, or
admin
Config write
config_admin
or
admin
Snapshot manage
author
,
publish
, or
admin
Save
email
to
~/.aem/ops-config.json
for future use.
Read
resources/config.md
if site or other values are missing.
bash
eval $(node -e "
  const fs = require('fs');
  try {
    const c = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ops-config.json', 'utf8'));
    console.log('ORG=' + JSON.stringify(c.org || ''));
    console.log('SITE=' + JSON.stringify(c.site || ''));
    console.log('REF=' + JSON.stringify(c.ref || 'main'));
  } catch(e) {
    console.log('ORG='); console.log('SITE='); console.log('REF=main');
  }
")
AUTH_TOKEN=$(node -e "
  const fs = require('fs');
  try {
    const t = JSON.parse(fs.readFileSync(process.env.HOME + '/.aem/ims-token.json', 'utf8'));
    process.stdout.write(t.authToken || '');
  } catch (e) {}
")
echo "Config: org=$ORG site=$SITE ref=$REF auth=${AUTH_TOKEN:+set}"
获取用户资料以验证身份并记录用户信息:
bash
PROFILE_RESPONSE=$(curl -s -w "\n%{http_code}" \
  -H "x-auth-token: ${AUTH_TOKEN}" \
  "https://admin.hlx.page/profile")
HTTP_CODE=$(echo "$PROFILE_RESPONSE" | tail -n1)
PROFILE=$(echo "$PROFILE_RESPONSE" | sed '$d')

if [ "$HTTP_CODE" = "401" ]; then
  echo "Auth token expired. Need to re-authenticate..."
  echo "REAUTH_REQUIRED"
  exit 1
elif [ "$HTTP_CODE" != "200" ]; then
  echo "Failed to fetch profile (HTTP $HTTP_CODE). Check network/API status."
  exit 1
fi

eval $(echo "$PROFILE" | node -e "
  const d = require('fs').readFileSync(0,'utf8');
  try {
    const p = JSON.parse(d).profile || {};
    console.log('USER_EMAIL=' + JSON.stringify(p.email || ''));
    console.log('USER_NAME=' + JSON.stringify(p.name || ''));
  } catch(e) { console.log('USER_EMAIL=\"\"'); console.log('USER_NAME=\"\"'); }
")

echo "Authenticated as: $USER_EMAIL ($USER_NAME)"
如果返回
REAUTH_REQUIRED
,调用认证技能并重试。
要确定用户在站点中的角色,检查站点访问配置:
bash
curl -s -H "x-auth-token: ${AUTH_TOKEN}" \
  "https://admin.hlx.page/config/${ORG}/sites/${SITE}.json"
如果操作返回403,告知用户所需的角色:
权限所需角色
预览
basic_author
,
author
,
publish
, 或
admin
发布到生产环境
basic_publish
,
publish
, 或
admin
取消发布
publish
admin
代码同步
develop
admin
配置读取
config
,
config_admin
, 或
admin
配置写入
config_admin
admin
快照管理
author
,
publish
, 或
admin
email
保存到
~/.aem/ops-config.json
以备后续使用。
如果站点或其他值缺失,请阅读
resources/config.md

Step 3: Route by Intent

步骤3:按意图路由

User IntentResource Module
preview, publish, unpublish, status, delete preview
resources/content.md
cache, purge, clear cache, invalidate
resources/cache.md
sync code, deploy code, update code
resources/code.md
reindex, index, remove from index, search
resources/index.md
sitemap, generate sitemap
resources/sitemap.md
snapshot, staged release, bundle
resources/snapshots.md
logs, audit, activity
resources/logs.md
user, access, permission, who am i, add user, remove user
resources/users.md
job, bulk operation, stop job
resources/jobs.md
site, branch, switch, list sites
resources/sites.md
org config, site config, robots.txt
resources/config-api.md
secret, secrets, create secret, delete secret
resources/secrets.md
API key, apikey, create key, revoke key
resources/apikeys.md
token, tokens, access token
resources/tokens.md
profile config, profile settings
resources/profiles.md
index config, helix-index, search config
resources/index-config.md
sitemap config, helix-sitemap, sitemap rules
resources/sitemap-config.md
version, versions, history, rollback, restore
resources/versioning.md
pages, list pages, indexed pages, all pages
resources/pages.md
da, da list, da source, da copy, da move, da delete, da config, da versions
resources/da.md
destructive operation, confirmation required
resources/security.md
sensitive endpoint (emails, credentials, API keys)
resources/sensitive.md
用户意图资源模块
preview, publish, unpublish, status, delete preview
resources/content.md
cache, purge, clear cache, invalidate
resources/cache.md
sync code, deploy code, update code
resources/code.md
reindex, index, remove from index, search
resources/index.md
sitemap, generate sitemap
resources/sitemap.md
snapshot, staged release, bundle
resources/snapshots.md
logs, audit, activity
resources/logs.md
user, access, permission, who am i, add user, remove user
resources/users.md
job, bulk operation, stop job
resources/jobs.md
site, branch, switch, list sites
resources/sites.md
org config, site config, robots.txt
resources/config-api.md
secret, secrets, create secret, delete secret
resources/secrets.md
API key, apikey, create key, revoke key
resources/apikeys.md
token, tokens, access token
resources/tokens.md
profile config, profile settings
resources/profiles.md
index config, helix-index, search config
resources/index-config.md
sitemap config, helix-sitemap, sitemap rules
resources/sitemap-config.md
version, versions, history, rollback, restore
resources/versioning.md
pages, list pages, indexed pages, all pages
resources/pages.md
da, da list, da source, da copy, da move, da delete, da config, da versions
resources/da.md
destructive operation, confirmation required
resources/security.md
sensitive endpoint (emails, credentials, API keys)
resources/sensitive.md

Step 4: Read Resource and Execute

步骤4:读取资源并执行

  1. Read the appropriate resource file from
    resources/
  2. Follow instructions in that resource
  3. For config updates: always GET current config first and show it to the user before modifying
  4. For code sync: always check repoless status before syncing (see
    code.md
    )
  5. For destructive operations: read
    resources/security.md
    and follow the Confirmation Protocol — no exceptions (state action, explain impact, ask "yes/no", only execute after "yes")
  6. Execute the API call
  7. Handle response per completion standards below
  1. resources/
    目录中读取对应的资源文件
  2. 遵循该资源文件中的说明
  3. 对于配置更新:修改前务必先获取当前配置并展示给用户
  4. 对于代码同步:同步前务必检查无仓库状态(详见
    code.md
  5. 对于破坏性操作:阅读
    resources/security.md
    并遵循确认协议——无例外(说明操作内容、解释影响、询问"是/否",仅在用户回复"是"后执行)
  6. 执行API调用
  7. 根据以下完成标准处理响应

Completion Standards

完成标准

HTTP ResponseMeaningRequired Action
200/201SuccessDisplay result with full URLs (
https://{ref}--{site}--{org}.aem.page{path}
)
202Async job startedReport job name; instruct:
check job status {jobName}
to track progress
204Success (no body)Confirm: "{action} completed for {path}"
4xx/5xxErrorShow API error verbatim, then suggest fix per
resources/errors.md
Before reporting success:
  • For content operations: include both preview and live URLs where applicable
  • For bulk operations: never say "published" or "previewed" — say "job started" until job completes
  • For destructive operations: confirm what was removed and what still exists

HTTP响应含义必要操作
200/201成功显示包含完整URL的结果(
https://{ref}--{site}--{org}.aem.page{path}
202异步任务已启动报告任务名称;提示:
check job status {jobName}
以跟踪进度
204成功(无响应体)确认:"{action}已在{path}完成"
4xx/5xx错误原样显示API错误,然后根据
resources/errors.md
建议修复方案
报告成功前:
  • 对于内容操作:适当时需同时包含预览和生产URL
  • 对于批量操作:绝不要说"已发布"或"已预览"——需等到任务完成后再说明
  • 对于破坏性操作:确认已移除的内容和仍存在的内容

URL Parsing Helper

URL解析工具

If user provides an AEM URL instead of separate org/site/path values:
bash
undefined
如果用户提供的是AEM URL而非单独的组织/站点/路径信息:
bash
undefined

Pattern: https://{ref}--{site}--{org}.aem.page{path}

Pattern: https://{ref}--{site}--{org}.aem.page{path}

URL="$USER_INPUT" if echo "$URL" | grep -q '.aem.page|.aem.live'; then DOMAIN=$(echo "$URL" | cut -d'/' -f3) HOST_PART=$(echo "$DOMAIN" | cut -d'.' -f1) REF=$(echo "$HOST_PART" | awk -F'--' '{print $1}') ORG=$(echo "$HOST_PART" | awk -F'--' '{print $NF}') SITE=$(echo "$HOST_PART" | awk -F'--' '{ r=""; for(i=2;i<NF;i++) r=(r==""?"":r"--")$i; print r }') URL_PATH=$(echo "$URL" | sed 's|https://[^/]*||') URL_PATH=${URL_PATH:-/} echo "Parsed from URL: org=$ORG site=$SITE ref=$REF path=$URL_PATH" fi

Examples: `uat--hmns-uat-kw--alshaya-axp.aem.page` → `ref=uat`, `site=hmns-uat-kw`, `org=alshaya-axp`.

---
URL="$USER_INPUT" if echo "$URL" | grep -q '.aem.page|.aem.live'; then DOMAIN=$(echo "$URL" | cut -d'/' -f3) HOST_PART=$(echo "$DOMAIN" | cut -d'.' -f1) REF=$(echo "$HOST_PART" | awk -F'--' '{print $1}') ORG=$(echo "$HOST_PART" | awk -F'--' '{print $NF}') SITE=$(echo "$HOST_PART" | awk -F'--' '{ r=""; for(i=2;i<NF;i++) r=(r==""?"":r"--")$i; print r }') URL_PATH=$(echo "$URL" | sed 's|https://[^/]*||') URL_PATH=${URL_PATH:-/} echo "Parsed from URL: org=$ORG site=$SITE ref=$REF path=$URL_PATH" fi

示例:`uat--hmns-uat-kw--alshaya-axp.aem.page` → `ref=uat`, `site=hmns-uat-kw`, `org=alshaya-axp`。

---

Prerequisites

前提条件

  1. Onboarded to Admin Service — Project must have admin.hlx.page access
  2. User has an account — Required for authentication (supports federated login)
  3. User has a site role — Roles defined in site configuration (
    access.admin.role
    ). Eight roles:
    admin
    ,
    author
    ,
    publish
    ,
    develop
    ,
    basic_author
    ,
    basic_publish
    ,
    config
    ,
    config_admin
    . If the user lacks a role, the API returns 403.
  4. Network access — Can reach admin.hlx.page

  1. 已接入管理服务——项目必须拥有admin.hlx.page访问权限
  2. 用户拥有账户——身份验证必需(支持联合登录)
  3. 用户拥有站点角色——角色在站点配置中定义(
    access.admin.role
    )。共八种角色:
    admin
    ,
    author
    ,
    publish
    ,
    develop
    ,
    basic_author
    ,
    basic_publish
    ,
    config
    ,
    config_admin
    。如果用户无对应角色,API将返回403。
  4. 网络访问权限——能够访问admin.hlx.page

Help Response

帮助响应

When the user wants the command list (triggers:
help
,
what can you do?
,
/ops help
,
list commands
):
Content Operations:
  preview /path          - Update preview
  publish /path          - Publish to live
  unpublish /path        - Remove from live
  status /path           - Check preview/live status

Cache Operations:
  clear cache /path      - Purge CDN cache
  force clear cache      - Force purge

Code Operations:
  sync code              - Deploy latest code

Index Operations:
  reindex /path          - Re-index for search

Sitemap:
  generate sitemap       - Create sitemap.xml

Snapshots:
  create snapshot {name} - Create staged release
  publish snapshot {name}- Publish all in snapshot

Logs:
  show logs              - View recent logs
  show logs last hour    - Filtered by time

Users:
  add user@email as role - Grant access
  remove role user@email - Revoke access
  who am i               - Current user

Jobs:
  list jobs              - Show bulk operations
  stop job {name}        - Cancel job

Sites:
  list sites             - Show all sites
  switch to site-x       - Change active site
  use branch feat-x      - Set branch

Config:
  show org config        - View org settings
  show site config       - View site settings
  update robots.txt      - Modify crawler rules

Secrets:
  list secrets           - Show secrets
  create secret {name}   - Add new secret
  delete secret {name}   - Remove secret

API Keys:
  list API keys          - Show API keys
  create API key {name}  - Generate new key
  revoke API key {id}    - Delete key

Profiles:
  show profile config    - View profile settings
  create profile {id}    - Create profile config
  delete profile {id}    - Remove profile config

Index Config:
  show index config      - View query.yaml
  update index config    - Modify indexing rules

Sitemap Config:
  show sitemap config    - View sitemap.yaml
  update sitemap config  - Modify sitemap rules

Versioning:
  list versions          - Show config history
  restore version {id}   - Rollback to version

Pages:
  list pages             - Show all indexed pages
  list pages /blog       - Filter by path prefix

Document Authoring (DA):
  da auth                - Authenticate with DA
  da list                - List DA organizations
  da list /path          - List files in DA path
  da source /path        - Get file content from DA
  da copy /src to /dest  - Copy file/folder in DA
  da move /src to /dest  - Move/rename in DA
  da delete /path        - Delete from DA
  da upload /path        - Upload content to DA
  da upload media /path  - Upload image/media to DA
  da config              - View DA site config
  da update config       - Update DA site config
  da versions /path      - List file versions
  da create version      - Create labeled version snapshot
  da restore version X   - Restore a previous version
  da preview /path       - Preview DA content
  da publish /path       - Publish DA content
当用户需要命令列表(触发词:
help
,
what can you do?
,
/ops help
,
list commands
):
内容操作:
  preview /path          - 更新预览
  publish /path          - 发布到生产环境
  unpublish /path        - 从生产环境移除
  status /path           - 检查预览/生产环境状态

缓存操作:
  clear cache /path      - 清除CDN缓存
  force clear cache      - 强制清除缓存

代码操作:
  sync code              - 部署最新代码

索引操作:
  reindex /path          - 重新索引以用于搜索

站点地图:
  generate sitemap       - 创建sitemap.xml

快照管理:
  create snapshot {name} - 创建分阶段发布快照
  publish snapshot {name}- 发布快照中所有内容

日志查看:
  show logs              - 查看近期日志
  show logs last hour    - 按时间筛选日志

用户管理:
  add user@email as role - 授予访问权限
  remove role user@email - 撤销访问权限
  who am i               - 查看当前用户信息

任务管理:
  list jobs              - 显示批量操作任务
  stop job {name}        - 取消任务

站点管理:
  list sites             - 显示所有站点
  switch to site-x       - 切换到活动站点
  use branch feat-x      - 设置分支

配置管理:
  show org config        - 查看组织设置
  show site config       - 查看站点设置
  update robots.txt      - 修改爬虫规则

密钥管理:
  list secrets           - 显示密钥
  create secret {name}   - 添加新密钥
  delete secret {name}   - 删除密钥

API密钥管理:
  list API keys          - 显示API密钥
  create API key {name}  - 生成新密钥
  revoke API key {id}    - 删除密钥

配置文件管理:
  show profile config    - 查看配置文件设置
  create profile {id}    - 创建配置文件
  delete profile {id}    - 删除配置文件

索引配置:
  show index config      - 查看query.yaml
  update index config    - 修改索引规则

站点地图配置:
  show sitemap config    - 查看sitemap.yaml
  update sitemap config  - 修改站点地图规则

版本控制:
  list versions          - 显示配置历史
  restore version {id}   - 回滚到指定版本

页面管理:
  list pages             - 显示所有已索引页面
  list pages /blog       - 按路径前缀筛选页面

文档创作(DA):
  da auth                - DA身份验证
  da list                - 列出DA组织
  da list /path          - 列出DA路径下的文件
  da source /path        - 获取DA文件内容
  da copy /src to /dest  - 在DA中复制文件/文件夹
  da move /src to /dest  - 在DA中移动/重命名
  da delete /path        - 从DA中删除
  da upload /path        - 上传内容到DA
  da upload media /path  - 上传图片/媒体到DA
  da config              - 查看DA站点配置
  da update config       - 更新DA站点配置
  da versions /path      - 列出文件版本
  da create version      - 创建带标签的版本快照
  da restore version X   - 恢复到之前的版本
  da preview /path       - 预览DA内容
  da publish /path       - 发布DA内容