opencode-metrics-plugin 0.3.0 → 0.3.1
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/CHANGELOG.md +5 -1
- package/README.md +8 -12
- package/dist/metrics/upload/types.d.ts +1 -1
- package/dist/metrics/upload/uploadManager.js +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.3.
|
|
3
|
+
## 0.3.1(2026-09-10)
|
|
4
|
+
|
|
5
|
+
- 上传总开关 `upload.enabled` 缺省改为 true:插件装上即上传(包内 AGC 凭证),`false` 显式关闭。
|
|
6
|
+
|
|
7
|
+
## 0.3.0(2026-09-10)
|
|
4
8
|
|
|
5
9
|
- 新增会话产物上传:`git commit` / 会话结束自动打包(快照 + 事件日志 + 工作区产物)上传 AGC 云存储,安卓工程自动剔除,失败指数退避重试。
|
|
6
10
|
- 新增 checkpoint 实时落盘(默认 2s 冷却),会话中途退出不再丢指标。
|
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
- **开箱即用**:宿主只需在 `opencode.json` 加一行,无需任何配置
|
|
6
6
|
- **实时落盘**:会话进行中每 2s 增量写盘,中途退出不丢数据
|
|
7
|
-
-
|
|
7
|
+
- **开箱即传**:上传默认开启(包内 AGC 凭证),`git commit` / 会话结束自动打包上传,安卓源码工程自动剔除,`upload.enabled: false` 可关
|
|
8
8
|
- **独立配置文件**:`.opencode/opencode-metrics.json(.jsonc)` 支持注释,存在即完全接管内联配置
|
|
9
|
-
- **零打扰**:不修改工作区、不执行 clean
|
|
9
|
+
- **零打扰**:不修改工作区、不执行 clean
|
|
10
10
|
|
|
11
11
|
## 快速开始
|
|
12
12
|
|
|
@@ -18,23 +18,19 @@
|
|
|
18
18
|
{ "plugin": ["opencode-metrics-plugin"] }
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
|
|
21
|
+
仅此一步即完成指标采集与产物上传——上传默认开启,使用包内 AGC 凭证,无需其他配置。
|
|
22
22
|
|
|
23
23
|
### 第 2 步(可选):独立配置文件
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
需要自定义上传行为或关闭上传时,在项目 `.opencode/` 目录下创建 `opencode-metrics.json` 或 `opencode-metrics.jsonc`(支持注释与尾逗号)。文件存在时**完全接管**内联第二参:
|
|
26
26
|
|
|
27
27
|
```jsonc
|
|
28
|
-
// .opencode/opencode-metrics.jsonc ——
|
|
28
|
+
// .opencode/opencode-metrics.jsonc —— 关闭上传示例
|
|
29
29
|
{
|
|
30
|
-
"upload": {
|
|
31
|
-
"enabled": true
|
|
32
|
-
}
|
|
30
|
+
"upload": { "enabled": false }
|
|
33
31
|
}
|
|
34
32
|
```
|
|
35
33
|
|
|
36
|
-
上传开启后默认使用包内 AGC 凭证,无需额外配置。
|
|
37
|
-
|
|
38
34
|
### 第 3 步(可选):验证
|
|
39
35
|
|
|
40
36
|
- 指标:会话进行几轮后,查看输出目录(见下)出现 `<sessionId>.json` 与 `events/<sessionId>.log`
|
|
@@ -58,7 +54,7 @@
|
|
|
58
54
|
|
|
59
55
|
## 产物上传
|
|
60
56
|
|
|
61
|
-
|
|
57
|
+
默认开启(`upload.enabled: false` 可关):
|
|
62
58
|
|
|
63
59
|
- **触发场景**:bash 执行 `git commit`(label=`git`)、会话结束/插件退出(label=`session-end`);可自定义场景(命令正则或事件名)
|
|
64
60
|
- **打包内容**:时点快照 JSON + 事件日志(恒含)+ 会话动过的工作区产物根(鸿蒙工程标记探测,≤3 个)
|
|
@@ -93,7 +89,7 @@
|
|
|
93
89
|
|
|
94
90
|
| 选项 | 类型 | 默认 | 说明 |
|
|
95
91
|
|---|---|---|---|
|
|
96
|
-
| `upload.enabled` | boolean | `
|
|
92
|
+
| `upload.enabled` | boolean | `true` | 上传总开关;`false` 显式关闭 |
|
|
97
93
|
| `upload.uploader.agcConfigPath` | string | 包内凭证 | `agc-apiclient.json` 绝对路径(client_id/secret/project_id/region/bucket) |
|
|
98
94
|
| `upload.scenarios` | object | 内置两场景 | 按 key 合并:`enabled:false` 禁用内置;自定义场景提供 `commands`(正则)或 `events`(事件名)与 `label`(进文件名) |
|
|
99
95
|
| `upload.appendArtifacts` | array | — | 追加产物规则:`path`(绝对或相对会话工作目录)+ `matchBy`(`session-activity` 会话动过才纳入 / `existence` 存在即纳入)+ `dirMarkers`/`fileMarkers` |
|
|
@@ -39,7 +39,7 @@ export interface UploadRetryConfig {
|
|
|
39
39
|
}
|
|
40
40
|
/** opencode.json 的 upload 配置整块(§13.8) */
|
|
41
41
|
export interface UploadConfig {
|
|
42
|
-
/** 上传总开关,缺省 false
|
|
42
|
+
/** 上传总开关,缺省 true(装上即上传);false 显式关闭 */
|
|
43
43
|
enabled?: boolean;
|
|
44
44
|
uploader?: UploaderConfig;
|
|
45
45
|
scenarios?: Record<string, ScenarioConfig>;
|
|
@@ -15,7 +15,7 @@ import { MAX_ROOTS } from "./types.js";
|
|
|
15
15
|
*/
|
|
16
16
|
export function createUploadManager(options) {
|
|
17
17
|
const config = options.config ?? {};
|
|
18
|
-
if (config.enabled
|
|
18
|
+
if (config.enabled === false)
|
|
19
19
|
return null;
|
|
20
20
|
const credentialsResult = loadAgcCredentials(config.uploader?.agcConfigPath ?? defaultAgcConfigPath());
|
|
21
21
|
if (!credentialsResult.ok) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "opencode-metrics-plugin",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "opencode plugin: auto-records every session's metrics (tokens/rounds/steps/sub-agents/hvigor builds) to snapshot JSON. Zero DB, zero config. Pair with session-viewer for visualization.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|