session-viewer-plugin 0.1.1 → 0.1.2
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 +48 -62
- package/frontend/dist-ui/index.mjs +1645 -1637
- package/frontend/dist-ui/style.css +1 -1
- package/package.json +1 -1
- package/server/dist/api/sessionApi.js +5 -1
- package/server/dist/bin.js +7 -1
package/README.md
CHANGED
|
@@ -1,90 +1,76 @@
|
|
|
1
1
|
# session-viewer-plugin
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
会话指标查看插件:为 Vue3 + Element Plus 宿主应用提供「本地会话浏览」与「AGC 云端文件管理」页面组件,配套可挂载的服务端路由。
|
|
4
4
|
|
|
5
5
|
- **本地会话**:扫描本机会话快照 JSON,按会话卡片、月度分组、收藏筛选浏览,并提供步骤时间线 / Token / 工具调用等图表的详情页。
|
|
6
|
-
- **云端数据**:管理 AGC
|
|
6
|
+
- **云端数据**:管理 AGC(华为云存储)桶内文件:前缀浏览、全桶模糊搜索(定位 + 剪枝)、下载、重命名、删除、文件夹递归删除、复制下载令牌。
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
完整接入说明见 **[INTEGRATION.md](./INTEGRATION.md)**。
|
|
9
|
+
|
|
10
|
+
## 架构(两种接入形态)
|
|
9
11
|
|
|
10
12
|
```
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
│
|
|
14
|
-
│
|
|
15
|
-
│
|
|
16
|
-
|
|
13
|
+
形态一(推荐):进程内挂载 —— 单进程,零额外部署
|
|
14
|
+
┌───────────────────────────────┐
|
|
15
|
+
│ 宿主服务进程 (:3000) │
|
|
16
|
+
│ 静态页面 + 插件组件(同源fetch) │
|
|
17
|
+
│ createApp() 挂载 /api 路由 ───┼──▶ 本机会话快照目录 / AGC 云存储
|
|
18
|
+
└───────────────────────────────┘
|
|
19
|
+
|
|
20
|
+
形态二(可选):独立伴生服务 —— 分进程部署
|
|
21
|
+
宿主页面 ──baseUrl──▶ session-viewer-plugin bin (:3001) ──▶ 同上数据源
|
|
17
22
|
```
|
|
18
23
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## 快速开始(伴生服务)
|
|
24
|
+
## 快速开始
|
|
22
25
|
|
|
23
26
|
```bash
|
|
24
27
|
npm i session-viewer-plugin
|
|
25
|
-
npx session-viewer-plugin # 默认 http://127.0.0.1:3001
|
|
26
28
|
```
|
|
27
29
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| 变量 | 默认值 | 说明 |
|
|
31
|
-
| --- | --- | --- |
|
|
32
|
-
| `PORT` | `3001` | 监听端口 |
|
|
33
|
-
| `HOST` | `127.0.0.1` | 绑定地址;容器部署需设 `0.0.0.0` |
|
|
34
|
-
| `LOG_DIR` | 内置目录集 | 覆盖扫描目录(单目录;容器部署时配合卷挂载使用) |
|
|
35
|
-
| `AGC_CREDENTIALS_FILE` | - | AGC 凭证 JSON 文件路径(优先级最高) |
|
|
36
|
-
| `AGC_CREDENTIALS_JSON` | - | AGC 凭证内联 JSON 字符串 |
|
|
37
|
-
|
|
38
|
-
### AGC 凭证
|
|
39
|
-
|
|
40
|
-
固定通过项目文件配置,按优先级:**环境变量 > 包内默认文件**。
|
|
30
|
+
**形态一(进程内挂载)**:
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
## 宿主应用集成(Vue3 + Element Plus)
|
|
47
|
-
|
|
48
|
-
```bash
|
|
49
|
-
npm i session-viewer-plugin element-plus @element-plus/icons-vue
|
|
32
|
+
```ts
|
|
33
|
+
// 宿主服务端(Express 或原生 http 均可,详见 INTEGRATION.md §3)
|
|
34
|
+
import { createApp } from 'session-viewer-plugin/server'
|
|
35
|
+
const svApp = createApp() // 未监听的 Express 实例,直接挂载/转发
|
|
50
36
|
```
|
|
51
37
|
|
|
52
38
|
```js
|
|
53
|
-
|
|
54
|
-
import ElementPlus from 'element-plus'
|
|
55
|
-
import 'element-plus/dist/index.css'
|
|
39
|
+
// 宿主前端(同源模式,不传 baseUrl)
|
|
56
40
|
import 'session-viewer-plugin/ui.css'
|
|
57
|
-
import { SessionViewer
|
|
58
|
-
|
|
59
|
-
const app = createApp({
|
|
60
|
-
components: { SessionViewer, CloudFileList },
|
|
61
|
-
template: `
|
|
62
|
-
<SessionViewer base-url="http://127.0.0.1:3001" @select-session="onSelect" />
|
|
63
|
-
`,
|
|
64
|
-
})
|
|
65
|
-
app.use(ElementPlus) // 需注册 v-loading 指令
|
|
66
|
-
app.provide(API_BASE_KEY, 'http://127.0.0.1:3001') // 或统一注入基址,组件可不传 prop
|
|
67
|
-
app.mount('#app')
|
|
41
|
+
import { SessionViewer } from 'session-viewer-plugin/ui'
|
|
68
42
|
```
|
|
69
43
|
|
|
70
|
-
|
|
44
|
+
**形态二(独立服务)**:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
npx session-viewer-plugin # 默认 http://127.0.0.1:3001
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 包导出
|
|
71
51
|
|
|
72
52
|
| 导出 | 说明 |
|
|
73
53
|
| --- | --- |
|
|
74
|
-
| `
|
|
75
|
-
| `
|
|
76
|
-
| `
|
|
77
|
-
| `
|
|
54
|
+
| `session-viewer-plugin/ui` | `SessionViewer` / `SessionDetail` / `CloudFileList` / `API_BASE_KEY` / `setApiBase` 等基址工具 |
|
|
55
|
+
| `session-viewer-plugin/ui.css` | 组件样式 |
|
|
56
|
+
| `session-viewer-plugin/server` | `createApp()` 工厂(未监听的 Express 实例) |
|
|
57
|
+
| `npx session-viewer-plugin` | 独立服务 bin(`PORT` / `HOST` 环境变量) |
|
|
78
58
|
|
|
79
|
-
|
|
59
|
+
宿主前端要求:Vue ≥ 3.4、Element Plus ≥ 2.4(需注册 `v-loading` 指令)。宿主服务端要求:Node ≥ 18。
|
|
80
60
|
|
|
81
|
-
##
|
|
61
|
+
## 环境变量
|
|
82
62
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
63
|
+
| 变量 | 默认值 | 说明 |
|
|
64
|
+
| --- | --- | --- |
|
|
65
|
+
| `LOG_DIR` | 内置目录集 | 会话快照扫描目录(单目录);默认自动探测 hm-plugin-nodejs 与 opencode-metrics-plugin 的标准落盘目录(Linux 为 `~/.local/state/opencode-metrics-plugin/metrics`) |
|
|
66
|
+
| `AGC_CREDENTIALS_FILE` | - | AGC 凭证 JSON 文件路径 |
|
|
67
|
+
| `AGC_CREDENTIALS_JSON` | - | AGC 凭证内联 JSON 字符串 |
|
|
68
|
+
| `PORT` | `3001` | 独立服务监听端口(bin 形态) |
|
|
69
|
+
| `HOST` | `127.0.0.1` | 独立服务绑定地址;容器部署需 `0.0.0.0`(bin 形态) |
|
|
70
|
+
|
|
71
|
+
**样本目录**:默认扫描目录还包含 `<opencode-metrics-plugin 日志根>/samples`(Windows `%LOCALAPPDATA%\opencode-metrics-plugin\Log\samples`,macOS `~/Library/Logs/opencode-metrics-plugin/samples`)。外部/分析样本(他人机器的会话快照)请放入该目录:仅用于可视化查看,插件孤儿补传只扫 metrics 目录本身,不会上传此处文件。服务启动时自动创建该目录。
|
|
72
|
+
|
|
73
|
+
**AGC 凭证**:npm 包不含凭证文件。凭证归属 opencode-metrics-plugin(AGC 桶上传方),运行时通过 `AGC_CREDENTIALS_FILE` / `AGC_CREDENTIALS_JSON` 注入;必填字段 `client_id`、`client_secret`、`project_id`、`bucket_name`,`region` 缺省 `CN`。未配置时本地会话功能不受影响,云端功能返回 503。
|
|
88
74
|
|
|
89
75
|
## 开发
|
|
90
76
|
|
|
@@ -96,6 +82,6 @@ npm run dev # 同时启动后端(:3001)与前端开发壳(:5173)
|
|
|
96
82
|
npm run build # 构建 server/dist 与 frontend/dist-ui
|
|
97
83
|
```
|
|
98
84
|
|
|
99
|
-
- 后端:Express 5 + TypeScript(`server
|
|
85
|
+
- 后端:Express 5 + TypeScript(`server/`),`app.ts` 为应用工厂(bin 与宿主挂载共用)。
|
|
100
86
|
- 前端:Vue 3 + Vite + Element Plus(显式导入);`frontend/src/plugin-entry.js` 为库入口,独立开发壳为 `frontend/src/main.js`。
|
|
101
|
-
- 发布产物:`server/dist
|
|
87
|
+
- 发布产物:`server/dist`(服务端)+ `frontend/dist-ui`(组件库)。
|