@numa-tech/numa 1.20.4 → 1.20.5

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.
Files changed (39) hide show
  1. package/README.md +16 -1
  2. package/dist/command-catalog.js +9 -1
  3. package/dist/command-catalog.js.map +1 -1
  4. package/dist/mcp/catalog.js +3 -0
  5. package/dist/mcp/catalog.js.map +1 -1
  6. package/dist/oss/commands.js +20 -0
  7. package/dist/oss/commands.js.map +1 -1
  8. package/dist/oss/download-links.d.ts +28 -0
  9. package/dist/oss/download-links.js +124 -0
  10. package/dist/oss/download-links.js.map +1 -0
  11. package/dist/oss/errors.js +1 -1
  12. package/dist/oss/errors.js.map +1 -1
  13. package/dist/oss/schemas.d.ts +15 -0
  14. package/dist/oss/schemas.js +2 -0
  15. package/dist/oss/schemas.js.map +1 -1
  16. package/dist/oss/tools.js +18 -0
  17. package/dist/oss/tools.js.map +1 -1
  18. package/dist/oss/transfers.d.ts +2 -0
  19. package/dist/oss/transfers.js +27 -0
  20. package/dist/oss/transfers.js.map +1 -1
  21. package/dist/oss/web-page.js +56 -2
  22. package/dist/oss/web-page.js.map +1 -1
  23. package/dist/oss/web.js +26 -0
  24. package/dist/oss/web.js.map +1 -1
  25. package/dist/tasks/oss-query.d.ts +1 -1
  26. package/dist/tasks/oss-query.js +69 -18
  27. package/dist/tasks/oss-query.js.map +1 -1
  28. package/dist/tasks/runtime.d.ts +2 -2
  29. package/dist/tasks/runtime.js +1 -1
  30. package/dist/tasks/runtime.js.map +1 -1
  31. package/dist/tasks/tools.js +1 -1
  32. package/dist/tasks/tools.js.map +1 -1
  33. package/docs/agent-tasks.md +8 -2
  34. package/package.json +5 -5
  35. package/skills/numa-oss-access/SKILL.md +17 -5
  36. package/skills/numa-oss-access/evals/evals.json +36 -0
  37. package/skills/numa-oss-access/numa-skill.json +1 -1
  38. package/skills/numa-oss-access/references/download-links.md +42 -0
  39. package/skills/numa-oss-access/references/search-and-mcp.md +8 -3
@@ -0,0 +1,42 @@
1
+ # 短效下载链接
2
+
3
+ 用户明确要求为选中的文件或文件夹生成临时下载链接时使用。本操作把限时下载能力交给链接持有者;不把普通查询或本地下载请求解释为生成分享链接的授权。
4
+
5
+ 沿用用户选择的身份和明确 Grant,不自动切换授权。单文件需要 `oss:GetObject`;文件夹还需要 `oss:ListObjects`,递归展开为逐文件链接清单,不打 ZIP、不写临时对象。
6
+
7
+ ## 已连接 MCP
8
+
9
+ 使用实际已安装的 `numa_oss_download_links`,例如:
10
+
11
+ ```json
12
+ {
13
+ "grant_id": 123,
14
+ "entries": [
15
+ { "key": "reports/weekly.pdf", "directory": false },
16
+ { "key": "reports/attachments/", "directory": true }
17
+ ],
18
+ "expires": 300,
19
+ "confirmed": true
20
+ }
21
+ ```
22
+
23
+ 替换真实 Grant 和用户选定路径。`confirmed:true` 表示用户已请求生成这些目标的链接,无需重复询问许可。缺少此工具时报告版本/模块缺口;已连接 MCP 不自动改走另一个身份的终端。
24
+
25
+ ## 已选定 CLI 入口
26
+
27
+ ```sh
28
+ npx -y @numa-tech/numa@latest oss download-link GRANT_ID EXACT_FILE_KEY --expires 300 --json
29
+ npx -y @numa-tech/numa@latest oss download-link GRANT_ID FOLDER_PREFIX/ --recursive --expires 300 --json
30
+ ```
31
+
32
+ 沿用当前任务固定版本;上例 latest 不是发布状态承诺。文件夹必须末尾 `/` 并显式 `--recursive`。CLI 一次接受一个目标,网页和 MCP 可以多选。
33
+
34
+ ## 数量、时效与结果
35
+
36
+ - **硬上限 100 个文件**,包含递归子文件,重叠选择去重。发现超过上限即拒绝,说明未交付链接清单,提示缩小范围或使用批量下载;不得自动拆成多批绕过上限。极多空目录或异常分页也会触发有界扫描限制。
37
+ - 全部对象 HEAD 权限检查通过后才签名。任一失败就报告错误,不宣称其余目标已有完整可用清单。
38
+ - 默认 300 秒,允许 60–3600 秒,实际不得超过 STS 剩余有效期并留安全余量;以每条 `expiresAt` 为准。续期不会延长旧链接,不能保证所有文件在有效期内下载完。
39
+ - 成功返回 `data.fileCount`、`data.links`、整体最早 `expiresAt`。向用户交付所需链接、文件名和实际到期时间,说明持有者可下载。只在用户要求的输出中交付,不自动发消息或持久化到知识库、日志、Skill 或培训材料。
40
+ - 显式生成链接的结果有意保留完整 URL;其他工具的错误、凭据和普通元数据仍脱敏。不要索取或打印 AccessKeySecret、完整 STS 响应,也不要改写签名参数。
41
+
42
+ 网页:选中文件/文件夹 →「临时下载链接」,或右键同名菜单;选择时效并生成后可复制单条或全部链接。关闭弹窗清除页面中的链接内容。
@@ -1,6 +1,6 @@
1
1
  # OSS 列举、搜索与 MCP
