@aicloud360/360-aidrive 0.8.28

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/package.json ADDED
@@ -0,0 +1,118 @@
1
+ {
2
+ "name": "@aicloud360/360-aidrive",
3
+ "version": "0.8.28",
4
+ "main": "build/index.js",
5
+ "type": "module",
6
+ "bin": {
7
+ "360aidrive": "build/cli.js"
8
+ },
9
+ "cli": {
10
+ "name": "360aidrive",
11
+ "description": "360 AI Drive CLI - 面向 AI Agent 的云存储操作工具"
12
+ },
13
+ "scripts": {
14
+ "start": "echo \"start\" && node build/index.js --sse",
15
+ "clean": "rm -rf build",
16
+ "build:ts": "tsc && node -e \"require('fs').chmodSync('build/index.js', '755')\"",
17
+ "build": "rollup -c && node scripts/postbuild.js",
18
+ "build:dev": "rollup -c --environment NODE_ENV:development && node scripts/postbuild.js",
19
+ "build:prod": "rollup -c --environment NODE_ENV:production && node scripts/postbuild.js",
20
+ "watch": "rollup -c -w",
21
+ "prepublishOnly": "npm run build:prod",
22
+ "skill:convert": "npm run version:sync && node skill-converter/scripts/converter.js",
23
+ "skill:convert:tool": "node skill-converter/scripts/converter.js --tool",
24
+ "skill:list": "node skill-converter/scripts/list-tools.js",
25
+ "skill:validate": "node skill-converter/scripts/validate.js",
26
+ "skill:test": "cd skill-output && python3 executor.py user-info",
27
+ "version:sync": "node skill-converter/scripts/sync-version.js",
28
+ "release": "standard-version && npm run version:sync && npm run skill:convert",
29
+ "release:patch": "standard-version --release-as patch && npm run version:sync && npm run skill:convert",
30
+ "release:minor": "standard-version --release-as minor && npm run version:sync && npm run skill:convert",
31
+ "release:major": "standard-version --release-as major && npm run version:sync && npm run skill:convert",
32
+ "skill:output": "npm run skill:convert && npm run skill:package",
33
+ "skill:package": "node skill-converter/scripts/package.js",
34
+ "skill:package:no-version": "node skill-converter/scripts/package.js --no-version",
35
+ "skill-cli:package": "node scripts/package-skill-cli.js",
36
+ "skill-cli:package:no-version": "node scripts/package-skill-cli.js --no-version",
37
+ "skill:deploy": "node skill-converter/scripts/deploy-skill.js",
38
+ "skill:deploy:manual": "node skill-converter/scripts/deploy-skill.js --manual",
39
+ "skill-cli:deploy": "node scripts/deploy-skill-cli.js",
40
+ "skill-cli:deploy:manual": "node scripts/deploy-skill-cli.js --manual",
41
+ "publish:mcp": "node scripts/publish-pkg.js mcp",
42
+ "publish:cli": "node scripts/publish-pkg.js cli",
43
+ "publish:aidrive": "node scripts/publish-pkg.js aidrive",
44
+ "test:cli-batch": "bash tests/test-cli-batch-real.sh",
45
+ "test:cli-full": "bash tests/test-cli-full.sh",
46
+ "test:cli-e2e": "bash tests/test-cli-e2e.sh",
47
+ "auto-backup-monitor": "node tools/auto-backup-monitor/server.mjs --open"
48
+ },
49
+ "files": [
50
+ "build",
51
+ "tools/auto-backup-monitor"
52
+ ],
53
+ "keywords": [
54
+ "mcp",
55
+ "modelcontextprotocol",
56
+ "ecs",
57
+ "uploader",
58
+ "cloud storage",
59
+ "360",
60
+ "file manager",
61
+ "cli",
62
+ "ai-agent"
63
+ ],
64
+ "author": "@aicloud360",
65
+ "license": "Apache-2.0",
66
+ "description": "360 AI Drive CLI",
67
+ "homepage": "https://github.com/Qihoo360/ecs_mcp_server#readme",
68
+ "repository": {
69
+ "type": "git",
70
+ "url": "git+https://github.com/Qihoo360/ecs_mcp_server.git"
71
+ },
72
+ "bugs": {
73
+ "url": "https://github.com/Qihoo360/ecs_mcp_server/issues"
74
+ },
75
+ "devDependencies": {
76
+ "@rollup/plugin-commonjs": "^25.0.7",
77
+ "@rollup/plugin-json": "^6.1.0",
78
+ "@rollup/plugin-node-resolve": "^15.2.3",
79
+ "@rollup/plugin-terser": "^0.4.4",
80
+ "@rollup/plugin-typescript": "^11.1.6",
81
+ "@types/better-sqlite3": "^7.6.13",
82
+ "@types/jimp": "^0.2.1",
83
+ "@types/node": "^22.10.0",
84
+ "@types/qrcode-terminal": "^0.12.2",
85
+ "@types/uuid": "^9.0.8",
86
+ "rollup": "^4.12.0",
87
+ "rollup-plugin-delete": "^2.0.0",
88
+ "standard-version": "^9.5.0",
89
+ "tslib": "^2.8.1",
90
+ "typescript": "^5.7.2"
91
+ },
92
+ "dependencies": {
93
+ "@aicloud360/sec-sdk-node": "^0.1.9",
94
+ "@modelcontextprotocol/sdk": "1.15.0",
95
+ "@types/cors": "^2.8.18",
96
+ "@types/express": "^5.0.1",
97
+ "better-sqlite3": "^12.9.0",
98
+ "chokidar": "^4.0.3",
99
+ "commander": "^14.0.3",
100
+ "cors": "^2.8.5",
101
+ "dotenv": "^16.5.0",
102
+ "express": "^5.1.0",
103
+ "iconv-lite": "^0.6.3",
104
+ "jimp": "^1.6.1",
105
+ "jsqr": "^1.4.0",
106
+ "pino": "^9.5.0",
107
+ "pino-pretty": "^11.2.2",
108
+ "qrcode-terminal": "^0.12.0",
109
+ "uuid": "^9.0.1"
110
+ },
111
+ "publishConfig": {
112
+ "access": "public"
113
+ },
114
+ "directories": {
115
+ "doc": "docs",
116
+ "test": "tests"
117
+ }
118
+ }
@@ -0,0 +1,208 @@
1
+ # 自动备份监控页使用说明
2
+
3
+ 这个目录里的工具是一个**独立的本地网页监控工具**,用来读取云盘 CLI 的 `claw-auto-backup` 写出的事件日志,并实时展示(命令名示例:`360disk` 或 `@aicloud360/360-aidrive` 提供的 `360aidrive`):
4
+
5
+ - 监听到文件变化
6
+ - 进入备份队列
7
+ - 开始备份
8
+ - 备份成功 / 失败
9
+ - 单次备份耗时
10
+
11
+ 它**不是** CLI 二进制本身的一部分,而是一个单独启动的本地网页服务。
12
+
13
+ ## 一、使用前提
14
+
15
+ 使用这个监控页前,需要满足两个条件:
16
+
17
+ 1. 本机在 PATH 中已安装可用的云盘 CLI(见上)
18
+ 2. 启动自动备份时,**显式传入** `--event-log <日志路径>`
19
+
20
+ 注意:
21
+
22
+ - 如果不传 `--event-log`,CLI 进程不会写任何监控日志
23
+ - 监控页没有默认日志路径,必须在启动参数里预填,或者打开页面后手动输入
24
+
25
+ ## 二、推荐使用流程
26
+
27
+ ### 1. 启动自动备份,并显式指定事件日志文件
28
+
29
+ 示例:
30
+
31
+ ```bash
32
+ 360disk claw-auto-backup enable \
33
+ --source /private/tmp/auto-backup-src \
34
+ --dest /auto-backup-test/ \
35
+ --event-log /tmp/360disk-claw-auto-backup-events.ndjson
36
+ ```
37
+
38
+ 这里最重要的是:
39
+
40
+ ```bash
41
+ --event-log /tmp/360disk-claw-auto-backup-events.ndjson
42
+ ```
43
+
44
+ 监控页后面也要读取这个同一路径。
45
+
46
+ ### 2. 启动监控页
47
+
48
+ 在仓库根目录执行:
49
+
50
+ ```bash
51
+ node tools/auto-backup-monitor/server.mjs --open
52
+ ```
53
+
54
+ 默认会启动本地网页服务:
55
+
56
+ ```text
57
+ http://127.0.0.1:3210
58
+ ```
59
+
60
+ `--open` 会自动打开浏览器。
61
+
62
+ ### 3. 在页面里填写日志路径
63
+
64
+ 如果你启动监控页时**没有**传 `--event-log`,打开页面后,需要在输入框里填写:
65
+
66
+ ```text
67
+ /tmp/360disk-claw-auto-backup-events.ndjson
68
+ ```
69
+
70
+ 然后点击 `Connect`。
71
+
72
+ 如果启动时已经预填:
73
+
74
+ ```bash
75
+ node tools/auto-backup-monitor/server.mjs \
76
+ --event-log /tmp/360disk-claw-auto-backup-events.ndjson \
77
+ --open
78
+ ```
79
+
80
+ 页面会自动用这个路径连接。
81
+
82
+ ## 三、常用命令
83
+
84
+ ### 启动监控页并自动打开浏览器
85
+
86
+ ```bash
87
+ node tools/auto-backup-monitor/server.mjs --open
88
+ ```
89
+
90
+ ### 启动监控页并预填事件日志路径
91
+
92
+ ```bash
93
+ node tools/auto-backup-monitor/server.mjs \
94
+ --event-log /tmp/360disk-claw-auto-backup-events.ndjson \
95
+ --open
96
+ ```
97
+
98
+ ### 自定义端口
99
+
100
+ ```bash
101
+ node tools/auto-backup-monitor/server.mjs \
102
+ --port 3211 \
103
+ --open
104
+ ```
105
+
106
+ ### 自定义状态文件路径
107
+
108
+ 一般不用传。只有在你确认状态文件不在默认位置时才需要:
109
+
110
+ ```bash
111
+ node tools/auto-backup-monitor/server.mjs \
112
+ --state-file /path/to/claw-auto-backup.json
113
+ ```
114
+
115
+ ## 四、页面能看到什么
116
+
117
+ 页面主要展示两部分:
118
+
119
+ ### 1. Status
120
+
121
+ 显示当前自动备份 watcher 的状态,例如:
122
+
123
+ - 是否启用
124
+ - 是否正在运行
125
+ - PID
126
+ - 最近一次事件时间
127
+ - 最近一次备份时间
128
+ - 最近一次备份结果
129
+
130
+ ### 2. Timeline
131
+
132
+ 显示事件时间线,例如:
133
+
134
+ - `watch_event`
135
+ - `backup_scheduled`
136
+ - `backup_started`
137
+ - `backup_finished`
138
+ - `backup_failed`
139
+
140
+ 如果有失败,页面里会显示失败信息和耗时。
141
+
142
+ ## 五、排查思路
143
+
144
+ ### 情况 1:页面打开了,但没有任何事件
145
+
146
+ 优先检查:
147
+
148
+ 1. 启动 `360disk claw-auto-backup enable` 时有没有传 `--event-log`
149
+ 2. 页面里填的日志路径,和 `--event-log` 的路径是否完全一致
150
+ 3. watcher 是否真的在运行
151
+
152
+ 可以执行:
153
+
154
+ ```bash
155
+ 360disk claw-auto-backup status
156
+ ```
157
+
158
+ ### 情况 2:页面提示“日志读取失败”
159
+
160
+ 常见原因:
161
+
162
+ - 路径写错了
163
+ - 日志文件还没生成
164
+ - 传了一个目录路径,而不是文件路径
165
+ - 当前用户没有读权限
166
+
167
+ ### 情况 3:自动备份有触发,但页面没显示最新事件
168
+
169
+ 建议先确认:
170
+
171
+ ```bash
172
+ 360disk claw-auto-backup status
173
+ ```
174
+
175
+ 然后看你指定的日志文件是否真的有内容:
176
+
177
+ ```bash
178
+ tail -f /tmp/360disk-claw-auto-backup-events.ndjson
179
+ ```
180
+
181
+ 如果 `tail -f` 有新行,而页面没有更新,再检查页面里当前连接的是不是同一个文件。
182
+
183
+ ## 六、发给同事怎么用
184
+
185
+ 如果同事已经有支持 `--event-log` 的新版 `360disk`,你只需要把这个目录发给他:
186
+
187
+ ```text
188
+ tools/auto-backup-monitor/
189
+ ```
190
+
191
+ 他本地执行:
192
+
193
+ ```bash
194
+ node server.mjs --open
195
+ ```
196
+
197
+ 然后:
198
+
199
+ 1. 先用 `360disk claw-auto-backup enable --event-log <path>` 启动自动备份
200
+ 2. 再在网页输入框里填入同一个 `<path>`
201
+ 3. 点击 `Connect`
202
+
203
+ ## 七、注意事项
204
+
205
+ 1. 这个工具目前更适合在**源码仓库环境**里直接运行
206
+ 2. 监控页和 `360disk` 是两个独立进程
207
+ 3. 页面读取的是**事件日志文件**,不是直接连 `360disk` 进程
208
+ 4. 只要日志路径一致,监控页就能工作