@tianacloud/agent-skills 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Tiana Agent Skills
2
2
 
3
- 五个基础技能覆盖 Tiana 账号与实例、SQLite、Git、后端服务和 Web 应用。应用模板由在线目录提供,用户描述需求后,Agent 根据实时目录决定使用模板还是直接开发。
3
+ 六个基础技能覆盖 Tiana 账号与实例、SQLite、Git、后端服务、密钥和 Web 应用。应用模板由在线目录提供,用户描述需求后,Agent 根据实时目录决定使用模板还是直接开发。
4
4
 
5
5
  ## 从 npm 安装
6
6
 
@@ -10,7 +10,7 @@
10
10
  npx --yes @tianacloud/agent-skills@latest install --agent codex
11
11
  ```
12
12
 
13
- 安装器调用精确依赖的 skills 工具,把 npm 包中的五个技能复制到客户端的持久目录;Codex 当前工具使用 `~/.agents/skills/`。不传目标时选择客户端:
13
+ 安装器调用精确依赖的 skills 工具,把 npm 包中的全部技能复制到客户端的持久目录;Codex 当前工具使用 `~/.agents/skills/`。不传目标时选择客户端:
14
14
 
15
15
  ```sh
16
16
  npx --yes @tianacloud/agent-skills@latest install
@@ -22,11 +22,11 @@ npx --yes @tianacloud/agent-skills@latest install
22
22
  npx --yes @tianacloud/agent-skills@latest install --dir /path/to/client/skills
23
23
  ```
24
24
 
25
- Windows PowerShell 使用 `npx.cmd`。目录可以含空格,用引号包住。重复安装会更新这五个技能目录,其他技能保留。安装完成后让客户端重载技能或开始新会话。
25
+ Windows PowerShell 使用 `npx.cmd`。目录可以含空格,用引号包住。重复安装会更新包内全部技能并补齐新版新增技能,其他技能保留。安装完成后让客户端重载技能或开始新会话。
26
26
 
27
- WorkBuddy、豆包按所用版本的目录/ZIP 导入方式加载这五个目录,保留 SKILL.md 和 references。若要求 ZIP,可将每个技能目录的内容打包,SKILL.md 位于包根部。WorkBuddy 专用本地化 ZIP 由维护者构建流程提供;本仓验证 ZIP 格式和内容,不声称已验收这些客户端的运行行为。
27
+ WorkBuddy、豆包按所用版本的目录/ZIP 导入方式加载这六个目录,保留 SKILL.md 和 references。若要求 ZIP,可将每个技能目录的内容打包,SKILL.md 位于包根部。WorkBuddy 专用本地化 ZIP 由维护者构建流程提供;本仓验证 ZIP 格式和内容,不声称已验收这些客户端的运行行为。
28
28
 
29
- ## 五个入口
29
+ ## 六个入口
30
30
 
31
31
  | 技能 | 职责 |
32
32
  | --- | --- |
@@ -34,11 +34,12 @@ WorkBuddy、豆包按所用版本的目录/ZIP 导入方式加载这五个目
34
34
  | [tiana-sqlite](skills/tiana-sqlite/SKILL.md) | SQL、表结构、SDK 连接和数据库分支 |
35
35
  | [tiana-git](skills/tiana-git/SKILL.md) | Git 实例、原生仓库操作和源码版本同步 |
36
36
  | [tiana-function](skills/tiana-function/SKILL.md) | Go 后端服务源码、构建发布、参数/CORS 与数据库后端 |
37
+ | [tiana-secrets](skills/tiana-secrets/SKILL.md) | 用户密钥库初始化、名称与版本列表、写入和删除 |
37
38
  | [tiana-web](skills/tiana-web/SKILL.md) | 实时模板选择、工程与数据初始化、通用开发、构建发布 |
38
39
 
39
40
  Web 技能每次任务都实际执行 `tiana web list-template --json`,使用当前 name/description 判断需求。模板 ZIP 原样下载解压到独立项目目录;Agent 按根部 metadata.json 替换变量、先 schema 后 seeds。模板源码和制作规范见 [template-apps](https://github.com/tianacloud/template-apps),客户安装模板由 CLI 和 MGR 目录完成。
40
41
 
41
- 技能安装器只安装技能。Agent 首次执行 Tiana 任务时检查 CLI,缺少时自动执行下面的安装并继续原任务;CLI 要求 1.0.1 或更新正式版,需要 Node.js 20+。
42
+ 技能安装器只安装技能。Agent 首次执行 Tiana 任务时检查 CLI,缺少时自动执行下面的安装并继续原任务;CLI 要求 1.0.4 或更新正式版,需要 Node.js 20+。
42
43
 
43
44
  ```sh
44
45
  npm install -g @tianacloud/cli@latest --registry=https://registry.npmjs.org/