2
2
 
3
- 正常查询优先调用主 Skill 的 `numa_oss_query` / `task run oss.query`,直接携带下述筛选条件,由执行器解析唯一 Grant。低层 CLI 示例需要 CLI >=1.15.0;仅在初始化、诊断或用户选择兼容路径时核对帮助与工具清单。所有例子的 Grant 和 prefix 必须来自当前身份的真实授权,不能原样执行占位值。
3
+ 正常查询优先调用主 Skill 的 `numa_oss_query` / `task run oss.query`,直接携带下述筛选条件,由执行器按主 Skill 定义的五级优先级选择 Grant。低层 CLI 示例需要 CLI >=1.15.0;仅在初始化、诊断或用户选择兼容路径时核对帮助与工具清单。所有例子的 Grant 和 prefix 必须来自当前身份的真实授权,不能原样执行占位值。
4
4
 
5
5
  ## 目录和分页
6
6
 
@@ -50,15 +50,20 @@ prefix/delimiter 由 OSS 服务端执行,其余条件属于 CLI 有界扫描
50
50
 
51
51
  | 工具 | 用途 |
52
52
  | --- | --- |
53
- | `numa_oss_query` | 新任务入口:精确 bucket/prefix 或 grant_id,内部唯一 Grant 解析与有界搜索 |
53
+ | `numa_oss_query` | 新任务入口:精确 bucket/prefix 或 grant_id,内部按优先级选择 Grant 与有界搜索 |
54
54
  | `numa_oss_grants` | 解析当前身份可用的精确 Grant |
55
55
  | `numa_oss_list` | 单页 prefix/目录列表,marker 延续 |
56
56
  | `numa_oss_search` | 与 CLI 相同的筛选、扫描和排序语义 |
57
57
  | `numa_oss_stat` | 标准头与自定义元数据 |
58
+ | `numa_oss_download_links` | 用户要求时生成短效链接,文件夹展开清单;硬上限 100 个文件 |
58
59
  | `numa_oss_download` | 写入服务机器的新文件,`output_path` |
59
60
  | `numa_oss_upload` | 读取服务机器的 `file_path` 并上传 |
60
61
  | `numa_oss_delete` | 删除精确对象 |
61
62
 
62
- 低层 MCP 使用 `grant_id`;新任务 query 还允许精确 `bucket` + `prefix`,歧义返回 `needs_input`。搜索参数为 `scan_limit`、`directories_only`、`modified_after` 等 snake_case;`fields` 是数组,`meta` 是 KEY=VALUE 数组。禁止把 CLI 参数带连字符原样当成 MCP 字段。
63
+ 低层 MCP 使用 `grant_id`;新任务 query 还允许精确 `bucket` + `prefix`,多个匹配按 `accessPriority` 从高到低尝试,同级按 Grant ID 升序;候选超过 100 项返回 `needs_input`。搜索参数为 `scan_limit`、`directories_only`、`modified_after` 等 snake_case;`fields` 是数组,`meta` 是 KEY=VALUE 数组。禁止把 CLI 参数带连字符原样当成 MCP 字段。
64
+
65
+ 成功结果的 `priority_advice` 用于完成查询后询问用户是否调整优先级;按主 Skill 的“多个匹配授权”规则展示,不额外探测授权或阻塞本次结果。
66
+
67
+ 优先级由 DevOps Platform 的授权编辑页面设置,API 字段为 `accessPriority`;查询输入不接受临时覆盖优先级。旧平台未返回此字段时视为 `NORMAL`。这项自动选择只作用于 query,低层工具仍使用明确的 `grant_id`。
63
68
 
64
69
  下载、上传和删除要求 `confirmed:true`;上传覆盖另需 `overwrite:true`。授权、范围和未知结果处理与主 Skill 相同。不得通过工具调用测试消息发送或对象写入来验证连接;没有用户授权就只核对工具清单和必要只读查询。