From 127aca466f41b62a657798e4bf8157f69b149aab Mon Sep 17 00:00:00 2001 From: Huarch Date: Wed, 29 Apr 2026 15:26:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=20skills=E3=80=81README?= =?UTF-8?q?=EF=BC=8C=E6=8C=87=E5=AE=9A=20=20opencode=20=E7=9A=84=E5=90=AF?= =?UTF-8?q?=E5=8A=A8=E8=A1=8C=E4=B8=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .opencode/agents/tjwater-assistant.md | 2 +- .opencode/skills/SKILL.md | 24 +++ .opencode/skills/analytics/SKILL.md | 15 ++ .../analytics/scada-operations/SKILL.md | 14 ++ .../analytics/scada-operations/scada/SKILL.md | 50 ++++++ .../analytics/simulation-analysis/SKILL.md | 18 ++ .../burst-detection/SKILL.md | 22 +++ .../burst-location/SKILL.md | 22 +++ .../simulation-analysis/leakage/SKILL.md | 22 +++ .../simulation-analysis/risk/SKILL.md | 24 +++ .../simulation-analysis/simulation/SKILL.md | 48 ++++++ .opencode/skills/business/SKILL.md | 17 ++ .../skills/business/component-config/SKILL.md | 19 +++ .../component-config/controls/SKILL.md | 25 +++ .../business/component-config/curves/SKILL.md | 26 +++ .../component-config/options/SKILL.md | 31 ++++ .../component-config/patterns/SKILL.md | 26 +++ .../component-config/quality/SKILL.md | 44 +++++ .../component-config/visuals/SKILL.md | 34 ++++ .../skills/business/identity-access/SKILL.md | 16 ++ .../business/identity-access/auth/SKILL.md | 24 +++ .../identity-access/user-management/SKILL.md | 25 +++ .../business/identity-access/users/SKILL.md | 22 +++ .../skills/business/network-assets/SKILL.md | 24 +++ .../business/network-assets/demands/SKILL.md | 25 +++ .../business/network-assets/general/SKILL.md | 48 ++++++ .../business/network-assets/geometry/SKILL.md | 25 +++ .../network-assets/junctions/SKILL.md | 37 ++++ .../business/network-assets/pipes/SKILL.md | 39 +++++ .../business/network-assets/pumps/SKILL.md | 29 ++++ .../business/network-assets/regions/SKILL.md | 56 ++++++ .../network-assets/reservoirs/SKILL.md | 35 ++++ .../business/network-assets/tags/SKILL.md | 23 +++ .../business/network-assets/tanks/SKILL.md | 47 +++++ .../business/network-assets/valves/SKILL.md | 36 ++++ .../business/project-workspace/SKILL.md | 19 +++ .../project-workspace/extension/SKILL.md | 23 +++ .../business/project-workspace/misc/SKILL.md | 25 +++ .../project-workspace/project-data/SKILL.md | 23 +++ .../project-workspace/project/SKILL.md | 48 ++++++ .../project-workspace/schemes/SKILL.md | 22 +++ .../project-workspace/snapshots/SKILL.md | 37 ++++ .opencode/skills/data/SKILL.md | 14 ++ .../skills/data/timeseries-access/SKILL.md | 16 ++ .../data/timeseries-access/composite/SKILL.md | 24 +++ .../data/timeseries-access/realtime/SKILL.md | 29 ++++ .../data/timeseries-access/scheme/SKILL.md | 31 ++++ .opencode/skills/examples.md | 115 +++++++++++++ .opencode/skills/platform/SKILL.md | 14 ++ .../governance-observability/SKILL.md | 16 ++ .../governance-observability/audit/SKILL.md | 22 +++ .../governance-observability/cache/SKILL.md | 23 +++ .../governance-observability/meta/SKILL.md | 22 +++ .opencode/skills/runbook.md | 70 ++++++++ README.md | 160 +++++++++++++++++- opencode.json | 8 +- 56 files changed, 1746 insertions(+), 9 deletions(-) create mode 100644 .opencode/skills/SKILL.md create mode 100644 .opencode/skills/analytics/SKILL.md create mode 100644 .opencode/skills/analytics/scada-operations/SKILL.md create mode 100644 .opencode/skills/analytics/scada-operations/scada/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/burst-detection/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/burst-location/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/leakage/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/risk/SKILL.md create mode 100644 .opencode/skills/analytics/simulation-analysis/simulation/SKILL.md create mode 100644 .opencode/skills/business/SKILL.md create mode 100644 .opencode/skills/business/component-config/SKILL.md create mode 100644 .opencode/skills/business/component-config/controls/SKILL.md create mode 100644 .opencode/skills/business/component-config/curves/SKILL.md create mode 100644 .opencode/skills/business/component-config/options/SKILL.md create mode 100644 .opencode/skills/business/component-config/patterns/SKILL.md create mode 100644 .opencode/skills/business/component-config/quality/SKILL.md create mode 100644 .opencode/skills/business/component-config/visuals/SKILL.md create mode 100644 .opencode/skills/business/identity-access/SKILL.md create mode 100644 .opencode/skills/business/identity-access/auth/SKILL.md create mode 100644 .opencode/skills/business/identity-access/user-management/SKILL.md create mode 100644 .opencode/skills/business/identity-access/users/SKILL.md create mode 100644 .opencode/skills/business/network-assets/SKILL.md create mode 100644 .opencode/skills/business/network-assets/demands/SKILL.md create mode 100644 .opencode/skills/business/network-assets/general/SKILL.md create mode 100644 .opencode/skills/business/network-assets/geometry/SKILL.md create mode 100644 .opencode/skills/business/network-assets/junctions/SKILL.md create mode 100644 .opencode/skills/business/network-assets/pipes/SKILL.md create mode 100644 .opencode/skills/business/network-assets/pumps/SKILL.md create mode 100644 .opencode/skills/business/network-assets/regions/SKILL.md create mode 100644 .opencode/skills/business/network-assets/reservoirs/SKILL.md create mode 100644 .opencode/skills/business/network-assets/tags/SKILL.md create mode 100644 .opencode/skills/business/network-assets/tanks/SKILL.md create mode 100644 .opencode/skills/business/network-assets/valves/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/extension/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/misc/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/project-data/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/project/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/schemes/SKILL.md create mode 100644 .opencode/skills/business/project-workspace/snapshots/SKILL.md create mode 100644 .opencode/skills/data/SKILL.md create mode 100644 .opencode/skills/data/timeseries-access/SKILL.md create mode 100644 .opencode/skills/data/timeseries-access/composite/SKILL.md create mode 100644 .opencode/skills/data/timeseries-access/realtime/SKILL.md create mode 100644 .opencode/skills/data/timeseries-access/scheme/SKILL.md create mode 100644 .opencode/skills/examples.md create mode 100644 .opencode/skills/platform/SKILL.md create mode 100644 .opencode/skills/platform/governance-observability/SKILL.md create mode 100644 .opencode/skills/platform/governance-observability/audit/SKILL.md create mode 100644 .opencode/skills/platform/governance-observability/cache/SKILL.md create mode 100644 .opencode/skills/platform/governance-observability/meta/SKILL.md create mode 100644 .opencode/skills/runbook.md diff --git a/.opencode/agents/tjwater-assistant.md b/.opencode/agents/tjwater-assistant.md index 941200b..b8067db 100644 --- a/.opencode/agents/tjwater-assistant.md +++ b/.opencode/agents/tjwater-assistant.md @@ -8,7 +8,7 @@ You are the default TJWater assistant running on opencode. Operate with these rules: -1. Follow the loaded TJWater instructions, skills index, runbook, and examples as the primary domain guidance. +1. Use `.opencode/skills/tjwater-skills-root-index` as the TJWater skill tree and load specific skills only when the task needs that domain knowledge. 2. Prefer `dynamic_http_call` when you need backend data for reasoning, summaries, diagnosis, or analysis. 3. Prefer frontend tools (`locate_features`, `view_history`, `view_scada`, `show_chart`) when the user mainly needs UI actions or visualization. 4. Treat frontend tools as display/interaction tools only. Do not assume they return data. diff --git a/.opencode/skills/SKILL.md b/.opencode/skills/SKILL.md new file mode 100644 index 0000000..e512e3b --- /dev/null +++ b/.opencode/skills/SKILL.md @@ -0,0 +1,24 @@ +--- +name: tjwater-skills-root-index +description: TJWater Skills 分层索引(Domain -> Scenario -> Action)。 +version: 3.0.0 +--- + +# TJWater Skills + +## 简介 + +按“领域 (Domain) -> 场景 (Scenario) -> 操作 (Action)”组织技能文档,逐层进入具体能力。 + +## 子模块索引 (渐进式引导) + +- **ai**: 见 `./ai/SKILL.md` +- **analytics**: 见 `./analytics/SKILL.md` +- **business**: 见 `./business/SKILL.md` +- **data**: 见 `./data/SKILL.md` +- **platform**: 见 `./platform/SKILL.md` + +## 参考 + +- 示例:`./examples.md` +- 运行手册:`./runbook.md` diff --git a/.opencode/skills/analytics/SKILL.md b/.opencode/skills/analytics/SKILL.md new file mode 100644 index 0000000..69de451 --- /dev/null +++ b/.opencode/skills/analytics/SKILL.md @@ -0,0 +1,15 @@ +--- +name: tjwater-domain-analytics +description: 负责仿真分析、SCADA 分析等计算类 API 能力。 +version: 3.0.0 +--- + +# Analytics Domain Skill + +## 简介 +负责仿真分析、SCADA 分析等计算类 API 能力。 + +## 子模块索引 (渐进式引导) +- **scada-operations**: 见 `./scada-operations/SKILL.md` +- **simulation-analysis**: 见 `./simulation-analysis/SKILL.md` + diff --git a/.opencode/skills/analytics/scada-operations/SKILL.md b/.opencode/skills/analytics/scada-operations/SKILL.md new file mode 100644 index 0000000..8ebfe91 --- /dev/null +++ b/.opencode/skills/analytics/scada-operations/SKILL.md @@ -0,0 +1,14 @@ +--- +name: tjwater-scenario-analytics-scada-operations +description: 负责 SCADA 设备与数据操作。 +version: 3.0.0 +--- + +# scada-operations Scenario Skill + +## 简介 +负责 SCADA 设备与数据操作。 + +## 子模块索引 (渐进式引导) +- **scada**: 见 `./scada/SKILL.md` + diff --git a/.opencode/skills/analytics/scada-operations/scada/SKILL.md b/.opencode/skills/analytics/scada-operations/scada/SKILL.md new file mode 100644 index 0000000..bd52a73 --- /dev/null +++ b/.opencode/skills/analytics/scada-operations/scada/SKILL.md @@ -0,0 +1,50 @@ +--- +name: tjwater-action-analytics-scada-operations-scada +description: analytics/scada-operations 下 scada 操作技能。 +version: 3.0.0 +--- + +# scada Action Skill + +## 简介 +负责 `analytics/scada-operations` 场景下 `scada` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addscadadevice/` | 添加SCADA设备 | network (query) | - | +| POST | `/api/v1/addscadadevicedata/` | 添加SCADA设备数据 | network (query) | - | +| POST | `/api/v1/addscadaelement/` | 添加SCADA元素映射 | network (query) | - | +| POST | `/api/v1/cleanscadadevice/` | 清空SCADA设备表 | network (query) | - | +| POST | `/api/v1/cleanscadadevicedata/` | 清空SCADA设备数据表 | network (query) | - | +| POST | `/api/v1/cleanscadaelement/` | 清空SCADA元素映射表 | network (query) | - | +| POST | `/api/v1/deletescadadevice/` | 删除SCADA设备 | network (query) | - | +| POST | `/api/v1/deletescadadevicedata/` | 删除SCADA设备数据 | network (query) | - | +| POST | `/api/v1/deletescadaelement/` | 删除SCADA元素映射 | network (query) | - | +| GET | `/api/v1/getallscadadeviceids/` | 获取所有SCADA设备ID | network (query) | - | +| GET | `/api/v1/getallscadadevices/` | 获取所有SCADA设备 | network (query) | - | +| GET | `/api/v1/getallscadainfo/` | 获取所有SCADA信息 | network (query) | - | +| GET | `/api/v1/getallscadaproperties/` | 获取所有SCADA属性 | network (query) | - | +| GET | `/api/v1/getscadadevice/` | 获取SCADA设备 | network (query), id (query) | - | +| GET | `/api/v1/getscadadevicedata/` | 获取SCADA设备数据 | network (query), device_id (query) | - | +| GET | `/api/v1/getscadadevicedataschema/` | 获取SCADA设备数据架构 | network (query) | - | +| GET | `/api/v1/getscadadeviceschema/` | 获取SCADA设备架构 | network (query) | - | +| GET | `/api/v1/getscadaelement/` | 获取单个SCADA元素映射 | network (query), id (query) | - | +| GET | `/api/v1/getscadaelements/` | 获取所有SCADA元素映射 | network (query) | - | +| GET | `/api/v1/getscadaelementschema/` | 获取SCADA元素架构 | network (query) | - | +| GET | `/api/v1/getscadainfo/` | 获取SCADA信息 | network (query), id (query) | - | +| GET | `/api/v1/getscadainfoschema/` | 获取SCADA信息架构 | network (query) | - | +| GET | `/api/v1/getscadaproperties/` | 获取SCADA属性 | network (query), scada (query) | - | +| POST | `/api/v1/scada/batch` | 批量插入SCADA监测数据 | data (body) | - | +| DELETE | `/api/v1/scada/by-id-time-range` | 按设备ID和时间范围删除SCADA数据 | device_id (query), start_time (query), end_time (query) | - | +| GET | `/api/v1/scada/by-ids-field-time-range` | 按设备ID、字段和时间范围查询SCADA数据 | start_time (query), end_time (query), field (query), device_ids (query) | - | +| GET | `/api/v1/scada/by-ids-time-range` | 按设备ID和时间范围查询SCADA数据 | start_time (query), end_time (query), device_ids (query) | - | +| PATCH | `/api/v1/scada/{device_id}/field` | 更新SCADA设备字段 | device_id (path), time (query), field (query), value (query) | - | +| POST | `/api/v1/setscadadevice/` | 更新SCADA设备 | network (query) | - | +| POST | `/api/v1/setscadadevicedata/` | 更新SCADA设备数据 | network (query) | - | +| POST | `/api/v1/setscadaelement/` | 更新SCADA元素映射 | network (query) | - | + +- 覆盖方法:`DELETE, GET, PATCH, POST` diff --git a/.opencode/skills/analytics/simulation-analysis/SKILL.md b/.opencode/skills/analytics/simulation-analysis/SKILL.md new file mode 100644 index 0000000..2eacfc1 --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/SKILL.md @@ -0,0 +1,18 @@ +--- +name: tjwater-scenario-analytics-simulation-analysis +description: 负责仿真、风险、漏损与爆管分析。 +version: 3.0.0 +--- + +# simulation-analysis Scenario Skill + +## 简介 +负责仿真、风险、漏损与爆管分析。 + +## 子模块索引 (渐进式引导) +- **burst_detection**: 见 `./burst_detection/SKILL.md` +- **burst_location**: 见 `./burst_location/SKILL.md` +- **leakage**: 见 `./leakage/SKILL.md` +- **risk**: 见 `./risk/SKILL.md` +- **simulation**: 见 `./simulation/SKILL.md` + diff --git a/.opencode/skills/analytics/simulation-analysis/burst-detection/SKILL.md b/.opencode/skills/analytics/simulation-analysis/burst-detection/SKILL.md new file mode 100644 index 0000000..9f0314d --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/burst-detection/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-analytics-simulation-analysis-burst-detection +description: analytics/simulation-analysis 下 burst-detection 操作技能。 +version: 3.0.0 +--- + +# burst-detection Action Skill + +## 简介 +负责 `analytics/simulation-analysis` 场景下 `burst-detection` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/burst-detection/detect/` | 执行爆管检测 | data (body) | - | +| GET | `/api/v1/burst-detection/schemes/` | 查询爆管检测方案列表 | network (query) | query_date (query) | +| GET | `/api/v1/burst-detection/schemes/{scheme_name}` | 获取爆管检测方案详情 | network (query), scheme_name (path) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/analytics/simulation-analysis/burst-location/SKILL.md b/.opencode/skills/analytics/simulation-analysis/burst-location/SKILL.md new file mode 100644 index 0000000..bbc3c5a --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/burst-location/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-analytics-simulation-analysis-burst-location +description: analytics/simulation-analysis 下 burst-location 操作技能。 +version: 3.0.0 +--- + +# burst-location Action Skill + +## 简介 +负责 `analytics/simulation-analysis` 场景下 `burst-location` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/burst-location/locate/` | 执行爆管定位 | data (body) | - | +| GET | `/api/v1/burst-location/schemes/` | 查询爆管定位方案列表 | network (query) | query_date (query) | +| GET | `/api/v1/burst-location/schemes/{scheme_name}` | 获取爆管定位方案详情 | network (query), scheme_name (path) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/analytics/simulation-analysis/leakage/SKILL.md b/.opencode/skills/analytics/simulation-analysis/leakage/SKILL.md new file mode 100644 index 0000000..a024162 --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/leakage/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-analytics-simulation-analysis-leakage +description: analytics/simulation-analysis 下 leakage 操作技能。 +version: 3.0.0 +--- + +# leakage Action Skill + +## 简介 +负责 `analytics/simulation-analysis` 场景下 `leakage` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/leakage/identify/` | 执行漏损识别 | data (body) | - | +| GET | `/api/v1/leakage/schemes/` | 查询漏损识别方案列表 | network (query) | query_date (query) | +| GET | `/api/v1/leakage/schemes/{scheme_name}` | 获取漏损识别方案详情 | network (query), scheme_name (path) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/analytics/simulation-analysis/risk/SKILL.md b/.opencode/skills/analytics/simulation-analysis/risk/SKILL.md new file mode 100644 index 0000000..62db0b4 --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/risk/SKILL.md @@ -0,0 +1,24 @@ +--- +name: tjwater-action-analytics-simulation-analysis-risk +description: analytics/simulation-analysis 下 risk 操作技能。 +version: 3.0.0 +--- + +# risk Action Skill + +## 简介 +负责 `analytics/simulation-analysis` 场景下 `risk` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getnetworkpiperiskprobabilitynow/` | 获取整个网络的管道风险概率 | network (query) | - | +| GET | `/api/v1/getpiperiskprobability/` | 获取管道风险概率历史 | network (query), pipe_id (query) | - | +| GET | `/api/v1/getpiperiskprobabilitygeometries/` | 获取管道风险几何信息 | network (query) | - | +| GET | `/api/v1/getpiperiskprobabilitynow/` | 获取管道当前风险概率 | network (query), pipe_id (query) | - | +| GET | `/api/v1/getpipesriskprobability/` | 批量获取多条管道风险概率 | network (query), pipe_ids (query) | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/analytics/simulation-analysis/simulation/SKILL.md b/.opencode/skills/analytics/simulation-analysis/simulation/SKILL.md new file mode 100644 index 0000000..f5a0d43 --- /dev/null +++ b/.opencode/skills/analytics/simulation-analysis/simulation/SKILL.md @@ -0,0 +1,48 @@ +--- +name: tjwater-action-analytics-simulation-analysis-simulation +description: analytics/simulation-analysis 下 simulation 操作技能。 +version: 3.0.0 +--- + +# simulation Action Skill + +## 简介 +负责 `analytics/simulation-analysis` 场景下 `simulation` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/age_analysis/` | 水龄分析(高级) | network (query), start_time (query), end_time (query), duration (query) | - | +| GET | `/api/v1/ageanalysis/` | 水龄分析(基础) | network (query) | - | +| GET | `/api/v1/burst_analysis/` | 爆管分析(高级) | network (query), modify_pattern_start_time (query), burst_ID (query), burst_size (query), modify_total_duration (query), scheme_name (query) | - | +| GET | `/api/v1/burstanalysis/` | 爆管分析(基础) | network (query), pipe_id (query), start_time (query), end_time (query), burst_flow (query) | - | +| GET | `/api/v1/contaminant_simulation/` | 污染物模拟 | network (query), start_time (query), source (query), concentration (query), duration (query) | scheme_name (query), pattern (query) | +| POST | `/api/v1/daily_scheduling_analysis/` | 日排程分析 | data (body) | - | +| GET | `/api/v1/dumpoutput/` | 导出模拟输出 | output (query) | - | +| GET | `/api/v1/flushing_analysis/` | 冲洗分析(高级) | network (query), start_time (query), valves (query), valves_k (query), drainage_node_ID (query) | flush_flow (query), duration (query), scheme_name (query) | +| GET | `/api/v1/flushinganalysis/` | 冲洗分析(基础) | network (query), pipe_id (query), start_time (query), duration (query), flow (query) | - | +| POST | `/api/v1/network_project/` | 导入网络项目 | file (file) | - | +| POST | `/api/v1/network_update/` | 管网更新(高级) | file (file) | - | +| GET | `/api/v1/networkupdate/` | 管网更新(基础) | network (query) | - | +| POST | `/api/v1/pressure_regulation/` | 压力调节(高级) | data (body) | - | +| POST | `/api/v1/pressure_sensor_placement_kmeans/` | 压力传感器放置-KMeans聚类分析(高级) | data (body) | - | +| POST | `/api/v1/pressure_sensor_placement_sensitivity/` | 压力传感器放置-灵敏度分析(高级) | data (body) | - | +| GET | `/api/v1/pressureregulation/` | 压力调节(基础) | network (query), target_node (query), target_pressure (query) | - | +| GET | `/api/v1/pressuresensorplacementkmeans/` | 压力传感器放置-KMeans聚类分析(基础) | name (query), scheme_name (query), sensor_number (query), min_diameter (query), username (query) | - | +| GET | `/api/v1/pressuresensorplacementsensitivity/` | 压力传感器放置-灵敏度分析(基础) | name (query), scheme_name (query), sensor_number (query), min_diameter (query), username (query) | - | +| POST | `/api/v1/project_management/` | 项目管理(高级) | data (body) | - | +| GET | `/api/v1/projectmanagement/` | 项目管理(基础) | network (query) | - | +| POST | `/api/v1/pump_failure/` | 泵故障管理 | data (body) | - | +| GET | `/api/v1/runinp/` | 运行INP文件 | network (query) | - | +| GET | `/api/v1/runproject/` | 运行项目模拟 | network (query) | - | +| GET | `/api/v1/runprojectreturndict/` | 运行项目模拟(返回字典) | network (query) | - | +| POST | `/api/v1/runsimulationmanuallybydate/` | 手动运行日期指定模拟 | data (body) | - | +| POST | `/api/v1/scheduling_analysis/` | 排程分析 | data (body) | - | +| POST | `/api/v1/sensorplacementscheme/create` | 传感器放置方案创建 | network (query), scheme_name (query), sensor_type (query), method (query), sensor_count (query), user_name (query) | min_diameter (query) | +| GET | `/api/v1/valve_close_analysis/` | 阀门关闭分析(高级) | network (query), start_time (query), valves (query) | duration (query) | +| GET | `/api/v1/valve_isolation_analysis/` | 阀门隔离分析 | network (query), accident_element (query) | disabled_valves (query) | +| GET | `/api/v1/valvecloseanalysis/` | 阀门关闭分析(基础) | network (query), valve_id (query), start_time (query), end_time (query) | - | + diff --git a/.opencode/skills/business/SKILL.md b/.opencode/skills/business/SKILL.md new file mode 100644 index 0000000..27df977 --- /dev/null +++ b/.opencode/skills/business/SKILL.md @@ -0,0 +1,17 @@ +--- +name: tjwater-domain-business +description: 负责业务逻辑、业务对象与项目侧 API 能力。 +version: 3.0.0 +--- + +# Business Domain Skill + +## 简介 +负责业务逻辑、业务对象与项目侧 API 能力。 + +## 子模块索引 (渐进式引导) +- **component-config**: 见 `./component-config/SKILL.md` +- **identity-access**: 见 `./identity-access/SKILL.md` +- **network-assets**: 见 `./network-assets/SKILL.md` +- **project-workspace**: 见 `./project-workspace/SKILL.md` + diff --git a/.opencode/skills/business/component-config/SKILL.md b/.opencode/skills/business/component-config/SKILL.md new file mode 100644 index 0000000..b2bb076 --- /dev/null +++ b/.opencode/skills/business/component-config/SKILL.md @@ -0,0 +1,19 @@ +--- +name: tjwater-scenario-business-component-config +description: 负责组件配置与参数管理。 +version: 3.0.0 +--- + +# component-config Scenario Skill + +## 简介 +负责组件配置与参数管理。 + +## 子模块索引 (渐进式引导) +- **controls**: 见 `./controls/SKILL.md` +- **curves**: 见 `./curves/SKILL.md` +- **options**: 见 `./options/SKILL.md` +- **patterns**: 见 `./patterns/SKILL.md` +- **quality**: 见 `./quality/SKILL.md` +- **visuals**: 见 `./visuals/SKILL.md` + diff --git a/.opencode/skills/business/component-config/controls/SKILL.md b/.opencode/skills/business/component-config/controls/SKILL.md new file mode 100644 index 0000000..6e9f59d --- /dev/null +++ b/.opencode/skills/business/component-config/controls/SKILL.md @@ -0,0 +1,25 @@ +--- +name: tjwater-action-business-component-config-controls +description: business/component-config 下 controls 操作技能。 +version: 3.0.0 +--- + +# controls Action Skill + +## 简介 +负责 `business/component-config` 场景下 `controls` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getcontrolproperties/` | 获取控制属性 | network (query) | - | +| GET | `/api/v1/getcontrolschema/` | 获取控制架构 | network (query) | - | +| GET | `/api/v1/getruleproperties/` | 获取规则属性 | network (query) | - | +| GET | `/api/v1/getruleschema/` | 获取规则架构 | network (query) | - | +| POST | `/api/v1/setcontrolproperties/` | 设置控制属性 | network (query) | - | +| POST | `/api/v1/setruleproperties/` | 设置规则属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/component-config/curves/SKILL.md b/.opencode/skills/business/component-config/curves/SKILL.md new file mode 100644 index 0000000..09bf06d --- /dev/null +++ b/.opencode/skills/business/component-config/curves/SKILL.md @@ -0,0 +1,26 @@ +--- +name: tjwater-action-business-component-config-curves +description: business/component-config 下 curves 操作技能。 +version: 3.0.0 +--- + +# curves Action Skill + +## 简介 +负责 `business/component-config` 场景下 `curves` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addcurve/` | 添加曲线 | network (query), curve (query) | - | +| POST | `/api/v1/deletecurve/` | 删除曲线 | network (query), curve (query) | - | +| GET | `/api/v1/getcurveproperties/` | 获取曲线属性 | network (query), curve (query) | - | +| GET | `/api/v1/getcurves/` | 获取所有曲线 | network (query) | - | +| GET | `/api/v1/getcurveschema` | 获取曲线架构 | network (query) | - | +| GET | `/api/v1/iscurve/` | 检查曲线存在性 | network (query), curve (query) | - | +| POST | `/api/v1/setcurveproperties/` | 设置曲线属性 | network (query), curve (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/component-config/options/SKILL.md b/.opencode/skills/business/component-config/options/SKILL.md new file mode 100644 index 0000000..9ab9508 --- /dev/null +++ b/.opencode/skills/business/component-config/options/SKILL.md @@ -0,0 +1,31 @@ +--- +name: tjwater-action-business-component-config-options +description: business/component-config 下 options 操作技能。 +version: 3.0.0 +--- + +# options Action Skill + +## 简介 +负责 `business/component-config` 场景下 `options` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getenergyproperties/` | 获取能耗选项属性 | network (query) | - | +| GET | `/api/v1/getenergyschema/` | 获取能耗选项架构 | network (query) | - | +| GET | `/api/v1/getoptionproperties/` | 获取选项属性 | network (query) | - | +| GET | `/api/v1/getoptionschema/` | 获取选项架构 | network (query) | - | +| GET | `/api/v1/getpumpenergyproperties/` | 获取泵能耗属性 | - | - | +| GET | `/api/v1/getpumpenergyschema/` | 获取泵能耗选项架构 | network (query) | - | +| GET | `/api/v1/gettimeproperties/` | 获取时间选项属性 | network (query) | - | +| GET | `/api/v1/gettimeschema` | 获取时间选项架构 | network (query) | - | +| POST | `/api/v1/setenergyproperties/` | 设置能耗选项属性 | network (query) | - | +| POST | `/api/v1/setoptionproperties/` | 设置选项属性 | network (query) | - | +| GET | `/api/v1/setpumpenergyproperties/` | 设置泵能耗属性 | - | - | +| POST | `/api/v1/settimeproperties/` | 设置时间选项属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/component-config/patterns/SKILL.md b/.opencode/skills/business/component-config/patterns/SKILL.md new file mode 100644 index 0000000..909e174 --- /dev/null +++ b/.opencode/skills/business/component-config/patterns/SKILL.md @@ -0,0 +1,26 @@ +--- +name: tjwater-action-business-component-config-patterns +description: business/component-config 下 patterns 操作技能。 +version: 3.0.0 +--- + +# patterns Action Skill + +## 简介 +负责 `business/component-config` 场景下 `patterns` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addpattern/` | 添加模式 | network (query), pattern (query) | - | +| POST | `/api/v1/deletepattern/` | 删除模式 | network (query), pattern (query) | - | +| GET | `/api/v1/getpatternproperties/` | 获取模式属性 | network (query), pattern (query) | - | +| GET | `/api/v1/getpatterns/` | 获取所有模式 | network (query) | - | +| GET | `/api/v1/getpatternschema` | 获取模式架构 | network (query) | - | +| GET | `/api/v1/ispattern/` | 检查模式存在性 | network (query), pattern (query) | - | +| POST | `/api/v1/setpatternproperties/` | 设置模式属性 | network (query), pattern (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/component-config/quality/SKILL.md b/.opencode/skills/business/component-config/quality/SKILL.md new file mode 100644 index 0000000..92028d7 --- /dev/null +++ b/.opencode/skills/business/component-config/quality/SKILL.md @@ -0,0 +1,44 @@ +--- +name: tjwater-action-business-component-config-quality +description: business/component-config 下 quality 操作技能。 +version: 3.0.0 +--- + +# quality Action Skill + +## 简介 +负责 `business/component-config` 场景下 `quality` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addmixing/` | 添加混合 | network (query) | - | +| POST | `/api/v1/addsource/` | 添加水源 | network (query) | - | +| POST | `/api/v1/deletemixing/` | 删除混合 | network (query) | - | +| POST | `/api/v1/deletesource/` | 删除水源 | network (query), node (query) | - | +| GET | `/api/v1/getemitterproperties/` | 获取发射器属性 | network (query), junction (query) | - | +| GET | `/api/v1/getemitterschema` | 获取发射器架构 | network (query) | - | +| GET | `/api/v1/getmixing/` | 获取混合属性 | network (query), tank (query) | - | +| GET | `/api/v1/getmixingschema/` | 获取混合架构 | network (query) | - | +| GET | `/api/v1/getpipereaction/` | 获取管道反应属性 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipereactionschema/` | 获取管道反应架构 | network (query) | - | +| GET | `/api/v1/getqualityproperties/` | 获取水质属性 | network (query), node (query) | - | +| GET | `/api/v1/getqualityschema/` | 获取水质架构 | network (query) | - | +| GET | `/api/v1/getreaction/` | 获取反应属性 | network (query) | - | +| GET | `/api/v1/getreactionschema/` | 获取反应架构 | network (query) | - | +| GET | `/api/v1/getsource/` | 获取水源属性 | network (query), node (query) | - | +| GET | `/api/v1/getsourcechema/` | 获取水源架构 | network (query) | - | +| GET | `/api/v1/gettankreaction/` | 获取水池反应属性 | network (query), tank (query) | - | +| GET | `/api/v1/gettankreactionschema/` | 获取水池反应架构 | network (query) | - | +| POST | `/api/v1/setemitterproperties/` | 设置发射器属性 | network (query), junction (query) | - | +| POST | `/api/v1/setmixing/` | 设置混合属性 | network (query) | - | +| POST | `/api/v1/setpipereaction/` | 设置管道反应属性 | network (query) | - | +| POST | `/api/v1/setqualityproperties/` | 设置水质属性 | network (query) | - | +| POST | `/api/v1/setreaction/` | 设置反应属性 | network (query) | - | +| POST | `/api/v1/setsource/` | 设置水源属性 | network (query) | - | +| POST | `/api/v1/settankreaction/` | 设置水池反应属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/component-config/visuals/SKILL.md b/.opencode/skills/business/component-config/visuals/SKILL.md new file mode 100644 index 0000000..ce1e783 --- /dev/null +++ b/.opencode/skills/business/component-config/visuals/SKILL.md @@ -0,0 +1,34 @@ +--- +name: tjwater-action-business-component-config-visuals +description: business/component-config 下 visuals 操作技能。 +version: 3.0.0 +--- + +# visuals Action Skill + +## 简介 +负责 `business/component-config` 场景下 `visuals` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addlabel/` | 添加标签 | network (query) | - | +| POST | `/api/v1/addvertex/` | 添加图形元素 | network (query) | - | +| POST | `/api/v1/deletelabel/` | 删除标签 | network (query) | - | +| POST | `/api/v1/deletevertex/` | 删除图形元素 | network (query) | - | +| GET | `/api/v1/getallvertexlinks/` | 获取所有图形元素链接 | network (query) | - | +| GET | `/api/v1/getallvertices/` | 获取所有图形元素 | network (query) | - | +| GET | `/api/v1/getbackdropproperties/` | 获取背景属性 | network (query) | - | +| GET | `/api/v1/getbackdropschema/` | 获取背景架构 | network (query) | - | +| GET | `/api/v1/getlabelproperties/` | 获取标签属性 | network (query), x (query), y (query) | - | +| GET | `/api/v1/getlabelschema/` | 获取标签架构 | network (query) | - | +| GET | `/api/v1/getvertexproperties/` | 获取图形元素属性 | network (query), link (query) | - | +| GET | `/api/v1/getvertexschema/` | 获取图形元素架构 | network (query) | - | +| POST | `/api/v1/setbackdropproperties/` | 设置背景属性 | network (query) | - | +| POST | `/api/v1/setlabelproperties/` | 设置标签属性 | network (query) | - | +| POST | `/api/v1/setvertexproperties/` | 设置图形元素属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/identity-access/SKILL.md b/.opencode/skills/business/identity-access/SKILL.md new file mode 100644 index 0000000..fc3aeac --- /dev/null +++ b/.opencode/skills/business/identity-access/SKILL.md @@ -0,0 +1,16 @@ +--- +name: tjwater-scenario-business-identity-access +description: 负责认证、用户与权限相关操作。 +version: 3.0.0 +--- + +# identity-access Scenario Skill + +## 简介 +负责认证、用户与权限相关操作。 + +## 子模块索引 (渐进式引导) +- **auth**: 见 `./auth/SKILL.md` +- **user_management**: 见 `./user_management/SKILL.md` +- **users**: 见 `./users/SKILL.md` + diff --git a/.opencode/skills/business/identity-access/auth/SKILL.md b/.opencode/skills/business/identity-access/auth/SKILL.md new file mode 100644 index 0000000..f103c60 --- /dev/null +++ b/.opencode/skills/business/identity-access/auth/SKILL.md @@ -0,0 +1,24 @@ +--- +name: tjwater-action-business-identity-access-auth +description: business/identity-access 下 auth 操作技能。 +version: 3.0.0 +--- + +# auth Action Skill + +## 简介 +负责 `business/identity-access` 场景下 `auth` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/auth/login` | login | form_data (body) | - | +| POST | `/api/v1/auth/login/simple` | login_simple | username (query), password (query) | - | +| GET | `/api/v1/auth/me` | get_current_user_info | - | - | +| POST | `/api/v1/auth/refresh` | refresh_token | refresh_token (query) | - | +| POST | `/api/v1/auth/register` | register | user_data (body) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/identity-access/user-management/SKILL.md b/.opencode/skills/business/identity-access/user-management/SKILL.md new file mode 100644 index 0000000..3184ae3 --- /dev/null +++ b/.opencode/skills/business/identity-access/user-management/SKILL.md @@ -0,0 +1,25 @@ +--- +name: tjwater-action-business-identity-access-user-management +description: business/identity-access 下 user-management 操作技能。 +version: 3.0.0 +--- + +# user-management Action Skill + +## 简介 +负责 `business/identity-access` 场景下 `user-management` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/users/` | 列出所有用户 | - | skip (query), limit (query) | +| DELETE | `/api/v1/users/{user_id}` | 删除用户 | user_id (path) | - | +| GET | `/api/v1/users/{user_id}` | 获取用户详情 | user_id (path) | - | +| PUT | `/api/v1/users/{user_id}` | 更新用户信息 | user_id (path) | user_update (body) | +| POST | `/api/v1/users/{user_id}/activate` | 激活用户 | user_id (path) | - | +| POST | `/api/v1/users/{user_id}/deactivate` | 停用用户 | user_id (path) | - | + +- 覆盖方法:`DELETE, GET, POST, PUT` diff --git a/.opencode/skills/business/identity-access/users/SKILL.md b/.opencode/skills/business/identity-access/users/SKILL.md new file mode 100644 index 0000000..b52dda7 --- /dev/null +++ b/.opencode/skills/business/identity-access/users/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-business-identity-access-users +description: business/identity-access 下 users 操作技能。 +version: 3.0.0 +--- + +# users Action Skill + +## 简介 +负责 `business/identity-access` 场景下 `users` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getallusers/` | 获取所有用户 | network (query) | - | +| GET | `/api/v1/getuser/` | 获取单个用户 | network (query), user_name (query) | - | +| GET | `/api/v1/getuserschema/` | 获取用户模式 | network (query) | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/business/network-assets/SKILL.md b/.opencode/skills/business/network-assets/SKILL.md new file mode 100644 index 0000000..3e2a023 --- /dev/null +++ b/.opencode/skills/business/network-assets/SKILL.md @@ -0,0 +1,24 @@ +--- +name: tjwater-scenario-business-network-assets +description: 负责管网资产与拓扑对象操作。 +version: 3.0.0 +--- + +# network-assets Scenario Skill + +## 简介 +负责管网资产与拓扑对象操作。 + +## 子模块索引 (渐进式引导) +- **demands**: 见 `./demands/SKILL.md` +- **general**: 见 `./general/SKILL.md` +- **geometry**: 见 `./geometry/SKILL.md` +- **junctions**: 见 `./junctions/SKILL.md` +- **pipes**: 见 `./pipes/SKILL.md` +- **pumps**: 见 `./pumps/SKILL.md` +- **regions**: 见 `./regions/SKILL.md` +- **reservoirs**: 见 `./reservoirs/SKILL.md` +- **tags**: 见 `./tags/SKILL.md` +- **tanks**: 见 `./tanks/SKILL.md` +- **valves**: 见 `./valves/SKILL.md` + diff --git a/.opencode/skills/business/network-assets/demands/SKILL.md b/.opencode/skills/business/network-assets/demands/SKILL.md new file mode 100644 index 0000000..d801cde --- /dev/null +++ b/.opencode/skills/business/network-assets/demands/SKILL.md @@ -0,0 +1,25 @@ +--- +name: tjwater-action-business-network-assets-demands +description: business/network-assets 下 demands 操作技能。 +version: 3.0.0 +--- + +# demands Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `demands` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/calculatedemandtonetwork/` | 计算需水量到整网分配 | network (query), demand (query) | - | +| GET | `/api/v1/calculatedemandtonodes/` | 计算需水量到节点分配 | network (query) | - | +| GET | `/api/v1/calculatedemandtoregion/` | 计算需水量到区域分配 | network (query) | - | +| GET | `/api/v1/getdemandproperties/` | 获取需水量属性 | network (query), junction (query) | - | +| GET | `/api/v1/getdemandschema` | 获取需水量属性架构 | network (query) | - | +| POST | `/api/v1/setdemandproperties/` | 设置需水量属性 | network (query), junction (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/general/SKILL.md b/.opencode/skills/business/network-assets/general/SKILL.md new file mode 100644 index 0000000..b4ad040 --- /dev/null +++ b/.opencode/skills/business/network-assets/general/SKILL.md @@ -0,0 +1,48 @@ +--- +name: tjwater-action-business-network-assets-general +description: business/network-assets 下 general 操作技能。 +version: 3.0.0 +--- + +# general Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `general` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/deletelink/` | 删除管线 | network (query), link (query) | - | +| POST | `/api/v1/deletenode/` | 删除节点 | network (query), node (query) | - | +| GET | `/api/v1/getallscadaproperties/` | 获取所有SCADA点属性 | network (query) | - | +| GET | `/api/v1/getelementproperties/` | 获取元素属性 | network (query), element (query) | - | +| GET | `/api/v1/getelementpropertieswithtype/` | 获取指定类型元素属性 | network (query), elementtype (query), element (query) | - | +| GET | `/api/v1/getelementtype/` | 获取元素类型 | network (query), element (query) | - | +| GET | `/api/v1/getelementtypevalue/` | 获取元素类型值 | network (query), element (query) | - | +| GET | `/api/v1/getlinkproperties/` | 获取管线属性 | network (query), link (query) | - | +| GET | `/api/v1/getlinks/` | 获取所有管线 | network (query) | - | +| GET | `/api/v1/getlinktype/` | 获取管线类型 | network (query), link (query) | - | +| GET | `/api/v1/getnodelinks/` | 获取节点的关联管线 | network (query), node (query) | - | +| GET | `/api/v1/getnodeproperties/` | 获取节点属性 | network (query), node (query) | - | +| GET | `/api/v1/getnodes/` | 获取所有节点 | network (query) | - | +| GET | `/api/v1/getnodetype/` | 获取节点类型 | network (query), node (query) | - | +| GET | `/api/v1/getscadaproperties/` | 获取SCADA点属性 | network (query), scada (query) | - | +| GET | `/api/v1/getstatus/` | 获取管线状态 | network (query), link (query) | - | +| GET | `/api/v1/getstatusschema` | 获取状态属性架构 | network (query) | - | +| GET | `/api/v1/gettitle/` | 获取水网标题属性 | network (query) | - | +| GET | `/api/v1/gettitleschema/` | 获取标题属性架构 | network (query) | - | +| GET | `/api/v1/isjunction/` | 检查是否为接点 | network (query), node (query) | - | +| GET | `/api/v1/islink/` | 检查管线有效性 | network (query), link (query) | - | +| GET | `/api/v1/isnode/` | 检查节点有效性 | network (query), node (query) | - | +| GET | `/api/v1/ispipe/` | 检查是否为管道 | network (query), link (query) | - | +| GET | `/api/v1/ispump/` | 检查是否为泵 | network (query), link (query) | - | +| GET | `/api/v1/isreservoir/` | 检查是否为水源 | network (query), node (query) | - | +| GET | `/api/v1/istank/` | 检查是否为蓄水池 | network (query), node (query) | - | +| GET | `/api/v1/isvalve/` | 检查是否为阀门 | network (query), link (query) | - | +| POST | `/api/v1/setstatus/` | 设置管线状态 | network (query), link (query) | - | +| GET | `/api/v1/settitle/` | 设置水网标题属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/geometry/SKILL.md b/.opencode/skills/business/network-assets/geometry/SKILL.md new file mode 100644 index 0000000..aba7481 --- /dev/null +++ b/.opencode/skills/business/network-assets/geometry/SKILL.md @@ -0,0 +1,25 @@ +--- +name: tjwater-action-business-network-assets-geometry +description: business/network-assets 下 geometry 操作技能。 +version: 3.0.0 +--- + +# geometry Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `geometry` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getmajornodecoords/` | 获取主要节点坐标 | network (query), diameter (query) | - | +| GET | `/api/v1/getmajorpipenodes/` | 获取主要管道节点 | network (query), diameter (query) | - | +| GET | `/api/v1/getnetworkgeometries/` | 获取完整网络几何信息 | network (query) | - | +| GET | `/api/v1/getnetworkinextent/` | 获取范围内的网络元素 | network (query), x1 (query), y1 (query), x2 (query), y2 (query) | - | +| GET | `/api/v1/getnetworklinknodes/` | 获取网络管线节点 | network (query) | - | +| GET | `/api/v1/getnodecoord/` | 获取节点坐标 | network (query), node (query) | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/business/network-assets/junctions/SKILL.md b/.opencode/skills/business/network-assets/junctions/SKILL.md new file mode 100644 index 0000000..6c02d06 --- /dev/null +++ b/.opencode/skills/business/network-assets/junctions/SKILL.md @@ -0,0 +1,37 @@ +--- +name: tjwater-action-business-network-assets-junctions +description: business/network-assets 下 junctions 操作技能。 +version: 3.0.0 +--- + +# junctions Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `junctions` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addjunction/` | 添加节点 | network (query), junction (query), x (query), y (query), z (query) | - | +| POST | `/api/v1/deletejunction/` | 删除节点 | network (query), junction (query) | - | +| GET | `/api/v1/getalljunctionproperties/` | 获取所有节点属性 | network (query) | - | +| GET | `/api/v1/getjunctioncoord/` | 获取节点坐标 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctiondemand/` | 获取节点需水量 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctionelevation/` | 获取节点标高 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctionpattern/` | 获取节点需水模式 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctionproperties/` | 获取节点属性 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctionschema` | 获取节点架构 | network (query) | - | +| GET | `/api/v1/getjunctionx/` | 获取节点 X 坐标 | network (query), junction (query) | - | +| GET | `/api/v1/getjunctiony/` | 获取节点 Y 坐标 | network (query), junction (query) | - | +| POST | `/api/v1/setjunctioncoord/` | 设置节点坐标 | network (query), junction (query), x (query), y (query) | - | +| POST | `/api/v1/setjunctiondemand/` | 设置节点需水量 | network (query), junction (query), demand (query) | - | +| POST | `/api/v1/setjunctionelevation/` | 设置节点标高 | network (query), junction (query), elevation (query) | - | +| POST | `/api/v1/setjunctionpattern/` | 设置节点需水模式 | network (query), junction (query), pattern (query) | - | +| POST | `/api/v1/setjunctionproperties/` | 批量设置节点属性 | network (query), junction (query) | - | +| POST | `/api/v1/setjunctionx/` | 设置节点 X 坐标 | network (query), junction (query), x (query) | - | +| POST | `/api/v1/setjunctiony/` | 设置节点 Y 坐标 | network (query), junction (query), y (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/pipes/SKILL.md b/.opencode/skills/business/network-assets/pipes/SKILL.md new file mode 100644 index 0000000..bcd3b51 --- /dev/null +++ b/.opencode/skills/business/network-assets/pipes/SKILL.md @@ -0,0 +1,39 @@ +--- +name: tjwater-action-business-network-assets-pipes +description: business/network-assets 下 pipes 操作技能。 +version: 3.0.0 +--- + +# pipes Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `pipes` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addpipe/` | 添加管道 | network (query), pipe (query), node1 (query), node2 (query) | length (query), diameter (query), roughness (query), minor_loss (query), status (query) | +| POST | `/api/v1/deletepipe/` | 删除管道 | network (query), pipe (query) | - | +| GET | `/api/v1/getallpipeproperties/` | 获取所有管道属性 | network (query) | - | +| GET | `/api/v1/getpipediameter/` | 获取管道管径 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipelength/` | 获取管道长度 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipeminorloss/` | 获取管道局部阻力系数 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipenode1/` | 获取管道起始节点 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipenode2/` | 获取管道终止节点 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipeproperties/` | 获取管道属性 | network (query), pipe (query) | - | +| GET | `/api/v1/getpiperoughness/` | 获取管道粗糙度 | network (query), pipe (query) | - | +| GET | `/api/v1/getpipeschema` | 获取管道模式 | network (query) | - | +| GET | `/api/v1/getpipestatus/` | 获取管道状态 | network (query), pipe (query) | - | +| POST | `/api/v1/setpipediameter/` | 设置管道管径 | network (query), pipe (query), diameter (query) | - | +| POST | `/api/v1/setpipelength/` | 设置管道长度 | network (query), pipe (query), length (query) | - | +| POST | `/api/v1/setpipeminorloss/` | 设置管道局部阻力系数 | network (query), pipe (query), minor_loss (query) | - | +| POST | `/api/v1/setpipenode1/` | 设置管道起始节点 | network (query), pipe (query), node1 (query) | - | +| POST | `/api/v1/setpipenode2/` | 设置管道终止节点 | network (query), pipe (query), node2 (query) | - | +| POST | `/api/v1/setpipeproperties/` | 设置管道属性 | network (query), pipe (query) | - | +| POST | `/api/v1/setpiperoughness/` | 设置管道粗糙度 | network (query), pipe (query), roughness (query) | - | +| POST | `/api/v1/setpipestatus/` | 设置管道状态 | network (query), pipe (query), status (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/pumps/SKILL.md b/.opencode/skills/business/network-assets/pumps/SKILL.md new file mode 100644 index 0000000..9914a72 --- /dev/null +++ b/.opencode/skills/business/network-assets/pumps/SKILL.md @@ -0,0 +1,29 @@ +--- +name: tjwater-action-business-network-assets-pumps +description: business/network-assets 下 pumps 操作技能。 +version: 3.0.0 +--- + +# pumps Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `pumps` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addpump/` | 添加水泵 | network (query), pump (query), node1 (query), node2 (query) | power (query) | +| POST | `/api/v1/deletepump/` | 删除水泵 | network (query), pump (query) | - | +| GET | `/api/v1/getallpumpproperties/` | 获取所有水泵属性 | network (query) | - | +| GET | `/api/v1/getpumpnode1/` | 获取水泵起始节点 | network (query), pump (query) | - | +| GET | `/api/v1/getpumpnode2/` | 获取水泵终止节点 | network (query), pump (query) | - | +| GET | `/api/v1/getpumpproperties/` | 获取水泵属性 | network (query), pump (query) | - | +| GET | `/api/v1/getpumpschema` | 获取水泵模式 | network (query) | - | +| POST | `/api/v1/setpumpnode1/` | 设置水泵起始节点 | network (query), pump (query), node1 (query) | - | +| POST | `/api/v1/setpumpnode2/` | 设置水泵终止节点 | network (query), pump (query), node2 (query) | - | +| POST | `/api/v1/setpumpproperties/` | 设置水泵属性 | network (query), pump (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/regions/SKILL.md b/.opencode/skills/business/network-assets/regions/SKILL.md new file mode 100644 index 0000000..92bf8bd --- /dev/null +++ b/.opencode/skills/business/network-assets/regions/SKILL.md @@ -0,0 +1,56 @@ +--- +name: tjwater-action-business-network-assets-regions +description: business/network-assets 下 regions 操作技能。 +version: 3.0.0 +--- + +# regions Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `regions` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/adddistrictmeteringarea/` | 添加新DMA | network (query) | - | +| POST | `/api/v1/addregion/` | 添加新区域 | network (query) | - | +| POST | `/api/v1/addservicearea/` | 添加新服务区 | network (query) | - | +| POST | `/api/v1/addvirtualdistrict/` | 添加新虚拟分区 | network (query) | - | +| GET | `/api/v1/calculatedistrictmeteringarea/` | 计算DMA分区 | network (query) | - | +| GET | `/api/v1/calculatedistrictmeteringareafornetwork/` | 计算整网DMA分区 | network (query) | - | +| GET | `/api/v1/calculatedistrictmeteringareafornodes/` | 计算节点DMA分区 | network (query) | - | +| GET | `/api/v1/calculatedistrictmeteringareaforregion/` | 计算区域内DMA分区 | network (query) | - | +| GET | `/api/v1/calculateregion/` | 计算区域 | network (query), time_index (query) | - | +| GET | `/api/v1/calculateservicearea/` | 计算服务区 | network (query), time_index (query) | - | +| GET | `/api/v1/calculatevirtualdistrict/` | 计算虚拟分区 | network (query), centers (query) | - | +| POST | `/api/v1/deletedistrictmeteringarea/` | 删除DMA | network (query) | - | +| POST | `/api/v1/deleteregion/` | 删除区域 | network (query) | - | +| POST | `/api/v1/deleteservicearea/` | 删除服务区 | network (query) | - | +| POST | `/api/v1/deletevirtualdistrict/` | 删除虚拟分区 | network (query) | - | +| POST | `/api/v1/generatedistrictmeteringarea/` | 生成DMA分区 | network (query), part_count (query), part_type (query), inflate_delta (query) | - | +| POST | `/api/v1/generateregion/` | 生成区域分区 | network (query), inflate_delta (query) | - | +| POST | `/api/v1/generateservicearea/` | 生成服务区分区 | network (query), inflate_delta (query) | - | +| POST | `/api/v1/generatesubdistrictmeteringarea/` | 生成DMA子分区 | network (query), dma (query), part_count (query), part_type (query), inflate_delta (query) | - | +| POST | `/api/v1/generatevirtualdistrict/` | 生成虚拟分区 | network (query), inflate_delta (query) | - | +| GET | `/api/v1/getalldistrictmeteringareaids/` | 获取所有DMA ID | network (query) | - | +| GET | `/api/v1/getalldistrictmeteringareas/` | 获取所有DMA | network (query) | - | +| GET | `/api/v1/getallregions/` | 获取所有区域 | network (query) | - | +| GET | `/api/v1/getallserviceareas/` | 获取所有服务区 | network (query) | - | +| GET | `/api/v1/getallvirtualdistrict/` | 获取所有虚拟分区 | network (query) | - | +| GET | `/api/v1/getdistrictmeteringarea/` | 获取DMA信息 | network (query), id (query) | - | +| GET | `/api/v1/getdistrictmeteringareaschema/` | 获取DMA属性架构 | network (query) | - | +| GET | `/api/v1/getregion/` | 获取区域信息 | network (query), id (query) | - | +| GET | `/api/v1/getregionschema/` | 获取区域属性架构 | network (query) | - | +| GET | `/api/v1/getservicearea/` | 获取服务区信息 | network (query), id (query) | - | +| GET | `/api/v1/getserviceareaschema/` | 获取服务区属性架构 | network (query) | - | +| GET | `/api/v1/getvirtualdistrict/` | 获取虚拟分区信息 | network (query), id (query) | - | +| GET | `/api/v1/getvirtualdistrictschema/` | 获取虚拟分区属性架构 | network (query) | - | +| POST | `/api/v1/setdistrictmeteringarea/` | 设置DMA属性 | network (query) | - | +| POST | `/api/v1/setregion/` | 设置区域属性 | network (query) | - | +| POST | `/api/v1/setservicearea/` | 设置服务区属性 | network (query) | - | +| POST | `/api/v1/setvirtualdistrict/` | 设置虚拟分区属性 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/reservoirs/SKILL.md b/.opencode/skills/business/network-assets/reservoirs/SKILL.md new file mode 100644 index 0000000..f8e32ac --- /dev/null +++ b/.opencode/skills/business/network-assets/reservoirs/SKILL.md @@ -0,0 +1,35 @@ +--- +name: tjwater-action-business-network-assets-reservoirs +description: business/network-assets 下 reservoirs 操作技能。 +version: 3.0.0 +--- + +# reservoirs Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `reservoirs` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addreservoir/` | 添加水库 | network (query), reservoir (query), x (query), y (query), head (query) | - | +| POST | `/api/v1/deletereservoir/` | 删除水库 | network (query), reservoir (query) | - | +| GET | `/api/v1/getallreservoirproperties/` | 获取所有水库属性 | network (query) | - | +| GET | `/api/v1/getreservoircoord/` | 获取水库坐标 | network (query), reservoir (query) | - | +| GET | `/api/v1/getreservoirhead/` | 获取水库水头 | network (query), reservoir (query) | - | +| GET | `/api/v1/getreservoirpattern/` | 获取水库模式 | network (query), reservoir (query) | - | +| GET | `/api/v1/getreservoirproperties/` | 获取水库属性 | network (query), reservoir (query) | - | +| GET | `/api/v1/getreservoirschema` | 获取水库模式 | network (query) | - | +| GET | `/api/v1/getreservoirx/` | 获取水库X坐标 | network (query), reservoir (query) | - | +| GET | `/api/v1/getreservoiry/` | 获取水库Y坐标 | network (query), reservoir (query) | - | +| POST | `/api/v1/setreservoircoord/` | 设置水库坐标 | network (query), reservoir (query), x (query), y (query) | - | +| POST | `/api/v1/setreservoirhead/` | 设置水库水头 | network (query), reservoir (query), head (query) | - | +| POST | `/api/v1/setreservoirpattern/` | 设置水库模式 | network (query), reservoir (query), pattern (query) | - | +| POST | `/api/v1/setreservoirproperties/` | 设置水库属性 | network (query), reservoir (query) | - | +| POST | `/api/v1/setreservoirx/` | 设置水库X坐标 | network (query), reservoir (query), x (query) | - | +| POST | `/api/v1/setreservoiry/` | 设置水库Y坐标 | network (query), reservoir (query), y (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/tags/SKILL.md b/.opencode/skills/business/network-assets/tags/SKILL.md new file mode 100644 index 0000000..16876af --- /dev/null +++ b/.opencode/skills/business/network-assets/tags/SKILL.md @@ -0,0 +1,23 @@ +--- +name: tjwater-action-business-network-assets-tags +description: business/network-assets 下 tags 操作技能。 +version: 3.0.0 +--- + +# tags Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `tags` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/gettag/` | 获取标签信息 | network (query), t_type (query), id (query) | - | +| GET | `/api/v1/gettags/` | 获取所有标签 | network (query) | - | +| GET | `/api/v1/gettagschema/` | 获取标签属性架构 | network (query) | - | +| POST | `/api/v1/settag/` | 设置标签 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/tanks/SKILL.md b/.opencode/skills/business/network-assets/tanks/SKILL.md new file mode 100644 index 0000000..5d5a80f --- /dev/null +++ b/.opencode/skills/business/network-assets/tanks/SKILL.md @@ -0,0 +1,47 @@ +--- +name: tjwater-action-business-network-assets-tanks +description: business/network-assets 下 tanks 操作技能。 +version: 3.0.0 +--- + +# tanks Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `tanks` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addtank/` | 新增水箱 | network (query), tank (query), x (query), y (query), elevation (query) | init_level (query), min_level (query), max_level (query), diameter (query), min_vol (query) | +| POST | `/api/v1/deletetank/` | 删除水箱 | network (query), tank (query) | - | +| GET | `/api/v1/getalltankproperties/` | 获取所有水箱属性 | network (query) | - | +| GET | `/api/v1/gettankcoord/` | 获取水箱坐标 | network (query), tank (query) | - | +| GET | `/api/v1/gettankdiameter/` | 获取水箱直径 | network (query), tank (query) | - | +| GET | `/api/v1/gettankelevation/` | 获取水箱标高 | network (query), tank (query) | - | +| GET | `/api/v1/gettankinitlevel/` | 获取水箱初始水位 | network (query), tank (query) | - | +| GET | `/api/v1/gettankmaxlevel/` | 获取水箱最大水位 | network (query), tank (query) | - | +| GET | `/api/v1/gettankminlevel/` | 获取水箱最小水位 | network (query), tank (query) | - | +| GET | `/api/v1/gettankminvol/` | 获取水箱最小体积 | network (query), tank (query) | - | +| GET | `/api/v1/gettankoverflow/` | 获取水箱溢流口 | network (query), tank (query) | - | +| GET | `/api/v1/gettankproperties/` | 获取水箱属性 | network (query), tank (query) | - | +| GET | `/api/v1/gettankschema` | 获取水箱模式 | network (query) | - | +| GET | `/api/v1/gettankvolcurve/` | 获取水箱容积曲线 | network (query), tank (query) | - | +| GET | `/api/v1/gettankx/` | 获取水箱X坐标 | network (query), tank (query) | - | +| GET | `/api/v1/gettanky/` | 获取水箱Y坐标 | network (query), tank (query) | - | +| POST | `/api/v1/settankcoord/` | 设置水箱坐标 | network (query), tank (query), x (query), y (query) | - | +| POST | `/api/v1/settankdiameter/` | 设置水箱直径 | network (query), tank (query), diameter (query) | - | +| POST | `/api/v1/settankelevation/` | 设置水箱标高 | network (query), tank (query), elevation (query) | - | +| POST | `/api/v1/settankinitlevel/` | 设置水箱初始水位 | network (query), tank (query), init_level (query) | - | +| POST | `/api/v1/settankmaxlevel/` | 设置水箱最大水位 | network (query), tank (query), max_level (query) | - | +| POST | `/api/v1/settankminlevel/` | 设置水箱最小水位 | network (query), tank (query), min_level (query) | - | +| POST | `/api/v1/settankminvol/` | 设置水箱最小体积 | network (query), tank (query), min_vol (query) | - | +| POST | `/api/v1/settankoverflow/` | 设置水箱溢流口 | network (query), tank (query), overflow (query) | - | +| POST | `/api/v1/settankproperties/` | 设置水箱属性 | network (query), tank (query) | - | +| POST | `/api/v1/settankvolcurve/` | 设置水箱容积曲线 | network (query), tank (query), vol_curve (query) | - | +| POST | `/api/v1/settankx/` | 设置水箱X坐标 | network (query), tank (query), x (query) | - | +| POST | `/api/v1/settanky/` | 设置水箱Y坐标 | network (query), tank (query), y (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/network-assets/valves/SKILL.md b/.opencode/skills/business/network-assets/valves/SKILL.md new file mode 100644 index 0000000..c0fdb80 --- /dev/null +++ b/.opencode/skills/business/network-assets/valves/SKILL.md @@ -0,0 +1,36 @@ +--- +name: tjwater-action-business-network-assets-valves +description: business/network-assets 下 valves 操作技能。 +version: 3.0.0 +--- + +# valves Action Skill + +## 简介 +负责 `business/network-assets` 场景下 `valves` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/addvalve/` | 添加阀门 | network (query), valve (query), node1 (query), node2 (query) | diameter (query), v_type (query), setting (query), minor_loss (query) | +| POST | `/api/v1/deletevalve/` | 删除阀门 | network (query), valve (query) | - | +| GET | `/api/v1/getallvalveproperties/` | 获取所有阀门属性 | network (query) | - | +| GET | `/api/v1/getvalvediameter/` | 获取阀门直径 | network (query), valve (query) | - | +| GET | `/api/v1/getvalveminorloss/` | 获取阀门损失系数 | network (query), valve (query) | - | +| GET | `/api/v1/getvalvenode1/` | 获取阀门起点节点 | network (query), valve (query) | - | +| GET | `/api/v1/getvalvenode2/` | 获取阀门终点节点 | network (query), valve (query) | - | +| GET | `/api/v1/getvalveproperties/` | 获取阀门所有属性 | network (query), valve (query) | - | +| GET | `/api/v1/getvalveschema` | 获取阀门架构 | network (query) | - | +| GET | `/api/v1/getvalvesetting/` | 获取阀门开度 | network (query), valve (query) | - | +| GET | `/api/v1/getvalvetype/` | 获取阀门类型 | network (query), valve (query) | - | +| POST | `/api/v1/setvalvenode1/` | 设置阀门起点节点 | network (query), valve (query), node1 (query) | - | +| POST | `/api/v1/setvalvenode2/` | 设置阀门终点节点 | network (query), valve (query), node2 (query) | - | +| POST | `/api/v1/setvalvenodediameter/` | 设置阀门直径 | network (query), valve (query), diameter (query) | - | +| POST | `/api/v1/setvalveproperties/` | 批量设置阀门属性 | network (query), valve (query) | - | +| POST | `/api/v1/setvalvesetting/` | 设置阀门开度 | network (query), valve (query), setting (query) | - | +| POST | `/api/v1/setvalvetype/` | 设置阀门类型 | network (query), valve (query), type (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/project-workspace/SKILL.md b/.opencode/skills/business/project-workspace/SKILL.md new file mode 100644 index 0000000..dea0ee6 --- /dev/null +++ b/.opencode/skills/business/project-workspace/SKILL.md @@ -0,0 +1,19 @@ +--- +name: tjwater-scenario-business-project-workspace +description: 负责项目空间、快照与扩展操作。 +version: 3.0.0 +--- + +# project-workspace Scenario Skill + +## 简介 +负责项目空间、快照与扩展操作。 + +## 子模块索引 (渐进式引导) +- **extension**: 见 `./extension/SKILL.md` +- **misc**: 见 `./misc/SKILL.md` +- **project**: 见 `./project/SKILL.md` +- **project_data**: 见 `./project_data/SKILL.md` +- **schemes**: 见 `./schemes/SKILL.md` +- **snapshots**: 见 `./snapshots/SKILL.md` + diff --git a/.opencode/skills/business/project-workspace/extension/SKILL.md b/.opencode/skills/business/project-workspace/extension/SKILL.md new file mode 100644 index 0000000..31dc1a6 --- /dev/null +++ b/.opencode/skills/business/project-workspace/extension/SKILL.md @@ -0,0 +1,23 @@ +--- +name: tjwater-action-business-project-workspace-extension +description: business/project-workspace 下 extension 操作技能。 +version: 3.0.0 +--- + +# extension Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `extension` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getallextensiondata/` | 获取所有扩展数据 | network (query) | - | +| GET | `/api/v1/getallextensiondatakeys/` | 获取所有扩展数据键 | network (query) | - | +| GET | `/api/v1/getextensiondata/` | 获取指定扩展数据 | network (query), key (query) | - | +| POST | `/api/v1/setextensiondata/` | 设置扩展数据 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/project-workspace/misc/SKILL.md b/.opencode/skills/business/project-workspace/misc/SKILL.md new file mode 100644 index 0000000..a78e3d2 --- /dev/null +++ b/.opencode/skills/business/project-workspace/misc/SKILL.md @@ -0,0 +1,25 @@ +--- +name: tjwater-action-business-project-workspace-misc +description: business/project-workspace 下 misc 操作技能。 +version: 3.0.0 +--- + +# misc Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `misc` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getallburstlocateresults/` | 获取所有爆管定位结果 | network (query) | - | +| GET | `/api/v1/getallsensorplacements/` | 获取所有传感器位置 | network (query) | - | +| GET | `/api/v1/getjson/` | 获取JSON示例 | - | - | +| GET | `/api/v1/getrealtimedata/` | 获取实时数据 | - | - | +| GET | `/api/v1/getsimulationresult/` | 获取模拟结果 | - | - | +| POST | `/api/v1/test_dict/` | 测试字典处理 | data (body) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/project-workspace/project-data/SKILL.md b/.opencode/skills/business/project-workspace/project-data/SKILL.md new file mode 100644 index 0000000..4245614 --- /dev/null +++ b/.opencode/skills/business/project-workspace/project-data/SKILL.md @@ -0,0 +1,23 @@ +--- +name: tjwater-action-business-project-workspace-project-data +description: business/project-workspace 下 project_data 操作技能。 +version: 3.0.0 +--- + +# project_data Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `project_data` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/burst-locate-result` | 获取爆管定位结果 | - | - | +| GET | `/api/v1/burst-locate-result/{burst_incident}` | 按事件查询爆管定位结果 | burst_incident (path) | - | +| GET | `/api/v1/scada-info` | 获取SCADA信息 | - | - | +| GET | `/api/v1/scheme-list` | 获取方案列表 | - | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/business/project-workspace/project/SKILL.md b/.opencode/skills/business/project-workspace/project/SKILL.md new file mode 100644 index 0000000..b584b19 --- /dev/null +++ b/.opencode/skills/business/project-workspace/project/SKILL.md @@ -0,0 +1,48 @@ +--- +name: tjwater-action-business-project-workspace-project +description: business/project-workspace 下 project 操作技能。 +version: 3.0.0 +--- + +# project Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `project` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/closeproject/` | 关闭项目 | network (query) | - | +| GET | `/api/v1/convertv3tov2/` | 转换 INP V3 为 V2 | - | - | +| GET | `/api/v1/convertv3tov2/` | 转换 INP V3 为 V2 | - | - | +| POST | `/api/v1/copyproject/` | 复制项目 | source (query), target (query) | - | +| POST | `/api/v1/createproject/` | 创建新项目 | network (query) | - | +| POST | `/api/v1/deleteproject/` | 删除项目 | network (query) | - | +| GET | `/api/v1/downloadinp/` | 下载 INP 文件 | name (query) | - | +| GET | `/api/v1/downloadinp/` | 下载 INP 文件 | name (query) | - | +| GET | `/api/v1/dumpinp/` | 导出项目到 INP 文件 | network (query), inp (query) | - | +| GET | `/api/v1/dumpinp/` | 导出项目到 INP 文件 | network (query), inp (query) | - | +| GET | `/api/v1/exportinp/` | 导出项目为 ChangeSet | network (query), version (query) | - | +| GET | `/api/v1/haveproject/` | 检查项目是否存在 | network (query) | - | +| POST | `/api/v1/importinp/` | 导入 INP 文件内容 | network (query) | - | +| GET | `/api/v1/isprojectlocked/` | 检查项目是否被锁定 | network (query) | - | +| GET | `/api/v1/isprojectlocked/` | 检查项目是否被锁定 | network (query) | - | +| GET | `/api/v1/isprojectlockedbyme/` | 检查项目是否被当前用户锁定 | network (query) | - | +| GET | `/api/v1/isprojectlockedbyme/` | 检查项目是否被当前用户锁定 | network (query) | - | +| GET | `/api/v1/isprojectopen/` | 检查项目是否已打开 | network (query) | - | +| GET | `/api/v1/listprojects/` | 获取项目列表 | - | - | +| POST | `/api/v1/lockproject/` | 锁定项目 | network (query) | - | +| POST | `/api/v1/lockproject/` | 锁定项目 | network (query) | - | +| POST | `/api/v1/openproject/` | 打开项目 | network (query) | - | +| GET | `/api/v1/project_info/` | 获取项目信息 | network (query) | - | +| POST | `/api/v1/readinp/` | 读取 INP 文件到项目 | network (query), inp (query) | - | +| POST | `/api/v1/readinp/` | 读取 INP 文件到项目 | network (query), inp (query) | - | +| POST | `/api/v1/unlockproject/` | 解锁项目 | network (query) | - | +| POST | `/api/v1/unlockproject/` | 解锁项目 | network (query) | - | +| POST | `/api/v1/uploadinp/` | 上传 INP 文件 | afile (body), name (query) | - | +| POST | `/api/v1/uploadinp/` | 上传 INP 文件 | afile (body), name (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/business/project-workspace/schemes/SKILL.md b/.opencode/skills/business/project-workspace/schemes/SKILL.md new file mode 100644 index 0000000..24b879b --- /dev/null +++ b/.opencode/skills/business/project-workspace/schemes/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-business-project-workspace-schemes +description: business/project-workspace 下 schemes 操作技能。 +version: 3.0.0 +--- + +# schemes Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `schemes` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/getallschemes/` | 获取所有方案 | network (query) | - | +| GET | `/api/v1/getscheme/` | 获取单个方案 | network (query), schema_name (query) | - | +| GET | `/api/v1/getschemeschema/` | 获取方案模式 | network (query) | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/business/project-workspace/snapshots/SKILL.md b/.opencode/skills/business/project-workspace/snapshots/SKILL.md new file mode 100644 index 0000000..07cf10e --- /dev/null +++ b/.opencode/skills/business/project-workspace/snapshots/SKILL.md @@ -0,0 +1,37 @@ +--- +name: tjwater-action-business-project-workspace-snapshots +description: business/project-workspace 下 snapshots 操作技能。 +version: 3.0.0 +--- + +# snapshots Action Skill + +## 简介 +负责 `business/project-workspace` 场景下 `snapshots` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/batch/` | 执行批量命令 | network (query) | - | +| POST | `/api/v1/compressedbatch/` | 执行压缩批量命令 | network (query) | - | +| GET | `/api/v1/getcurrentoperationid/` | 获取当前操作ID | network (query) | - | +| GET | `/api/v1/getrestoreoperation/` | 获取恢复操作ID | network (query) | - | +| GET | `/api/v1/getsnapshots/` | 获取快照列表 | network (query) | - | +| GET | `/api/v1/havesnapshot/` | 检查快照是否存在 | network (query), tag (query) | - | +| GET | `/api/v1/havesnapshotforcurrentoperation/` | 检查当前操作快照是否存在 | network (query) | - | +| GET | `/api/v1/havesnapshotforoperation/` | 检查操作快照是否存在 | network (query), operation (query) | - | +| POST | `/api/v1/pickoperation/` | 选择操作 | network (query), operation (query) | discard (query) | +| POST | `/api/v1/picksnapshot/` | 选择快照 | network (query), tag (query) | discard (query) | +| POST | `/api/v1/redo/` | 重做操作 | network (query) | - | +| POST | `/api/v1/setrestoreoperation/` | 设置恢复操作ID | network (query), operation (query) | - | +| GET | `/api/v1/syncwithserver/` | 与服务器同步 | network (query), operation (query) | - | +| POST | `/api/v1/takenapshotforcurrentoperation` | 为当前操作创建快照(兼容模式) | network (query), tag (query) | - | +| POST | `/api/v1/takesnapshot/` | 创建快照 | network (query), tag (query) | - | +| POST | `/api/v1/takesnapshotforcurrentoperation` | 为当前操作创建快照 | network (query), tag (query) | - | +| POST | `/api/v1/takesnapshotforoperation/` | 为操作创建快照 | network (query), operation (query), tag (query) | - | +| POST | `/api/v1/undo/` | 撤销操作 | network (query) | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/data/SKILL.md b/.opencode/skills/data/SKILL.md new file mode 100644 index 0000000..d20a6a5 --- /dev/null +++ b/.opencode/skills/data/SKILL.md @@ -0,0 +1,14 @@ +--- +name: tjwater-domain-data +description: 负责时序数据访问与读写能力。 +version: 3.0.0 +--- + +# Data Domain Skill + +## 简介 +负责时序数据访问与读写能力。 + +## 子模块索引 (渐进式引导) +- **timeseries-access**: 见 `./timeseries-access/SKILL.md` + diff --git a/.opencode/skills/data/timeseries-access/SKILL.md b/.opencode/skills/data/timeseries-access/SKILL.md new file mode 100644 index 0000000..3a08c56 --- /dev/null +++ b/.opencode/skills/data/timeseries-access/SKILL.md @@ -0,0 +1,16 @@ +--- +name: tjwater-scenario-data-timeseries-access +description: 负责时序数据查询、写入与聚合。 +version: 3.0.0 +--- + +# timeseries-access Scenario Skill + +## 简介 +负责时序数据查询、写入与聚合。 + +## 子模块索引 (渐进式引导) +- **composite**: 见 `./composite/SKILL.md` +- **realtime**: 见 `./realtime/SKILL.md` +- **scheme**: 见 `./scheme/SKILL.md` + diff --git a/.opencode/skills/data/timeseries-access/composite/SKILL.md b/.opencode/skills/data/timeseries-access/composite/SKILL.md new file mode 100644 index 0000000..5a9fd80 --- /dev/null +++ b/.opencode/skills/data/timeseries-access/composite/SKILL.md @@ -0,0 +1,24 @@ +--- +name: tjwater-action-data-timeseries-access-composite +description: data/timeseries-access 下 composite 操作技能。 +version: 3.0.0 +--- + +# composite Action Skill + +## 简介 +负责 `data/timeseries-access` 场景下 `composite` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/composite/clean-scada` | 清洗SCADA监测数据 | device_ids (query), start_time (query), end_time (query) | - | +| GET | `/api/v1/composite/element-scada` | 获取管网元素关联的SCADA监测数据 | element_id (query), start_time (query), end_time (query) | use_cleaned (query) | +| GET | `/api/v1/composite/element-simulation` | 获取管网元素的模拟数据 | start_time (query), end_time (query), feature_infos (query) | scheme_type (query), scheme_name (query) | +| GET | `/api/v1/composite/pipeline-health-prediction` | 预测管道健康状况 | query_time (query), network_name (query) | - | +| GET | `/api/v1/composite/scada-simulation` | 获取SCADA关联的模拟数据 | start_time (query), end_time (query), device_ids (query) | scheme_type (query), scheme_name (query) | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/data/timeseries-access/realtime/SKILL.md b/.opencode/skills/data/timeseries-access/realtime/SKILL.md new file mode 100644 index 0000000..ad4b37b --- /dev/null +++ b/.opencode/skills/data/timeseries-access/realtime/SKILL.md @@ -0,0 +1,29 @@ +--- +name: tjwater-action-data-timeseries-access-realtime +description: data/timeseries-access 下 realtime 操作技能。 +version: 3.0.0 +--- + +# realtime Action Skill + +## 简介 +负责 `data/timeseries-access` 场景下 `realtime` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| DELETE | `/api/v1/realtime/links` | 删除实时管道数据 | start_time (query), end_time (query) | - | +| GET | `/api/v1/realtime/links` | 查询实时管道数据 | start_time (query), end_time (query) | - | +| POST | `/api/v1/realtime/links/batch` | 批量插入实时管道数据 | data (body) | - | +| PATCH | `/api/v1/realtime/links/{link_id}/field` | 更新实时管道字段 | link_id (path), time (query), field (query), value (query) | - | +| DELETE | `/api/v1/realtime/nodes` | 删除实时节点数据 | start_time (query), end_time (query) | - | +| GET | `/api/v1/realtime/nodes` | 查询实时节点数据 | start_time (query), end_time (query) | - | +| POST | `/api/v1/realtime/nodes/batch` | 批量插入实时节点数据 | data (body) | - | +| GET | `/api/v1/realtime/query/by-id-time` | 按ID和时间查询实时模拟数据 | id (query), type (query), query_time (query) | - | +| GET | `/api/v1/realtime/query/by-time-property` | 按时间和属性查询实时数据 | query_time (query), type (query), property (query) | - | +| POST | `/api/v1/realtime/simulation/store` | 存储实时模拟结果 | node_result_list (body), link_result_list (body), result_start_time (query) | - | + +- 覆盖方法:`DELETE, GET, PATCH, POST` diff --git a/.opencode/skills/data/timeseries-access/scheme/SKILL.md b/.opencode/skills/data/timeseries-access/scheme/SKILL.md new file mode 100644 index 0000000..7e237fd --- /dev/null +++ b/.opencode/skills/data/timeseries-access/scheme/SKILL.md @@ -0,0 +1,31 @@ +--- +name: tjwater-action-data-timeseries-access-scheme +description: data/timeseries-access 下 scheme 操作技能。 +version: 3.0.0 +--- + +# scheme Action Skill + +## 简介 +负责 `data/timeseries-access` 场景下 `scheme` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| DELETE | `/api/v1/scheme/links` | 删除方案管道数据 | scheme_type (query), scheme_name (query), start_time (query), end_time (query) | - | +| GET | `/api/v1/scheme/links` | 查询方案管道数据 | scheme_type (query), scheme_name (query), start_time (query), end_time (query) | - | +| POST | `/api/v1/scheme/links/batch` | 批量插入方案管道数据 | data (body) | - | +| GET | `/api/v1/scheme/links/{link_id}/field` | 查询方案管道字段数据 | link_id (path), scheme_type (query), scheme_name (query), start_time (query), end_time (query), field (query) | - | +| PATCH | `/api/v1/scheme/links/{link_id}/field` | 更新方案管道字段 | link_id (path), scheme_type (query), scheme_name (query), time (query), field (query), value (query) | - | +| DELETE | `/api/v1/scheme/nodes` | 删除方案节点数据 | scheme_type (query), scheme_name (query), start_time (query), end_time (query) | - | +| POST | `/api/v1/scheme/nodes/batch` | 批量插入方案节点数据 | data (body) | - | +| GET | `/api/v1/scheme/nodes/{node_id}/field` | 查询方案节点字段数据 | node_id (path), scheme_type (query), scheme_name (query), start_time (query), end_time (query), field (query) | - | +| PATCH | `/api/v1/scheme/nodes/{node_id}/field` | 更新方案节点字段 | node_id (path), scheme_type (query), scheme_name (query), time (query), field (query), value (query) | - | +| GET | `/api/v1/scheme/query/by-id-time` | 按ID和时间查询方案模拟数据 | scheme_type (query), scheme_name (query), id (query), type (query), query_time (query) | - | +| GET | `/api/v1/scheme/query/by-scheme-time-property` | 按方案、时间和属性查询数据 | scheme_type (query), scheme_name (query), query_time (query), type (query), property (query) | - | +| POST | `/api/v1/scheme/simulation/store` | 存储方案模拟结果 | scheme_type (query), scheme_name (query), node_result_list (body), link_result_list (body), result_start_time (query) | - | + +- 覆盖方法:`DELETE, GET, PATCH, POST` diff --git a/.opencode/skills/examples.md b/.opencode/skills/examples.md new file mode 100644 index 0000000..2cc1c86 --- /dev/null +++ b/.opencode/skills/examples.md @@ -0,0 +1,115 @@ +# 示例(基于 chat/stream 工具调用链) + +## 示例 1:前端发起对话,LLM 触发工具调用 + +用户意图:查询设备 `170490` 在时间范围内的 `monitored_value`。 + +前端调用 `POST /api/v1/copilot/chat/stream`: + +```json +{ + "message": "请查询设备170490在最近24小时的monitored_value历史数据", + "conversationId": "conv-demo-001" +} +``` + +请求头至少包含(由前端传入): +- `Authorization: Bearer ` +- `x-project-id: ` + +服务端内部行为: +- LLM 选择工具 `dynamic_http_call` +- 工具参数示例: +```json +{ + "path": "/api/v1/scada/by-ids-field-time-range", + "method": "GET", + "arguments": { + "device_ids": "170490", + "field": "monitored_value", + "start_time": "2026-03-29T07:57:47.338Z", + "end_time": "2026-03-30T07:57:47.338Z" + } +} +``` + +## 示例 2:LLM 多步规划 + 多次工具调用 + +用户消息: +- “先查这个设备历史数据,再给我异常点摘要。” + +典型链路: +- 第一步工具调用:查询历史数据接口。 +- 第二步(可选)工具调用:查询补充数据接口。 +- LLM 汇总工具结果,持续通过 SSE 输出 token,最终返回 `done`。 + +## 示例 3:前端工具 — 定位要素 + +用户消息: +- "帮我找到管道 P-001 和 P-002" + +LLM 调用工具 `locate_features`: +```json +{ + "ids": ["P-001", "P-002"], + "feature_type": "pipe" +} +``` + +前端收到 SSE 事件后缩放地图并高亮管道。LLM 回复文字:"已在地图上定位到管道 P-001 和 P-002。" + +## 示例 4:前端工具 — 对话内图表 + +用户消息: +- "展示节点 J-001 最近一天的压力变化曲线" + +典型链路: +1. LLM 先调用 `dynamic_http_call` 查询数据 +2. 拿到数据后,调用 `show_chart` 将处理好的数据传给前端渲染 + +第一步 — LLM 调用 `dynamic_http_call`: +```json +{ + "path": "/api/v1/composite/element-simulation", + "method": "GET", + "arguments": { + "feature_infos": "[\"J-001\", \"node\"]", + "start_time": "2026-03-29T00:00:00Z", + "end_time": "2026-03-30T00:00:00Z" + } +} +``` + +第二步 — LLM 处理数据后调用 `show_chart`: +```json +{ + "title": "节点 J-001 压力变化", + "chart_type": "line", + "x_data": ["03-29 00:00", "03-29 01:00", "03-29 02:00", "..."], + "series": [ + { + "name": "J-001 压力", + "data": [32.5, 31.8, 30.2, "..."] + } + ], + "y_axis_name": "压力 (m)" +} +``` + +前端直接用 AI 提供的数据渲染 ECharts 图表,不再请求后端。 + +## 示例 5:前端工具 — 查看 SCADA 监测面板 + +用户消息: +- "我想看看 J-001 的监测数据" + +LLM 调用工具 `view_scada`: +```json +{ + "device_ids": ["J-001"], + "start_time": "2026-03-29T00:00:00Z", + "end_time": "2026-03-30T00:00:00Z" +} +``` + +前端打开 SCADA 监测面板,展示该节点的历史监测曲线。 diff --git a/.opencode/skills/platform/SKILL.md b/.opencode/skills/platform/SKILL.md new file mode 100644 index 0000000..fef60b8 --- /dev/null +++ b/.opencode/skills/platform/SKILL.md @@ -0,0 +1,14 @@ +--- +name: tjwater-domain-platform +description: 负责治理、审计、缓存与元数据能力。 +version: 3.0.0 +--- + +# Platform Domain Skill + +## 简介 +负责治理、审计、缓存与元数据能力。 + +## 子模块索引 (渐进式引导) +- **governance-observability**: 见 `./governance-observability/SKILL.md` + diff --git a/.opencode/skills/platform/governance-observability/SKILL.md b/.opencode/skills/platform/governance-observability/SKILL.md new file mode 100644 index 0000000..2961a8d --- /dev/null +++ b/.opencode/skills/platform/governance-observability/SKILL.md @@ -0,0 +1,16 @@ +--- +name: tjwater-scenario-platform-governance-observability +description: 负责审计、缓存与平台元数据。 +version: 3.0.0 +--- + +# governance-observability Scenario Skill + +## 简介 +负责审计、缓存与平台元数据。 + +## 子模块索引 (渐进式引导) +- **audit**: 见 `./audit/SKILL.md` +- **cache**: 见 `./cache/SKILL.md` +- **meta**: 见 `./meta/SKILL.md` + diff --git a/.opencode/skills/platform/governance-observability/audit/SKILL.md b/.opencode/skills/platform/governance-observability/audit/SKILL.md new file mode 100644 index 0000000..d998aff --- /dev/null +++ b/.opencode/skills/platform/governance-observability/audit/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-platform-governance-observability-audit +description: platform/governance-observability 下 audit 操作技能。 +version: 3.0.0 +--- + +# audit Action Skill + +## 简介 +负责 `platform/governance-observability` 场景下 `audit` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/audit/logs` | 查询审计日志 | - | user_id (query), project_id (query), action (query), resource_type (query), start_time (query), end_time (query), skip (query), limit (query) | +| GET | `/api/v1/audit/logs/count` | 获取审计日志总数 | - | user_id (query), project_id (query), action (query), resource_type (query), start_time (query), end_time (query) | +| GET | `/api/v1/audit/logs/my` | 查询我的审计日志 | - | action (query), start_time (query), end_time (query), skip (query), limit (query) | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/platform/governance-observability/cache/SKILL.md b/.opencode/skills/platform/governance-observability/cache/SKILL.md new file mode 100644 index 0000000..d82d9e4 --- /dev/null +++ b/.opencode/skills/platform/governance-observability/cache/SKILL.md @@ -0,0 +1,23 @@ +--- +name: tjwater-action-platform-governance-observability-cache +description: platform/governance-observability 下 cache 操作技能。 +version: 3.0.0 +--- + +# cache Action Skill + +## 简介 +负责 `platform/governance-observability` 场景下 `cache` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| POST | `/api/v1/clearallredis/` | 清除所有缓存 | - | - | +| POST | `/api/v1/clearrediskey/` | 清除单个缓存键 | key (query) | - | +| POST | `/api/v1/clearrediskeys/` | 清除匹配的缓存键 | keys (query) | - | +| GET | `/api/v1/queryredis/` | 查询缓存键列表 | - | - | + +- 覆盖方法:`GET, POST` diff --git a/.opencode/skills/platform/governance-observability/meta/SKILL.md b/.opencode/skills/platform/governance-observability/meta/SKILL.md new file mode 100644 index 0000000..c2a11b4 --- /dev/null +++ b/.opencode/skills/platform/governance-observability/meta/SKILL.md @@ -0,0 +1,22 @@ +--- +name: tjwater-action-platform-governance-observability-meta +description: platform/governance-observability 下 meta 操作技能。 +version: 3.0.0 +--- + +# meta Action Skill + +## 简介 +负责 `platform/governance-observability` 场景下 `meta` 的具体接口调用。 + +## 子模块索引 (渐进式引导) +- 当前为叶子节点,直接使用下方接口目录。 + +## 接口目录 +| Method | Path | Summary | Required Params | Optional Params | +|---|---|---|---|---| +| GET | `/api/v1/meta/db/health` | 检查数据库健康状态 | - | - | +| GET | `/api/v1/meta/project` | 获取项目元数据 | - | - | +| GET | `/api/v1/meta/projects` | 列出用户项目 | - | - | + +- 覆盖方法:`GET` diff --git a/.opencode/skills/runbook.md b/.opencode/skills/runbook.md new file mode 100644 index 0000000..1e21adc --- /dev/null +++ b/.opencode/skills/runbook.md @@ -0,0 +1,70 @@ +# API Skills 使用 Runbook(工具调用链) + +## 1) 总体原则 + +- Skills 负责“告诉模型可做什么”。 +- `chat/stream` 内部启动 LLM 会话,并注册工具 `dynamic_http_call`。 +- LLM 通过工具调用后端能力,不直接发 HTTP。 +- Sidecar 执行器负责“代表当前用户调真实后端 API”(动态路径,无白名单)。 + +## 2) 请求入口(前端) + +- `POST /api/v1/copilot/chat/stream`(唯一前端入口) + +不提供 `/execute` 对外调用路径,统一通过 `chat/stream` + 工具调用链执行。 + +## 3) 工具参数约定(LLM 调用工具时) + +```json +{ + "path": "/api/v1/scada/by-ids-field-time-range", + "method": "GET", + "arguments": { + "device_ids": "170490", + "field": "monitored_value", + "start_time": "2026-03-29T07:57:47.338Z", + "end_time": "2026-03-30T07:57:47.338Z" + } +} +``` + +说明(工具 `dynamic_http_call`): +- `path` 必须以 `/` 开头。 +- `method` 支持:`GET/POST/PUT/PATCH/DELETE`。 +- `arguments` 会编码为 query 参数(列表会转为逗号拼接)。 + +## 4) 用户上下文注入(后端执行阶段) + +- `Authorization`(Bearer Token) +- `x-project-id` + +执行器会附带 `x-trace-id` 用于链路排查(可透传或自动生成)。 + +## 5) 排障要点 + +- `400`:检查工具参数 `path/method/arguments` 格式。 +- `401/403`:检查 token 与项目权限。 +- `404`:检查 `path` 是否正确。 +- `422`:检查 `arguments` 字段名与类型。 +- `5xx`:记录 `trace_id`,结合后端日志排查。 + +## 6) 前端工具调用链 + +前端工具(`locate_features`, `view_history`, `view_scada`, `show_chart`)的调用链与 `dynamic_http_call` 不同: + +``` +用户消息 → LLM → function calling → 调用前端工具 (如 locate_features) + ↓ + tool handler: + 1) 推送 SSE tool_call 事件到前端 + 2) 返回简短确认给 LLM("已定位到管道") + ↓ +前端同时收到: + - SSE event: tool_call → 前端执行操作(定位地图/打开面板/渲染图表) + - SSE event: token → 渲染 LLM 文字回复 +``` + +关键区别: +- `dynamic_http_call`:Sidecar 代理 HTTP 请求,结果返回给 LLM 做后续分析。 +- 前端工具:Sidecar 仅推送 SSE 事件,前端直接执行,结果不返回 LLM。 +- `show_chart`:LLM 先通过 `dynamic_http_call` 查询数据,处理为 x_data + series 格式后调用 `show_chart`,前端直接渲染图表,不再请求后端。 diff --git a/README.md b/README.md index 6f54ed6..1ef26cb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,160 @@ -# TJWaterAgent +# TJWaterAgent 目录结构说明 +`TJWaterAgent/` 是新的 opencode Agent 服务工程目录,负责对外提供 TJWater 智能助手接口,并通过 opencode SDK 启动或连接 opencode 运行时。 + +## 总体边界 + +```text +TJWaterAgent/ + package.json + tsconfig.json + src/ + opencode.json + .opencode/ + agents/ + tools/ + skills/ + package.json + tsconfig.json +``` + +| 位置 | 主要作用 | 典型内容 | +| --- | --- | --- | +| `TJWaterAgent/` | 服务宿主、API 层和编排层 | Express 服务、SSE 接口、会话管理、鉴权上下文、后端 API 代理、opencode SDK 启动逻辑 | +| `TJWaterAgent/.opencode/` | opencode 项目资产目录 | agent prompt、自定义 tools、skills 树、plugins 相关依赖 | + +## `TJWaterAgent/` 根目录的职责 + +根目录是 Node/TypeScript 服务本体,主要负责: + +1. 启动 HTTP 服务。 +2. 通过 `@opencode-ai/sdk` 启动内嵌 opencode server,或连接外部 opencode server。 +3. 管理 `conversationId -> opencode sessionId` 的映射。 +4. 保存并传递用户 `Authorization`、`x-project-id`、`x-trace-id`。 +5. 把 opencode 输出适配成前端需要的 SSE 事件。 +6. 为 `.opencode/tools/dynamic_http_call.ts` 提供内部回调接口。 +7. 代理调用真实 TJWater 后端 API。 + +主要目录和文件: + +```text +src/ + server.ts + config.ts + runtime/ + session/ + chat/ + routes/ + tools/ +``` + +其中 `src/` 是业务服务层,不直接放 opencode skill 或 agent prompt。 + +## `.opencode/` 的职责 + +`.opencode/` 是给 opencode 运行时读取的项目资产目录,不是对外 HTTP 服务的主代码目录。 + +### agents + +```text +.opencode/agents/tjwater-assistant.md +``` + +这里定义默认 agent 的角色、行为规则、模型配置和工具使用策略。 + +当前项目已将 always-loaded instructions 收敛到 `tjwater-assistant.md`,`opencode.json` 不再额外配置 `instructions` 数组。 + +### tools + +```text +.opencode/tools/ + dynamic_http_call.ts + locate_features.ts + view_history.ts + view_scada.ts + show_chart.ts +``` + +这些是 opencode 可以调用的自定义工具。 + +`dynamic_http_call.ts` 不直接保存用户 token,也不直接访问后端。它会回调 `TJWaterAgent` 的内部接口,由上级服务层根据当前 session 补上用户 token、项目 ID 和 trace ID,再调用 TJWater 后端。 + +前端类工具如 `locate_features`、`view_history`、`view_scada`、`show_chart` 主要用于触发 UI 动作或可视化,不应被当作数据查询工具。 + +### skills + +```text +.opencode/skills/tjwater-skills-root-index/ + SKILL.md + ai/ + analytics/ + business/ + data/ + platform/ +``` + +这里保存从 `TJWaterCopilot` 迁移过来的技能树,并保持原有树结构,符合渐进式披露设计。 + +agent 需要某个领域知识时再按需加载对应 skill,不把整棵技能树作为 always-loaded prompt 一次性注入。 + +## 依赖边界 + +根目录和 `.opencode/` 使用两组 npm 依赖,职责不同。 + +### 根目录依赖 + +```text +TJWaterAgent/package.json +``` + +用于服务本体,例如: + +```text +@opencode-ai/sdk +express +zod +pino +``` + +### `.opencode` 依赖 + +```text +TJWaterAgent/.opencode/package.json +``` + +用于 opencode 自定义 tools/plugins,例如: + +```text +@opencode-ai/plugin +typescript +@types/node +``` + +这两组依赖不要混在一起:根目录负责服务运行,`.opencode` 负责 opencode 扩展资产的类型检查和运行依赖。 + +## 部署安装 + +默认部署不需要全局安装 `opencode` CLI。服务会通过 `@opencode-ai/sdk` 的 embedded 模式启动 opencode server。 + +推荐安装和启动流程: + +```bash +cd TJWaterAgent +npm install +npm run build + +cd .opencode +npm install + +cd .. +npm run start +``` + +如果需要连接外部独立运行的 opencode server,可以配置: + +```bash +OPENCODE_BASE_URL=http://127.0.0.1:4096 +``` + +配置后,`TJWaterAgent` 会连接该外部 opencode server,而不是自行启动 embedded opencode server。 +>>>>>>> 414247d (新增 skills、README,指定 opencode 的启动行为) diff --git a/opencode.json b/opencode.json index 3b48e0e..ebcbb1d 100644 --- a/opencode.json +++ b/opencode.json @@ -5,11 +5,5 @@ "hostname": "127.0.0.1", "port": 4096 }, - "default_agent": "tjwater-assistant", - "instructions": [ - "../TJWaterCopilot/.github/copilot-instructions.md", - "../TJWaterCopilot/.github/skills/SKILL.md", - "../TJWaterCopilot/.github/skills/runbook.md", - "../TJWaterCopilot/.github/skills/examples.md" - ] + "default_agent": "tjwater-assistant" }