重构会话管理,简化上下文存储逻辑

This commit is contained in:
2026-06-03 17:14:55 +08:00
parent 76d4b510f4
commit 04ded0ceb0
19 changed files with 420 additions and 235 deletions
+15 -7
View File
@@ -17,7 +17,7 @@ description: tjwater-cli 命令行工具使用说明,涵盖命令发现、输
{
"reason": "说明调用原因",
"command": "project list",
"timeout": 60
"timeout": 120
}
```
@@ -25,7 +25,7 @@ description: tjwater-cli 命令行工具使用说明,涵盖命令发现、输
|------|------|------|------|
| `reason` | string | 是 | 调用原因 |
| `command` | string | 是 | CLI 子命令(不含二进制路径和 `--auth-context` |
| `timeout` | number | 否 | 超时秒数,默认 60,大结果集建议 300+ |
| `timeout` | number | 否 | 超时秒数,默认 120,大结果集建议 300+ |
认证上下文(token、server、project、network)由内部桥接自动注入,无需手动传参。
@@ -117,6 +117,7 @@ tjwater-cli help COMMAND → 子命令与参数详情
4. **管道串联** — workflow 脚本中用 shell pipe 串联多个 CLI 命令,减少 `subprocess.run` 次数
5. **结果验证** — 始终检查 `ok` 字段,失败时先处理错误码再重试
6. **大结果集** — 优先过滤/采样,不要一次性拉取全部数据
7. **模拟时长控制** — 模拟(`simulation`)或方案模拟的 `--duration` 不宜过长,建议每次仿真时间跨度控制在一小时以内,避免计算耗时过长或结果数据量过大
## 示例
@@ -147,18 +148,25 @@ tjwater-cli help COMMAND → 子命令与参数详情
### 触发仿真并获取结果
`simulation run` 仅接受 `--start-time`RFC3339,必填)和 `--duration`(整数分钟,必填)。结果需从 `data timeseries` 获取
通常系统会自动跑仿真,建议**先尝试获取结果**,若无数据再触发仿真
```json
// step 1: 触发仿真 (duration 为分钟数)
// step 1: 先尝试获取仿真结果
{
"reason": "触发24小时水力仿真",
"command": "simulation run --start-time 2026-06-03T08:00:00+08:00 --duration 1440"
"reason": "尝试获取节点 J-001 09:00 时刻的仿真压力",
"command": "data timeseries realtime simulation-by-id-time --id J-001 --type junction --time 2026-06-03T09:00:00+08:00"
}
// step 2: 按节点和时间获取仿真结果
// step 2: 若 step 1 无数据(ok: false 或 data 为空),触发仿真
{
"reason": "无已有仿真结果,触发1小时水力仿真",
"command": "simulation run --start-time 2026-06-03T08:00:00+08:00 --duration 60"
}
// step 3: 仿真完成后,再次获取结果(同 step 1)
{
"reason": "获取仿真结果中节点 J-001 09:00 时刻的压力",
"command": "data timeseries realtime simulation-by-id-time --id J-001 --type junction --time 2026-06-03T09:00:00+08:00"
}
```
`simulation run` 仅接受 `--start-time`RFC3339,必填)和 `--duration`(整数分钟,必填)。