@@ -56,9 +57,9 @@ WorkBuddy Connector 固定 online,配置和当前使用说明见 [Connector](d
56
57
 
57
58
  ## 检查与更新
58
59
 
59
- 五个技能调用 CLI 检查 npm latest,CLI 普通终端调用也使用同一本地状态。两个包各自最多每 24 小时尝试检查一次,CLI 与 Skills 共用每 24 小时一次提醒。已满足最低 CLI 版本时,断网不阻断任务;升级需要用户确认。
60
+ 各 Tiana 技能调用 CLI 检查两个 npm 包的 latest。两个包各自最多每 24 小时尝试检查一次,CLI 普通终端与 Skills 共用每 24 小时一次提醒。Agent 发现 CLI 或 Skills 新正式版后自动安装并核验,无需再次询问;should_notify 不限制自动更新。每个会话首次检查后简短报告检查、两个包的更新结果及新增技能。
60
61
 
61
- 确认升级后重新安装检查返回的实际版本,并核验 `tiana version`、技能 metadata.version 和宿主重载结果。已加载的会话不会因磁盘替换而自动更换指令。详情见 [开始使用](skills/tiana/references/getting-started.md)。
62
+ CLI 在当前实际使用的安装位置升级并核验版本和所需命令;Skills 安装新版包中的全部技能,覆盖已有技能并补齐新增技能,核验 metadata.version 与宿主加载结果。Connector 只分发初始版本,后续两个包独立更新,无需等待 Connector 发版。已加载的会话不会因磁盘替换而自动更换指令;需要重载时明确提示。具体步骤及失败后的继续条件见 [开始使用](skills/tiana/references/getting-started.md#更新),各宿主安装位置及加载核验见[连接器与宿主中的自动更新](skills/tiana/references/connector-updates.md)。
62
63
 
63
64
  ## 维护与其他分发格式
64
65
 
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env node
2
- import { cp, mkdir, rm, realpath, readFile, mkdtemp, rename } from 'node:fs/promises';
2
+ import { cp, mkdir, rm, realpath, readFile, readdir, mkdtemp, rename } from 'node:fs/promises';
3
3
  import path from 'node:path';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { createRequire } from 'node:module';
6
6
  import { spawnSync } from 'node:child_process';
7
7
 
8
8
  const root = fileURLToPath(new URL('../', import.meta.url));
9
- const names = ['tiana', 'tiana-sqlite', 'tiana-git', 'tiana-web', 'tiana-function'];
10
9
  const usage = 'tiana-skills install [--agent NAME | --dir PATH]';
11
10
  try {
12
11
  const args = process.argv.slice(2);
@@ -24,6 +23,8 @@ try {
24
23
  }
25
24
  if (agent && directory) throw new Error('Choose --agent or --dir.');
26
25
  const source = path.join(root, 'skills');
26
+ const names = (await readdir(source, { withFileTypes: true }))
27
+ .filter(entry => entry.isDirectory()).map(entry => entry.name).sort();
27
28
  const pkg = JSON.parse(await readFile(path.join(root, 'package.json'), 'utf8'));
28
29
  if (directory) {
29
30
  const target = path.resolve(directory);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tianacloud/agent-skills",
3
- "version": "1.0.11",
3
+ "version": "1.0.13",
4
4
  "description": "Tiana Cloud Skills for accounts, SQLite, Git, Functions and Web applications",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
3
  "name": "tiana",
4
- "version": "1.0.11",
4
+ "version": "1.0.13",
5
5
  "description": "Tiana Cloud account, SQLite, Git, Functions and Web application workflows",
6
6
  "author": {
7
7
  "name": "Tiana Cloud",
@@ -1,10 +1,10 @@
1
1
  ---
2
2
  name: tiana
3
- description: 使用 Tiana Cloud 管理实例、安装 CLI、登录和恢复账号会话。通用 Tiana 任务从此技能开始;Web 应用创建发布使用 tiana-web,数据库和分支使用 tiana-sqlite,Git 仓库和源码同步使用 tiana-git,后端服务与数据库后端使用 tiana-function。
3
+ description: 使用 Tiana Cloud 管理实例、安装 CLI、登录和恢复账号会话。通用 Tiana 任务从此技能开始;Web 应用创建发布使用 tiana-web,数据库和分支使用 tiana-sqlite,Git 仓库和源码同步使用 tiana-git,后端服务与数据库后端使用 tiana-function,用户密钥管理使用 tiana-secrets。
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Tiana Cloud
7
- version: "1.0.11"
7
+ version: "1.0.13"
8
8
  source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana
9
9
  ---
10
10
 
@@ -16,13 +16,16 @@ metadata:
16
16
 
17
17
  **本会话首次使用任一 Tiana 技能时,先完成以下步骤,再开始登录、查询模板或操作应用:**
18
18
 
19
- 1. 执行 `tiana version`,按[开始使用](references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,先完成安装或经用户确认的升级。
20
- 2. CLI 满足最低版本后,**仍须实际执行** `tiana version check --skills-version 1.0.11 --json`;版本号取实际加载的 metadata.version。这一步检查是否有更新版本。
21
- 3. 实际发起检查命令后,才在会话中记为已尝试,并保留返回结果或执行错误。仅运行 `tiana version` 只完成第 1 步。
19
+ CLI 与 Skills 各自独立比较本包的 npm 最新正式版。下面的版本检查与安装只访问公共包仓库,不需要 Tiana 登录,不操作 Tiana 云端资源;用户要求暂不登录或不操作云端资源时仍执行。用户明确要求离线、禁止联网或禁止安装时遵从该限制。
22
20
 
23
- 五个技能共享这份实际调用记录;后续轮次、重复加载或切换技能复用记录,失败也不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。
21
+ 1. 执行 `tiana version`,按[开始使用](references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,自动安装 npm latest 正式版并重新核验。
22
+ 2. CLI 满足最低版本后,从本会话实际加载的 SKILL.md 的 `metadata.version` 取得 `SKILLS_VERSION`,在同一次 shell 调用中赋值并**实际执行** `tiana version check --skills-version "$SKILLS_VERSION" --json`。这一步检查是否有更新版本。
23
+ 3. `updates` 中 CLI 或 Skills 有新正式版时,**自动安装各项实际返回的 `latest_version`,无需再次询问**;`should_notify=false` 也执行。Skills 按新版包完整安装,覆盖已有技能并补齐新增技能。各连接器初始版本仅用于分发,后续更新独立于连接器发版;安装目标及重载按[更新流程](references/getting-started.md#更新),连接器内使用时再读其中链接的宿主说明。
24
+ 4. 在对话中简短报告实际 CLI/Skills 版本、检查状态与更新结果(包括新增技能及是否需要重载);检查不可用时明确说明未能确认是否有新版,更新失败时说明实际错误。
24
25
 
25
- 仅在 `should_notify=true` 时简短提醒并询问是否升级;用户选择稍后或检查不可用时继续原任务。CLI 仍管理检查缓存和共同的 24 小时提醒额度。升级及重载见[开始使用](references/getting-started.md#更新)。
26
+ 实际发起检查命令后才记录已尝试,保留检查结果或执行错误,以及两个包的安装与核验结果。各 Tiana 技能共享这份记录;后续轮次、重复加载或切换技能复用记录,每个包失败后本会话不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。仅运行 `tiana version` 只完成第 1 步。
27
+
28
+ CLI 仍管理检查缓存和共同的 24 小时提醒额度;该额度不限制自动更新或本会话首次结果报告。更新核验完成后继续原任务;失败时按更新流程判断可否继续。
26
29
 
27
30
  ## 选择工作流程
28
31
 
@@ -32,6 +35,7 @@ metadata:
32
35
  | Go 后端服务、源码、参数及编译发布 | [tiana-function](../tiana-function/SKILL.md) |
33
36
  | SQLite 查询、连接、建表及数据库分支 | [tiana-sqlite](../tiana-sqlite/SKILL.md) |
34
37
  | Git 实例、仓库、源码版本同步 | [tiana-git](../tiana-git/SKILL.md) |
38
+ | 用户密钥库初始化、名称列表、写入与删除 | [tiana-secrets](../tiana-secrets/SKILL.md) |
35
39
  | 登录、账号、额度、通用实例管理 | 本技能 |
36
40
 
37
41
  组合请求中,安装完成后继续用户要求的任务。按需读取对应技能和直接链接的参考资料,跨技能文件按宿主返回的安装目录解析。
@@ -0,0 +1,39 @@
1
+ # 连接器与宿主中的自动更新
2
+
3
+ 在任意连接器中首次使用 Tiana、发现 CLI/Skills 新版或安装后仍运行旧版时读取。更新决策与会话记录按[开始使用](getting-started.md#更新)。Connector 提供初始 CLI 和技能;Agent 独立跟踪两个 npm 包的正式版,自动更新 CLI 与整套 Skills,安装新增技能,使用各自实际返回的目标版本。后续更新通过这两个 npm 包分发,无需等待 Connector 重新发版。
4
+
5
+ ## CLI:沿用当前托管安装
6
+
7
+ 在 Agent 实际执行命令的环境定位运行时和安装位置;CLI 需要 Node.js 20+,Skills 安装器需要 Node.js 22.20+。宿主提供隔离运行时或安装 prefix 时沿用其环境;系统终端的全局 npm 列表不能代表连接器中的安装。先核对:
8
+
9
+ ```sh
10
+ command -v node
11
+ command -v npm
12
+ command -v tiana
13
+ npm prefix --global
14
+ npm root --global
15
+ ```
16
+
17
+ Windows PowerShell 使用 `Get-Command node,npm.cmd,tiana.cmd`、`npm.cmd prefix --global` 和 `npm.cmd root --global`。沿入口解析符号链接或 npm shim,确认实际 `@tianacloud/cli/package.json` 所在位置及版本。
18
+
19
+ 当前 CLI 包位于返回的 npm root 下时,沿用该 Node/npm、prefix 和 PATH,执行开始使用中的精确版本全局安装。若当前 shell 的 npm prefix 与实际 CLI 所属位置不同,从实际包位置确认原安装 prefix,再用相应 npm 显式指定该 prefix:
20
+
21
+ ```sh
22
+ npm install -g --prefix "CLI_PREFIX" @tianacloud/cli@VERSION --registry=https://registry.npmjs.org/
23
+ ```
24
+
25
+ CLI_PREFIX 来自实际安装位置,VERSION 来自更新回执。后续独立命令调用都沿用已核实的命令路径与运行环境,包括 Git helper 所需 PATH 和本任务 TIANA_API_ORIGIN。安装后核验实际入口的 `tiana version` 及任务所需命令帮助。安装位置取自当前宿主,不在指令中固化某个客户端的私有目录。
26
+
27
+ ## Skills:更新整套并补齐新增目录
28
+
29
+ 从宿主返回的当前 SKILL.md 绝对路径确认实际技能根目录:其直接子目录分别包含各技能的 SKILL.md。连接器内置技能使用其已安装的 skills 根目录;普通目录安装沿用原目标。该目录就是开始使用中 `install --dir "SKILLS_DIR"` 的目标。
30
+
31
+ 执行新版 Skills 包的完整安装,不指定旧技能名单。安装器返回的名单包含新版包全部技能,因此连接器初始包没有的新增技能也会安装。逐份核验 metadata.version,读取本任务所需的新技能和引用;其他已安装技能由安装器保留。
32
+
33
+ 让宿主重载技能,或提示用户开始新会话;随后核对实际加载路径、版本及新增技能是否出现在技能列表。若存在同名副本,按实际加载路径处理更新,避免继续读取旧副本。实际目录不可写或重载后仍只加载旧内容时,报告具体安装或宿主加载阻塞;分别报告文件安装与技能启用状态。
34
+
35
+ ## 宿主权限与加载验收
36
+
37
+ 安装目录尚未出现在任务 PATH 时,后续调用使用已核实的完整 CLI 路径,或在每次命令调用中传入相应 PATH。宿主可能单独显示安装或新命令入口的执行授权;按当前权限及用户已授权范围处理后继续,分别报告执行授权与版本检查结果。
38
+
39
+ 在真实宿主中验证:CLI/Skills 分别发现新版时各自升级;should_notify=false 仍升级;实际 CLI 入口使用新版本;新版包中新增技能目录安装并可加载;重启后核对实际版本与登录状态。归档内容、本地安装夹具和文件核验分别记录,结合宿主中的实际加载结果报告验收结论。
@@ -1,10 +1,10 @@
1
1
  # 开始使用
2
2
 
3
- 在 Agent 实际执行命令的环境检查 `tiana version`。本技能要求 CLI 1.0.4 或更新正式版,具备分步登录、sqlite、git、web、file、list-template/init-template 和 version check。CLI 不存在时执行下面的 npm 安装并重新核验;已有版本过低时按更新流程取得用户确认后升级,再执行资源操作。不要仅凭同名命令存在跳过版本核验。
3
+ 在 Agent 实际执行命令的环境检查 `tiana version`。本技能要求 CLI 1.0.4 或更新正式版,具备分步登录、sqlite、git、web、file、list-template/init-template 和 version check。CLI 不存在、版本过低或无法核实时,直接执行下面的 npm latest 安装并重新核验,无需再次询问;核验通过后再执行资源操作。
4
4
 
5
- 最低版本核验独立于更新提醒:0.x、预发行版、dev 或无法核实的版本不满足本技能基线。即使 `should_notify=false` 或更新检查不可用,也不能据此跳过最低版本要求;先完成已获授权的升级,尚未获授权时说明需要升级,暂缓依赖新版 CLI 的资源操作。CLI 与 Skills 独立编号,`--skills-version` 仍传实际加载的 Skills 版本。
5
+ 连接器环境中,安装或更新前先按[宿主说明](connector-updates.md)定位实际 Node/npm、CLI 安装 prefix 和技能根目录,沿用宿主运行环境。
6
6
 
7
- 最低版本升级已获授权但更新检查不可用时,可安装已发布基线 `npm install -g @tianacloud/cli@1.0.4 --registry=https://registry.npmjs.org/`,随后核验 `tiana version`;下载失败则报告实际错误,不继续资源操作。
7
+ 最低版本是可用性基线;通过后仍须检查并自动安装已发现的新正式版。0.x、预发行版、dev 或无法核实的版本不满足基线。CLI 与 Skills 独立编号,`--skills-version` 传实际加载的 Skills 版本。
8
8
 
9
9
  ## 安装
10
10
 
@@ -16,25 +16,55 @@ npm install -g @tianacloud/cli@latest --registry=https://registry.npmjs.org/
16
16
 
17
17
  该包提供 `tiana` 和 `git-remote-tiana`,npm optionalDependencies 选择当前平台原生包;保持 optional 依赖启用,`--ignore-scripts` 也可以正常安装。缺少平台包时按实际错误修复安装,不能只凭命令入口存在宣称成功。Windows PowerShell 使用 `npm.cmd`,详情见 [Windows 安装](windows-install.md)和 [Git helper 排查](windows-git-helper.md)。
18
18
 
19
- 安装 Skills 使用 Node.js 22.20+:
19
+ 安装 Skills 使用 Node.js 22.20+;CLIENT 取实际受支持的客户端标识:
20
20
 
21
21
  ```sh
22
- npx --yes @tianacloud/agent-skills@latest install --agent codex
22
+ npx --yes @tianacloud/agent-skills@latest install --agent CLIENT
23
23
  ```
24
24
 
25
- 其他客户端按自己的安装目录使用 `install --dir PATH`,或不传目标运行客户端选择流程。五个 Skills 来自 npm 包内目录,安装后是持久文件副本。导入 Skill 与安装 CLI 是两步。
25
+ 其他客户端按自己的安装目录使用 `install --dir PATH`,或不传目标运行客户端选择流程。Skills 来自 npm 包内全部技能目录,安装后是持久文件副本。导入 Skill 与安装 CLI 是两步。
26
26
 
27
27
  核验安装后,先完成入口 SKILL.md 中的会话更新检查,再执行 `tiana status`,按实际结果继续任务或恢复登录。用户同时要求创建应用时,完成安装和登录后继续原始需求。当前会话可以读取新安装的 SKILL.md 及其引用文件;宿主必须重载才可使用时,明确提示重载,并保留应用需求及本次环境选择。安装失败时报告实际阶段;没有执行过的登录、资源创建或发布仍然未知。
28
28
 
29
29
  ## 更新
30
30
 
31
- 会话检查顺序和记录规则见入口 [SKILL.md](../SKILL.md#每个会话一次的更新检查)。最低版本核验通过后,继续执行更新检查;实际发起检查命令后才记录已尝试,并保留返回结果或执行错误及用户的升级选择。结果是直接 JSON,包含 should_notify、check_status 和 updates。
31
+ CLI 与 Skills 独立编号,分别与自身 npm latest 比较。版本检查和 npm 安装访问公共包仓库,不要求 Tiana 登录,也不查询或修改 Tiana 云端资源;“暂不登录/不操作云端资源”不影响这一步。用户明确要求离线、禁止联网或禁止安装时遵从其限制。
32
32
 
33
- 仅在 should_notify 为 true 时简短告诉用户 updates 中当前版本和新版本,并询问是否升级。不要因 updates 非空却 should_notify=false 再次提醒。CLI 保存两个包各自的检查尝试时间和共同的提醒时间,滚动 24 小时最多提醒一次;已核实 CLI 满足最低版本时,断网、更新状态不可写或待检查包版本未知不阻断任务。
33
+ 会话检查顺序和记录规则见入口 [SKILL.md](../SKILL.md#每个会话一次的更新检查)。最低版本核验通过后,从本会话实际加载的 SKILL.md 的 metadata.version 读取 SKILLS_VERSION,在同一次 shell 调用中赋值后执行 `tiana version check --skills-version "$SKILLS_VERSION" --json`。结果是直接 JSON,包含 should_notify、check_status 和 updates。逐项处理 package 为 `@tianacloud/cli` 或 `@tianacloud/agent-skills` 的新正式版,直接安装对应 latest_version,无需再次询问。should_notify 只控制提醒,值为 false 或 check_status=cached 时也处理已返回的更新项。
34
34
 
35
- 当前 CLI 已满足最低版本时,用户选择稍后升级仍继续原任务;确认后才安装所选包的实际更新版本:CLI 使用 `npm install -g @tianacloud/cli@VERSION --registry=https://registry.npmjs.org/`;Skills 使用 `npx --yes @tianacloud/agent-skills@VERSION install --agent CLIENT`,或复用原来的 `--dir PATH`。VERSION 从检查结果取得,CLIENT/目录对应当前宿主的实际安装目标。
35
+ 保留本会话实际检查结果、执行错误及两个包的安装与核验结果;每个包最多自动尝试安装一次。首次检查和更新结束后,在对话中简短报告实际 CLI/Skills 版本、检查状态与各包结果、新增技能及重载要求。检查不可用时说明未能确认是否有新版;后续复用本会话记录时无需重复报告。
36
36
 
37
- CLI 升级后核验 `tiana version` 和所需帮助;Skills 安装后检查五份 SKILL.md 的 metadata.version,并让宿主重载或开始新会话。当前会话已经加载的旧指令仍按旧版本处理,不把磁盘替换当作已重载。升级失败保留实际错误,不中途改动应用资源或凭据来修复。
37
+ ### CLI 自动更新
38
+
39
+ ```sh
40
+ npm install -g @tianacloud/cli@VERSION --registry=https://registry.npmjs.org/
41
+ ```
42
+
43
+ VERSION 取 CLI 更新项的 latest_version。Windows PowerShell 使用 `npm.cmd`。升级使用 Agent 实际调用的 CLI 所属 Node/npm 和安装 prefix;保留宿主注入的运行环境。连接器的实际安装位置与运行环境按[连接器与宿主中的自动更新](connector-updates.md)核验。
44
+
45
+ 安装后核验实际 `tiana version` 与目标版本一致,以及本任务所需命令的 `--help`。npm 安装成功但仍运行旧版本时,按 [PATH 与 helper 排查](windows-git-helper.md)核对命令位置,完成前报告为尚未生效。
46
+
47
+ ### Skills 自动更新与新增技能
48
+
49
+ VERSION 取 Skills 更新项的 latest_version。原来通过受支持客户端安装的,使用同一 CLIENT:
50
+
51
+ ```sh
52
+ npx --yes @tianacloud/agent-skills@VERSION install --agent CLIENT
53
+ ```
54
+
55
+ 目录安装或连接器内置技能使用已核实的实际技能根目录(其中直接包含各技能目录),安装整个新版包:
56
+
57
+ ```sh
58
+ npx --yes @tianacloud/agent-skills@VERSION install --dir "SKILLS_DIR"
59
+ ```
60
+
61
+ Windows PowerShell 使用 `npx.cmd`。从当前加载的 SKILL.md 实际路径确认安装目标;重用原安装方式,各连接器均按[宿主说明](connector-updates.md)操作。安装器枚举新版包 skills/ 下的全部技能目录,覆盖对应已安装目录并安装新增目录,保留其他技能。Connector 版本只决定初始分发内容,后续 CLI/Skills 独立跟踪 npm 正式版;各连接器使用同一更新流程,无需等待 Connector 发版。
62
+
63
+ 检查安装器返回的版本、技能名单及目录,逐份核验已安装 SKILL.md 的 metadata.version 与目标一致;名单以新版包为准。读取本任务所需的新 SKILL.md 和引用,按新指令继续;需要宿主重载才能启用时提示重载或开始新会话,保留原任务、环境选择和检查记录。文件安装成功与宿主加载成功分别报告,新增技能需确认出现在宿主技能列表并可加载后才算启用。
64
+
65
+ ### 失败后继续
66
+
67
+ 检查不可用且没有可用更新项时,或安装失败时,保留并简短报告实际错误,分别记录两个包的结果。核实 CLI 仍满足基线且具备所需命令、所需技能可加载后,可继续原任务;否则报告具体阻塞。部分安装失败时按安装器返回的已完成/未安装名单核对现状。安装缺失 CLI 或提升过低版本失败后,同样须核验通过才能继续资源操作。
38
68
 
39
69
  ## 环境与地址
40
70
 
@@ -53,8 +83,6 @@ tiana status
53
83
 
54
84
  staging CLI 自动加载内置公共根证书,无需另设 CA 文件;开发者须已接入 staging VPN/DNS,并为浏览器一次性安装 staging CA。证书来源、指纹和安装步骤见 [CLI staging 信任说明](https://github.com/tianacloud/cli/blob/main/docs/staging-ca.md)。证书故障按实际提示处理,不能关闭验证或切到另一个环境。
55
85
 
56
- WorkBuddy Connector 由自身命令环境固定 online,其安装、登录及业务命令沿用该环境。
57
-
58
86
  Console/管理 API、用户 Web 地址、数据库 Endpoint 各有用途:全部取实际 CLI/服务回执,不猜域名或把管理地址作为数据库连接地址。应用地址使用回执中的 application_url,Git URL 使用用户 Git 实例的 Endpoint。
59
87
 
60
88
  ## 对话中的登录
@@ -15,4 +15,4 @@ npm 通过 os/cpu 选择 cli-win32-x64 或 cli-win32-arm64;二进制直接在
15
15
 
16
16
  成功后核验 `tiana.cmd version`、`tiana.cmd login --help`、`tiana.cmd web list-template --help`、`tiana.cmd web init-template --help`。需要 Git 时安装 Git for Windows,按 [helper 与 PATH 排查](windows-git-helper.md)确认命令位置。npm 安装成功但 PATH 不可见时先检查 prefix 和 Agent 实际环境。
17
17
 
18
- [开始使用](getting-started.md)说明登录、更新检查及用户确认升级。命令尚未执行时如实说明,不把安装阶段的问题当成服务登录或发布故障。
18
+ [开始使用](getting-started.md)说明登录、CLI 与 Skills 自动更新及新增技能安装。命令尚未执行时如实说明,不把安装阶段的问题当成服务登录或发布故障。
@@ -4,7 +4,7 @@ description: 使用 Tiana 创建和管理 Go 后端服务,读取及保存 Git
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Tiana Cloud
7
- version: "1.0.11"
7
+ version: "1.0.13"
8
8
  parent: tiana
9
9
  source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana-function
10
10
  ---
@@ -13,7 +13,7 @@ metadata:
13
13
 
14
14
  本 skill 负责后端服务的创建与管理、源码、运行参数、Go 接口及数据库访问、编译发布。为 Web 开发后端时,接收 [Tiana Web](../tiana-web/SKILL.md)确定的 Git ID、接口需求和数据依赖;完成后返回服务 ID、source_dir、发布回执、接口契约和参数生效结果,由 Web skill 继续前端接入、绑定、发布及分享验收。
15
15
 
16
- 安装、账号与环境选择按 [Tiana](../tiana/SKILL.md)。共享各 Tiana 技能本会话的实际更新检查记录;尚未检查时先完成该入口的检查,包括实际执行 `tiana version check --skills-version 1.0.11 --json`。执行前确认 `tiana function --help` 可用;缺少命令时使用配套 CLI,不将未部署能力描述为可用。
16
+ 安装、账号与环境选择按 [Tiana](../tiana/SKILL.md)。共享各 Tiana 技能本会话的实际更新检查记录;尚未检查时先完成该入口的检查,包括从本会话实际加载的 SKILL.md 的 `metadata.version` 取得 `SKILLS_VERSION`,在同一次 shell 调用中赋值并实际执行 `tiana version check --skills-version "$SKILLS_VERSION" --json` 并按结果自动更新 CLI 和整套 Skills、补齐新增技能并核验,在对话中报告结果与重载要求;`should_notify=false` 也执行。两个包各自比较自身 npm 最新版,检查与安装无需 Tiana 登录;暂不登录或不操作云端资源时仍完成此流程。执行前确认 `tiana function --help` 可用;当前最新正式 CLI 仍缺少命令时,报告配套能力尚未可用及两个包的实际版本,等待已验证的配套发布。
17
17
 
18
18
  ## 创建与修改
19
19
 
@@ -27,7 +27,7 @@ metadata:
27
27
 
28
28
  涉及数据库 Token、第三方 API Key 等敏感配置时,必须先按[参数配置与生效](references/commands.md#参数配置与生效)配置,再按 [Go 后端服务开发](references/go-backend.md)读取与使用。参数更新无需重新编译,但要核对保存回执的应用状态和实际请求结果。
29
29
 
30
- 数据库 Endpoint、Token 和第三方密钥保存在后端服务参数中,不写入 Git、前端源码、业务响应或日志。缺少实际凭据时说明待配置项,不使用占位值宣称联调成功。Web 的数据访问方式、资源绑定与模板制作由 Tiana Web 负责。
30
+ 数据库 Endpoint 使用明文参数;Token 和第三方密钥先通过 [Tiana Secrets](../tiana-secrets/SKILL.md) 写入用户密钥库,再保存为后端服务的密钥引用参数,不写入 Git、前端源码、业务响应或日志。缺少实际凭据时说明待配置项,不使用占位值宣称联调成功。Web 的数据访问方式、资源绑定与模板制作由 Tiana Web 负责。
31
31
 
32
32
  调用方身份通过 SDK 从请求上下文读取,业务需要区分用户数据时使用该身份,不能相信请求体中自报的用户 ID。完成接口核验后,将所需调用身份与数据范围一并交给 Web skill 验证。
33
33
 
@@ -60,10 +60,12 @@ set 替换整个参数对象。get 的 JSON 回执从 `data.parameters` 取出
60
60
  {
61
61
  "MESSAGE": {"kind": "plain", "value": "欢迎使用订单服务"},
62
62
  "SQLITE_ENDPOINT": {"kind": "plain", "value": "<实际数据库 Endpoint>"},
63
- "SQLITE_TOKEN": {"kind": "plain", "value": "<实际数据库实例 Token>"}
63
+ "SQLITE_TOKEN": {"kind": "secret", "value": "production/database/token"}
64
64
  }
65
65
  ```
66
66
 
67
+ 先通过 [Tiana Secrets](../../tiana-secrets/SKILL.md) 写入敏感值,再将其 key 配为 secret;plain 保存明文,secret 只保存引用名称。
68
+
67
69
  含凭据的文件放在 Git 和前端构建目录之外,使用仅当前用户可读写的临时文件,用完删除。get 和 set 回执都可能包含参数值,同样写入受限临时文件处理,不打印到对话或交付日志。仅报告参数名称与生效状态。
68
70
 
69
71
  核对 set 返回的 `data.application`:
@@ -74,7 +76,7 @@ set 替换整个参数对象。get 的 JSON 回执从 `data.parameters` 取出
74
76
  | `next_start` | 配置已保存,下次启动使用;调用已发布的服务完成唤醒并验证。 |
75
77
  | `pending` | 已保存但当前执行尚未确认收到。可在 Console 点击「重试下发」,再核对结果;不能报告已生效。 |
76
78
 
77
- 更新参数无需重新编译。Go 读取与使用按[Go 后端服务开发](go-backend.md);验证数据库连接或上游调用是否成功,不通过回显密钥来验证。参数读取、必需值缺失和下游拒绝都要有明确业务错误。轮换凭据后再验证新请求,避免代码启动时缓存旧值造成“配置改了仍失败”。
79
+ 更新参数无需重新编译。Go 读取与使用按[Go 后端服务开发](go-backend.md);验证数据库连接或上游调用是否成功,不通过回显密钥来验证。参数读取、必需值缺失和下游拒绝都要有明确业务错误。密钥引用变化在下次冷启动生效;当前执行首次读取成功后缓存值,验证轮换时需要新的冷启动。
78
80
 
79
81
  ## CORS
80
82
 
@@ -1,6 +1,10 @@
1
1
  # Go 后端服务开发
2
2
 
3
- 后端服务是监听 `PORT` 环境变量指定端口的 Go HTTP 程序。平台固定 Go 1.26 工具链。source_dir 包含 package main,所属 go.mod 可在该目录或仓库内上级目录,多个入口可共享模块;依赖由构建流程下载。使用 SDK 时选择包含 function 包的已发布版本,记录在 go.mod 中,具体版本以当前配套 SDK 发布为准。
3
+ 后端服务是监听 `PORT` 环境变量指定端口的 Go HTTP 程序。平台固定 Go 1.26 工具链。source_dir 包含 package main,所属 go.mod 可在该目录或仓库内上级目录,多个入口可共享模块;依赖由构建流程下载。本页的 Get(value, error) 与密钥引用示例使用下列配套 SDK;将解析后的 go.mod、go.sum 一起保存到源码仓库。
4
+
5
+ ```sh
6
+ go get github.com/tianacloud/sdk-go@v1.1.0-function.4.0.20261102183840-52d162f75066
7
+ ```
4
8
 
5
9
  最小程序返回 JSON:
6
10
 
@@ -36,14 +40,14 @@ if err != nil {
36
40
  http.Error(w, "读取参数失败", http.StatusInternalServerError)
37
41
  return
38
42
  }
39
- message, ok := params.Get("MESSAGE")
40
- if !ok {
43
+ message, err := params.Get("MESSAGE")
44
+ if err != nil {
41
45
  http.Error(w, "尚未配置欢迎语", http.StatusInternalServerError)
42
46
  return
43
47
  }
44
48
  ```
45
49
 
46
- 导入 `github.com/tianacloud/sdk-go/function`。SDK 使用平台提供的 `FUNCTION_CONFIG_FILE` 读取配置,不自行拼接宿主路径。Get 返回字符串和是否存在;已配置空字符串也会返回 true,必需且非空的业务凭据还需检查空值。不要返回整个参数对象,其中可能有数据库凭据。
50
+ 导入 `github.com/tianacloud/sdk-go/function`。SDK 使用平台提供的 `FUNCTION_CONFIG_FILE` 读取配置,不自行拼接宿主路径。Get 返回字符串和 error;不存在时返回 function.ErrNotExist,已配置空字符串返回 ("", nil),必需且非空的业务凭据还需检查空值。不要返回整个参数对象,其中可能有数据库凭据。
47
51
 
48
52
  ## 使用敏感配置
49
53
 
@@ -52,24 +56,24 @@ if !ok {
52
56
  例如 `PAYMENT_API_KEY` 是业务自定义的第三方密钥参数名,req 是业务已创建的上游 HTTP 请求:
53
57
 
54
58
  ```go
55
- apiKey, ok := params.Get("PAYMENT_API_KEY")
56
- if !ok || apiKey == "" {
59
+ apiKey, err := params.Get("PAYMENT_API_KEY")
60
+ if err != nil || apiKey == "" {
57
61
  http.Error(w, "支付服务尚未配置", http.StatusServiceUnavailable)
58
62
  return
59
63
  }
60
64
  req.Header.Set("Authorization", "Bearer "+apiKey)
61
65
  ```
62
66
 
63
- 按上游真实协议设置凭据,并检查调用结果。密钥仅用于后端向上游发请求;响应只返回业务需要的结果,不返回密钥或原始请求头。配置热更新时每次请求读取;如果复用依赖密钥的客户端,须在参数变化后更新客户端,不能一直使用启动时的旧凭据。
67
+ 按上游真实协议设置凭据,并检查调用结果。密钥仅用于后端向上游发请求;响应只返回业务需要的结果,不返回密钥或原始请求头。明文参数按配置更新;密钥参数首次读取成功后在本次执行内缓存,后续密钥变化需要新的冷启动才能读取当前值。
64
68
 
65
69
  ## 访问 SQLite
66
70
 
67
71
  先用 [Tiana SQLite](../../tiana-sqlite/SKILL.md)核实数据库实例、表结构及初始化 SQL。数据库 Endpoint 和实例 Token 分别保存为后端服务参数 `SQLITE_ENDPOINT`、`SQLITE_TOKEN`,Token 在该数据库的连接管理中创建。只在后端服务内读取并传给 SDK:
68
72
 
69
73
  ```go
70
- endpoint, endpointOK := params.Get("SQLITE_ENDPOINT")
71
- secret, tokenOK := params.Get("SQLITE_TOKEN")
72
- if !endpointOK || !tokenOK || endpoint == "" || secret == "" {
74
+ endpoint, endpointErr := params.Get("SQLITE_ENDPOINT")
75
+ secret, tokenErr := params.Get("SQLITE_TOKEN")
76
+ if endpointErr != nil || tokenErr != nil || endpoint == "" || secret == "" {
73
77
  http.Error(w, "数据库参数未配置", http.StatusInternalServerError)
74
78
  return
75
79
  }
@@ -96,7 +100,7 @@ defer db.Close()
96
100
 
97
101
  ## App 作者与初始权限
98
102
 
99
- 在需要作者权限的 HTTP handler 内使用 Go SDK `v1.1.0-function.4` 或包含 IsAppOwner 的后续配套版本,并将实际依赖固定到 go.mod:
103
+ 在需要作者权限的 HTTP handler 内使用 Go SDK `v1.1.0-function.4.0.20261102183840-52d162f75066`(包含参数 Get 错误语义和密钥引用),并将实际依赖固定到 go.mod:
100
104
 
101
105
  ```go
102
106
  caller, present := function.CallerFromRequest(r)
@@ -4,7 +4,7 @@ description: 使用 Tiana Git 管理 Git 实例和原生仓库,关联项目远
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Tiana Cloud
7
- version: "1.0.11"
7
+ version: "1.0.13"
8
8
  parent: tiana
9
9
  source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana-git
10
10
  ---
@@ -17,13 +17,16 @@ metadata:
17
17
 
18
18
  **本会话首次使用任一 Tiana 技能时,先完成以下步骤,再开始登录、查询模板或操作应用:**
19
19
 
20
- 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,先完成安装或经用户确认的升级。
21
- 2. CLI 满足最低版本后,**仍须实际执行** `tiana version check --skills-version 1.0.11 --json`;版本号取实际加载的 metadata.version。这一步检查是否有更新版本。
22
- 3. 实际发起检查命令后,才在会话中记为已尝试,并保留返回结果或执行错误。仅运行 `tiana version` 只完成第 1 步。
20
+ CLI 与 Skills 各自独立比较本包的 npm 最新正式版。下面的版本检查与安装只访问公共包仓库,不需要 Tiana 登录,不操作 Tiana 云端资源;用户要求暂不登录或不操作云端资源时仍执行。用户明确要求离线、禁止联网或禁止安装时遵从该限制。
23
21
 
24
- 五个技能共享这份实际调用记录;后续轮次、重复加载或切换技能复用记录,失败也不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。
22
+ 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,自动安装 npm latest 正式版并重新核验。
23
+ 2. CLI 满足最低版本后,从本会话实际加载的 SKILL.md 的 `metadata.version` 取得 `SKILLS_VERSION`,在同一次 shell 调用中赋值并**实际执行** `tiana version check --skills-version "$SKILLS_VERSION" --json`。这一步检查是否有更新版本。
24
+ 3. `updates` 中 CLI 或 Skills 有新正式版时,**自动安装各项实际返回的 `latest_version`,无需再次询问**;`should_notify=false` 也执行。Skills 按新版包完整安装,覆盖已有技能并补齐新增技能。各连接器初始版本仅用于分发,后续更新独立于连接器发版;安装目标及重载按[更新流程](../tiana/references/getting-started.md#更新),连接器内使用时再读其中链接的宿主说明。
25
+ 4. 在对话中简短报告实际 CLI/Skills 版本、检查状态与更新结果(包括新增技能及是否需要重载);检查不可用时明确说明未能确认是否有新版,更新失败时说明实际错误。
25
26
 
26
- 仅在 `should_notify=true` 时简短提醒并询问是否升级;用户选择稍后或检查不可用时继续原任务。CLI 仍管理检查缓存和共同的 24 小时提醒额度。升级及重载见[开始使用](../tiana/references/getting-started.md#更新)。
27
+ 实际发起检查命令后才记录已尝试,保留检查结果或执行错误,以及两个包的安装与核验结果。各 Tiana 技能共享这份记录;后续轮次、重复加载或切换技能复用记录,每个包失败后本会话不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。仅运行 `tiana version` 只完成第 1 步。
28
+
29
+ CLI 仍管理检查缓存和共同的 24 小时提醒额度;该额度不限制自动更新或本会话首次结果报告。更新核验完成后继续原任务;失败时按更新流程判断可否继续。
27
30
 
28
31
  ## 实例与仓库
29
32
 
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: tiana-secrets
3
+ description: 管理 Tiana 用户密钥库:初始化、列出密钥名称和当前版本号、写入与删除密钥。函数参数引用密钥时配合 tiana-function;不提供密钥明文读取或导出。
4
+ license: Apache-2.0
5
+ metadata:
6
+ author: Tiana Cloud
7
+ version: "1.0.13"
8
+ parent: tiana
9
+ source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana-secrets
10
+ ---
11
+
12
+ # Tiana Secrets
13
+
14
+ 安装、登录、环境选择和本会话的 CLI/Skills 更新检查复用 [Tiana](../tiana/SKILL.md)。执行前核实 `tiana secrets --help` 包含 init、list、set、remove;若正式 CLI 尚未提供,说明配套能力未发布,使用用户已指定的候选版本或等待配套发布,不猜造其他访问方式。
15
+
16
+ ## 初始化与列表
17
+
18
+ ```sh
19
+ tiana secrets init --json
20
+ tiana secrets list --keyword database --page-size 50 --json
21
+ ```
22
+
23
+ 每个用户一个密钥库。init 复用已有实例及创建任务,只占一个实例名额;已有实例停用时不会自动启用。accepted 仅表示创建已受理,保留 instance_id、job_id 及实际状态。失败时使用 Console 原任务的重试入口;结果未知时再次 init 查询同一实例,不创建替代实例。
24
+
25
+ list 只返回名称与当前版本号,支持任意位置包含关键词。需要下一页时将返回的 next_cursor 原样传给 `--after`。只查询当前任务需要的页面,不把没有结果误认为未启用。
26
+
27
+ ## 写入与删除
28
+
29
+ ```sh
30
+ tiana secrets set production/database/password --file /private/input/secret.txt --json
31
+ tiana secrets remove production/database/password --force --json
32
+ ```
33
+
34
+ Set 的值从用户指定文件或 `--stdin` 输入,保留空字符串、空格和换行。不要把值放入命令参数、源码、对话或日志。使用运行时管道传递标准输入,避免包含值的 shell 字面量。自行创建的输入临时文件放在 Git 外、仅当前用户可读写,完成后删除;用户原文件保持原样。
35
+
36
+ Set 直接写入,不先读取密钥。新 key 从 v1 开始,值变化则版本号增加,同值不变;只保留当前值。Remove 删除整个 key,重新创建从 v1 开始。`--force` 用于已确认的删除意图;交互终端可省略并确认提示。
37
+
38
+ 仅根据返回的 key、version、changed、删除结果或 List 元数据报告操作。失败和未知结果不要自动重复写入;先核对状态,不能以版本变化证明密钥值内容。普通输出、JSON、错误、诊断都不回显密钥值。
39
+
40
+ ## 函数引用
41
+
42
+ 写入后,把 key 交给 [Tiana Function](../tiana-function/SKILL.md)。函数参数使用 `{"kind":"secret","value":"production/database/password"}`,value 是引用名称,不是密钥明文;函数执行首次读取成功后缓存,下次冷启动读取当前值。
43
+
44
+ 本技能不提供 Get、明文回显或导出,也不通过 curl、SDK 或函数接口绕过 CLI 读取明文。需要人工查看时,引导用户到 Console 输入安全口令自行操作。平台 HashiCorp Vault 运维不属于本技能。
@@ -4,7 +4,7 @@ description: 查询 Tiana SQLite 表结构、执行 SQL、选择数据库分支
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Tiana Cloud
7
- version: "1.0.11"
7
+ version: "1.0.13"
8
8
  parent: tiana
9
9
  source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana-sqlite
10
10
  ---
@@ -17,13 +17,16 @@ metadata:
17
17
 
18
18
  **本会话首次使用任一 Tiana 技能时,先完成以下步骤,再开始登录、查询模板或操作应用:**
19
19
 
20
- 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,先完成安装或经用户确认的升级。
21
- 2. CLI 满足最低版本后,**仍须实际执行** `tiana version check --skills-version 1.0.11 --json`;版本号取实际加载的 metadata.version。这一步检查是否有更新版本。
22
- 3. 实际发起检查命令后,才在会话中记为已尝试,并保留返回结果或执行错误。仅运行 `tiana version` 只完成第 1 步。
20
+ CLI 与 Skills 各自独立比较本包的 npm 最新正式版。下面的版本检查与安装只访问公共包仓库,不需要 Tiana 登录,不操作 Tiana 云端资源;用户要求暂不登录或不操作云端资源时仍执行。用户明确要求离线、禁止联网或禁止安装时遵从该限制。
23
21
 
24
- 五个技能共享这份实际调用记录;后续轮次、重复加载或切换技能复用记录,失败也不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。
22
+ 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,自动安装 npm latest 正式版并重新核验。
23
+ 2. CLI 满足最低版本后,从本会话实际加载的 SKILL.md 的 `metadata.version` 取得 `SKILLS_VERSION`,在同一次 shell 调用中赋值并**实际执行** `tiana version check --skills-version "$SKILLS_VERSION" --json`。这一步检查是否有更新版本。
24
+ 3. `updates` 中 CLI 或 Skills 有新正式版时,**自动安装各项实际返回的 `latest_version`,无需再次询问**;`should_notify=false` 也执行。Skills 按新版包完整安装,覆盖已有技能并补齐新增技能。各连接器初始版本仅用于分发,后续更新独立于连接器发版;安装目标及重载按[更新流程](../tiana/references/getting-started.md#更新),连接器内使用时再读其中链接的宿主说明。
25
+ 4. 在对话中简短报告实际 CLI/Skills 版本、检查状态与更新结果(包括新增技能及是否需要重载);检查不可用时明确说明未能确认是否有新版,更新失败时说明实际错误。
25
26
 
26
- 仅在 `should_notify=true` 时简短提醒并询问是否升级;用户选择稍后或检查不可用时继续原任务。CLI 仍管理检查缓存和共同的 24 小时提醒额度。升级及重载见[开始使用](../tiana/references/getting-started.md#更新)。
27
+ 实际发起检查命令后才记录已尝试,保留检查结果或执行错误,以及两个包的安装与核验结果。各 Tiana 技能共享这份记录;后续轮次、重复加载或切换技能复用记录,每个包失败后本会话不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。仅运行 `tiana version` 只完成第 1 步。
28
+
29
+ CLI 仍管理检查缓存和共同的 24 小时提醒额度;该额度不限制自动更新或本会话首次结果报告。更新核验完成后继续原任务;失败时按更新流程判断可否继续。
27
30
 
28
31
  ## 查询与命令行
29
32
 
@@ -4,7 +4,7 @@ description: 使用 Tiana 创建、修改、预览和发布 Web 应用。用户
4
4
  license: Apache-2.0
5
5
  metadata:
6
6
  author: Tiana Cloud
7
- version: "1.0.11"
7
+ version: "1.0.13"
8
8
  parent: tiana
9
9
  source: https://github.com/tianacloud/agent-skills/tree/main/skills/tiana-web
10
10
  ---
@@ -17,13 +17,16 @@ metadata:
17
17
 
18
18
  **本会话首次使用任一 Tiana 技能时,先完成以下步骤,再开始登录、查询模板或操作应用:**
19
19
 
20
- 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,先完成安装或经用户确认的升级。
21
- 2. CLI 满足最低版本后,**仍须实际执行** `tiana version check --skills-version 1.0.11 --json`;版本号取实际加载的 metadata.version。这一步检查是否有更新版本。
22
- 3. 实际发起检查命令后,才在会话中记为已尝试,并保留返回结果或执行错误。仅运行 `tiana version` 只完成第 1 步。
20
+ CLI 与 Skills 各自独立比较本包的 npm 最新正式版。下面的版本检查与安装只访问公共包仓库,不需要 Tiana 登录,不操作 Tiana 云端资源;用户要求暂不登录或不操作云端资源时仍执行。用户明确要求离线、禁止联网或禁止安装时遵从该限制。
23
21
 
24
- 五个技能共享这份实际调用记录;后续轮次、重复加载或切换技能复用记录,失败也不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。
22
+ 1. 执行 `tiana version`,按[开始使用](../tiana/references/getting-started.md)核验最低版本;缺少 CLI 或版本过低时,自动安装 npm latest 正式版并重新核验。
23
+ 2. CLI 满足最低版本后,从本会话实际加载的 SKILL.md 的 `metadata.version` 取得 `SKILLS_VERSION`,在同一次 shell 调用中赋值并**实际执行** `tiana version check --skills-version "$SKILLS_VERSION" --json`。这一步检查是否有更新版本。
24
+ 3. `updates` 中 CLI 或 Skills 有新正式版时,**自动安装各项实际返回的 `latest_version`,无需再次询问**;`should_notify=false` 也执行。Skills 按新版包完整安装,覆盖已有技能并补齐新增技能。各连接器初始版本仅用于分发,后续更新独立于连接器发版;安装目标及重载按[更新流程](../tiana/references/getting-started.md#更新),连接器内使用时再读其中链接的宿主说明。
25
+ 4. 在对话中简短报告实际 CLI/Skills 版本、检查状态与更新结果(包括新增技能及是否需要重载);检查不可用时明确说明未能确认是否有新版,更新失败时说明实际错误。
25
26
 
26
- 仅在 `should_notify=true` 时简短提醒并询问是否升级;用户选择稍后或检查不可用时继续原任务。CLI 仍管理检查缓存和共同的 24 小时提醒额度。升级及重载见[开始使用](../tiana/references/getting-started.md#更新)。
27
+ 实际发起检查命令后才记录已尝试,保留检查结果或执行错误,以及两个包的安装与核验结果。各 Tiana 技能共享这份记录;后续轮次、重复加载或切换技能复用记录,每个包失败后本会话不自动重试。上下文压缩或任务交接时保留记录,新会话重新检查。仅运行 `tiana version` 只完成第 1 步。
28
+
29
+ CLI 仍管理检查缓存和共同的 24 小时提醒额度;该额度不限制自动更新或本会话首次结果报告。更新核验完成后继续原任务;失败时按更新流程判断可否继续。
27
30
 
28
31
  ## 数据与素材存储
29
32