wellbore-cli 0.1.0__py3-none-any.whl
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.
- wellbore_cli/__init__.py +2 -0
- wellbore_cli/__main__.py +3 -0
- wellbore_cli/cli.py +268 -0
- wellbore_cli/client.py +159 -0
- wellbore_cli/config.py +69 -0
- wellbore_cli/errors.py +7 -0
- wellbore_cli/files.py +59 -0
- wellbore_cli/skills/wellbore/SKILL.md +45 -0
- wellbore_cli/skills/wellbore/agents/openai.yaml +4 -0
- wellbore_cli/skills/wellbore/assets/deviated.yaml +33 -0
- wellbore_cli/skills/wellbore/assets/geology.yaml +9 -0
- wellbore_cli/skills/wellbore/assets/horizontal.yaml +33 -0
- wellbore_cli/skills/wellbore/assets/liner.yaml +35 -0
- wellbore_cli/skills/wellbore/assets/straight.yaml +30 -0
- wellbore_cli/skills/wellbore/assets/updip.yaml +33 -0
- wellbore_cli/skills/wellbore/references/api.md +24 -0
- wellbore_cli/skills/wellbore/references/commands.md +54 -0
- wellbore_cli/skills/wellbore/references/domain.md +62 -0
- wellbore_cli/skills/wellbore/references/recovery.md +23 -0
- wellbore_cli/skills/wellbore/references/setup.md +49 -0
- wellbore_cli-0.1.0.dist-info/METADATA +115 -0
- wellbore_cli-0.1.0.dist-info/RECORD +26 -0
- wellbore_cli-0.1.0.dist-info/WHEEL +5 -0
- wellbore_cli-0.1.0.dist-info/entry_points.txt +2 -0
- wellbore_cli-0.1.0.dist-info/licenses/LICENSE +133 -0
- wellbore_cli-0.1.0.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# 地层与压力:不含井身结构,展示缺失压力和两段压力之间的间断。
|
|
2
|
+
# 只写地层底深的一层没有钻井液数据;null 表示明确缺席。
|
|
3
|
+
stratigraphy:
|
|
4
|
+
第四系: [300, 1.05, [1.10, 1.20], 1.65]
|
|
5
|
+
砂岩层: [1200, 1.20, [1.25, 1.40], 1.85]
|
|
6
|
+
泥岩隔层: 1400
|
|
7
|
+
页岩层: [2200, null, [1.50, 1.65], 2.05]
|
|
8
|
+
目标层: [3000, 1.65, null, 2.20]
|
|
9
|
+
fluidDensityAxis: [1.0, 2.3]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 水平井:90° 井斜,A 点后延伸水平段。
|
|
2
|
+
# 井深用于开次和套管,垂深用于地层与压力。修改后可直接切换可视化填表。
|
|
3
|
+
wellInfo:
|
|
4
|
+
wellName: 示例-水平井
|
|
5
|
+
wellType: horizontal well
|
|
6
|
+
deviationAngle_deg: 90
|
|
7
|
+
totalDepth_m: 4500
|
|
8
|
+
maxVerticalDepth_m: auto
|
|
9
|
+
keyPoints:
|
|
10
|
+
keypoint: 1600
|
|
11
|
+
A: [2800, 2400]
|
|
12
|
+
B: 4400
|
|
13
|
+
stratigraphy:
|
|
14
|
+
第四系: 300
|
|
15
|
+
砂岩层: 1200
|
|
16
|
+
泥岩层: 2200
|
|
17
|
+
目标层: 2800
|
|
18
|
+
drillingFluidAndPressure:
|
|
19
|
+
- [300, 1.05, [1.10, 1.20], 1.65]
|
|
20
|
+
- [1200, 1.20, [1.25, 1.40], 1.85]
|
|
21
|
+
- [2200, 1.45, [1.50, 1.65], 2.05]
|
|
22
|
+
- [2800, 1.65, [1.70, 1.85], 2.20]
|
|
23
|
+
fluidDensityAxis: [1.0, 2.3]
|
|
24
|
+
holeSections:
|
|
25
|
+
- sec: [300, 444.5, 一开, auto, slide]
|
|
26
|
+
casings:
|
|
27
|
+
- cas: [295, 339.7, 表层套管, auto]
|
|
28
|
+
- sec: [2200, 311.2, 二开, auto, slide]
|
|
29
|
+
casings:
|
|
30
|
+
- cas: [2195, 244.5, 技术套管, auto]
|
|
31
|
+
- sec: [4500, 215.9, 三开, auto, slide]
|
|
32
|
+
casings:
|
|
33
|
+
- cas: [4500, 139.7, 油层套管, auto]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# 悬挂回接:二开内含尾管和回接筒,三开展示水泥返高。
|
|
2
|
+
# 井深用于开次和套管,垂深用于地层与压力。修改后可直接切换可视化填表。
|
|
3
|
+
wellInfo:
|
|
4
|
+
wellName: 示例-悬挂回接
|
|
5
|
+
wellType: straight well
|
|
6
|
+
deviationAngle_deg: 0
|
|
7
|
+
totalDepth_m: 3000
|
|
8
|
+
maxVerticalDepth_m: auto
|
|
9
|
+
|
|
10
|
+
stratigraphy:
|
|
11
|
+
第四系: 300
|
|
12
|
+
砂岩层: 1200
|
|
13
|
+
泥岩层: 2200
|
|
14
|
+
目标层: 3000
|
|
15
|
+
drillingFluidAndPressure:
|
|
16
|
+
- [300, 1.05, [1.10, 1.20], 1.65]
|
|
17
|
+
- [1200, 1.20, [1.25, 1.40], 1.85]
|
|
18
|
+
- [2200, 1.45, [1.50, 1.65], 2.05]
|
|
19
|
+
- [3000, 1.65, [1.70, 1.85], 2.20]
|
|
20
|
+
fluidDensityAxis: [1.0, 2.3]
|
|
21
|
+
holeSections:
|
|
22
|
+
- sec: [300, 444.5, 一开, auto, slide]
|
|
23
|
+
casings:
|
|
24
|
+
- cas: [295, 339.7, 表层套管, auto]
|
|
25
|
+
- sec: [2200, 311.2, 二开, auto, slide]
|
|
26
|
+
casings:
|
|
27
|
+
- cas: [[1000, 2195], 244.5, 悬挂尾管, auto, both]
|
|
28
|
+
cement: none
|
|
29
|
+
- cas: [[0, 1000], 250, 回接筒, auto, none]
|
|
30
|
+
cement: full
|
|
31
|
+
- sec: [3000, 215.9, 三开, auto, slide]
|
|
32
|
+
casings:
|
|
33
|
+
- cas: [3000, 139.7, 油层套管, auto]
|
|
34
|
+
cement:
|
|
35
|
+
- [2400, auto, 水泥返高]
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# 直井:三开结构、完整地层压力、全段固井。
|
|
2
|
+
# 井深用于开次和套管,垂深用于地层与压力。修改后可直接切换可视化填表。
|
|
3
|
+
wellInfo:
|
|
4
|
+
wellName: 示例-直井
|
|
5
|
+
wellType: straight well
|
|
6
|
+
deviationAngle_deg: 0
|
|
7
|
+
totalDepth_m: 3000
|
|
8
|
+
maxVerticalDepth_m: auto
|
|
9
|
+
|
|
10
|
+
stratigraphy:
|
|
11
|
+
第四系: 300
|
|
12
|
+
砂岩层: 1200
|
|
13
|
+
泥岩层: 2200
|
|
14
|
+
目标层: 3000
|
|
15
|
+
drillingFluidAndPressure:
|
|
16
|
+
- [300, 1.05, [1.10, 1.20], 1.65]
|
|
17
|
+
- [1200, 1.20, [1.25, 1.40], 1.85]
|
|
18
|
+
- [2200, 1.45, [1.50, 1.65], 2.05]
|
|
19
|
+
- [3000, 1.65, [1.70, 1.85], 2.20]
|
|
20
|
+
fluidDensityAxis: [1.0, 2.3]
|
|
21
|
+
holeSections:
|
|
22
|
+
- sec: [300, 444.5, 一开, auto, slide]
|
|
23
|
+
casings:
|
|
24
|
+
- cas: [295, 339.7, 表层套管, auto]
|
|
25
|
+
- sec: [2200, 311.2, 二开, auto, slide]
|
|
26
|
+
casings:
|
|
27
|
+
- cas: [2195, 244.5, 技术套管, auto]
|
|
28
|
+
- sec: [3000, 215.9, 三开, auto, slide]
|
|
29
|
+
casings:
|
|
30
|
+
- cas: [3000, 139.7, 油层套管, auto]
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# 上倾井:105° 井斜,A 点之后井底垂深回升。
|
|
2
|
+
# 井深用于开次和套管,垂深用于地层与压力。修改后可直接切换可视化填表。
|
|
3
|
+
wellInfo:
|
|
4
|
+
wellName: 示例-上倾井
|
|
5
|
+
wellType: updip well
|
|
6
|
+
deviationAngle_deg: 105
|
|
7
|
+
totalDepth_m: 4300
|
|
8
|
+
maxVerticalDepth_m: auto
|
|
9
|
+
keyPoints:
|
|
10
|
+
keypoint: 1600
|
|
11
|
+
A: [2800, 2400]
|
|
12
|
+
B: 4200
|
|
13
|
+
stratigraphy:
|
|
14
|
+
第四系: 300
|
|
15
|
+
砂岩层: 1200
|
|
16
|
+
泥岩层: 2200
|
|
17
|
+
目标层: 2800
|
|
18
|
+
drillingFluidAndPressure:
|
|
19
|
+
- [300, 1.05, [1.10, 1.20], 1.65]
|
|
20
|
+
- [1200, 1.20, [1.25, 1.40], 1.85]
|
|
21
|
+
- [2200, 1.45, [1.50, 1.65], 2.05]
|
|
22
|
+
- [2800, 1.65, [1.70, 1.85], 2.20]
|
|
23
|
+
fluidDensityAxis: [1.0, 2.3]
|
|
24
|
+
holeSections:
|
|
25
|
+
- sec: [300, 444.5, 一开, auto, slide]
|
|
26
|
+
casings:
|
|
27
|
+
- cas: [295, 339.7, 表层套管, auto]
|
|
28
|
+
- sec: [2200, 311.2, 二开, auto, slide]
|
|
29
|
+
casings:
|
|
30
|
+
- cas: [2195, 244.5, 技术套管, auto]
|
|
31
|
+
- sec: [4300, 215.9, 三开, auto, slide]
|
|
32
|
+
casings:
|
|
33
|
+
- cas: [4300, 139.7, 油层套管, auto]
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# REST 契约与边界
|
|
2
|
+
|
|
3
|
+
核对日期:2026-10-04(北京时间)。来源:[线上手写文档](https://ccqwell.vip.cpolar.cn/docs)、[OpenAPI](https://ccqwell.vip.cpolar.cn/openapi.json),以及服务源码提交 dfc4e7efe5f9353aec969dbee2100eb1f67a121d。若服务升级,以线上校验与实际响应为准;文档文字与领域源码不一致时不猜测字段。
|
|
4
|
+
|
|
5
|
+
| CLI | REST | 认证 |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| health | GET /api/health | 无 |
|
|
8
|
+
| validate / normalize | POST /api/input/normalize,YAML/JSON 原始 body | 无 |
|
|
9
|
+
| render / jobs submit | POST /api/jobs?image_format=png 或 svg;可带 edit/project_name | Bearer |
|
|
10
|
+
| jobs status / wait | GET /api/jobs/{id} | 源码公开,CLI 为一致性携带 Bearer |
|
|
11
|
+
| jobs events | GET /api/jobs/{id}/events | 同上 |
|
|
12
|
+
| account | GET /api/account | Bearer |
|
|
13
|
+
| quota | GET /api/account/quota | Bearer |
|
|
14
|
+
| history | GET /api/account/artifacts,裸数组 | Bearer |
|
|
15
|
+
| download | GET /api/renders/{archive_id}/{name} 或 {archive_id}.zip | Bearer,创建者 |
|
|
16
|
+
|
|
17
|
+
submit 返回 202 快照;字段包括 id、archive_id、status、warnings、files(name/bytes)、error。
|
|
18
|
+
状态为 queued/running/success/failed/cancelled。GET failed 仍是 200,error 内保存 problem。SSE event 名 status,data 为同形快照;终态后关闭,不做重放。
|
|
19
|
+
normalize 返回完整输入 JSON,不创建任务不占绘图额度。REST submit 的领域校验可在异步渲染中失败,所以默认 render 先 normalize。
|
|
20
|
+
非 2xx 使用 application/problem+json,字段包括 type/title/status/detail/instance/traceId/errors。
|
|
21
|
+
|
|
22
|
+
不实现网页会话限定的注册/登录、资料编辑、密码、Key 管理、历史永久删除、收藏、管理员功能。无需拿测试 Key 尝试这些端点。源代码 MCP 层的幂等键、取消、元数据、分块/预览工具不是公开 REST CLI 能力,不能直接宣称支持。
|
|
23
|
+
|
|
24
|
+
签名主图 URL 可供分享但有短期有效期,CLI 通过认证路径下载,不保存/输出签名 URL。下载客户端不跨重定向转发密钥;产物名必须是单个路径名称。
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 命令选择
|
|
2
|
+
|
|
3
|
+
## 通用规则
|
|
4
|
+
|
|
5
|
+
`wellbore COMMAND --help` 提供当前版本帮助。通用参数可放根命令或叶子命令:`--json`、`--base-url`、`--key-file`、`--timeout`、`--no-proxy`。用 JSON 字段处理返回值,勿从 stderr 进度提取结构化状态。
|
|
6
|
+
普通 stdout 为一份 JSON;`jobs events --json` 为 JSON Lines。输入支持 .yaml/.yml/.json,`-` 表示 stdin,需 `--input-format yaml|json`,最大 1 MiB。
|
|
7
|
+
|
|
8
|
+
## 一次出图
|
|
9
|
+
|
|
10
|
+
```sh
|
|
11
|
+
wellbore validate well.yaml --json
|
|
12
|
+
wellbore render well.yaml --image-format png -o output --json
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
render 默认预校验、提交一次、轮询、下载文件清单及规范化输入。`--wait-timeout` 默认 180 秒,`--interval` 默认 1 秒,单次请求 `--timeout` 默认 30 秒。所有值须大于零且有限。
|
|
16
|
+
产物放在 `output/<archive_id>/`,不覆盖已有文件。`--skip-validation` 省略预校验,仍会由渲染器校验,但坏输入可能已消耗额度,通常不用。
|
|
17
|
+
|
|
18
|
+
## 分步和批处理
|
|
19
|
+
|
|
20
|
+
```sh
|
|
21
|
+
wellbore jobs submit well.yaml --image-format svg --name '项目名称' --json
|
|
22
|
+
wellbore jobs status JOB_ID --json
|
|
23
|
+
wellbore jobs wait JOB_ID --wait-timeout 300 --json
|
|
24
|
+
wellbore jobs events JOB_ID --wait-timeout 300 --json
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
从 submit 返回值保留 id,等待不会创建新任务。SSE 只跟现有任务,终态后关闭;流中断改用 wait 查询,不重新 submit。不支持 CLI 批量服务提交命令;脚本逐个提交、每次保留 ID,避免失控并发和额度浪费。
|
|
28
|
+
|
|
29
|
+
## 输入、历史与产物
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
wellbore template horizontal -o well.yaml
|
|
33
|
+
wellbore normalize well.yaml -o normalized.json --json
|
|
34
|
+
wellbore history --json
|
|
35
|
+
wellbore download ARCHIVE_ID --file well_structure_plot.png -o figure.png --json
|
|
36
|
+
wellbore download ARCHIVE_ID --file well_data.yaml -o normalized.yaml --json
|
|
37
|
+
wellbore download ARCHIVE_ID -o archive.zip --json
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
normalize 的 stdout 或输出文件是完整 JSON。规范化 YAML 下载可能以 JSON 文本表达(JSON 是 YAML 子集),无需“修复”格式。ZIP 不自动解压。下载支持单文件原子写入,不支持断点续传或自动缓存协议;断线后重新下载整个所选文件。
|
|
41
|
+
产物清单由实际返回决定,不能假定所有 CSV 都存在。SVG/PNG 格式在提交时决定,下载不转换格式。
|
|
42
|
+
|
|
43
|
+
## 更新现有历史
|
|
44
|
+
|
|
45
|
+
```sh
|
|
46
|
+
wellbore render revised.yaml --edit ARCHIVE_ID --name '修订井' -o revised-output --json
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
edit 成功后更新选定历史,不一定新建记录。下载使用状态的 archive_id,空时才回退 id。此命令修改远程历史且消耗绘图额度,必须属于用户要求的修改范围。客户端不提供收藏、删除、复制项目、管理账户或 API Key 等网页会话操作。
|
|
50
|
+
|
|
51
|
+
## 退出码
|
|
52
|
+
|
|
53
|
+
0 成功;1 HTTP/服务问题;2 用法/本地文件/输入;3 凭据;4 网络/等待超时;5 failed/cancelled;130 中断。
|
|
54
|
+
`jobs status` 查询到 failed 也返回 5 并保留完整快照;不要只检查 HTTP 状态。渲染失败保留 error、traceId、errors。用法错误由 argparse 提示,不保证 stderr 为 JSON。
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# 领域与输入口径
|
|
2
|
+
|
|
3
|
+
## 数量、单位与最小区块
|
|
4
|
+
|
|
5
|
+
井深是沿井身长度:开次/套管顶底深、关键点 `depth_m`、总井深。垂深是竖直投影:地层、钻井液分段、关键点 `verticalDepth_m`。最大垂深与总井深不能互换,关键点显示深度只影响标注。
|
|
6
|
+
深度单位 m、真实直径 mm、压力当量密度 g/cm³;井斜角范围 `[0,180)`。井型是标签,几何由井斜角及关键点决定,不擅自改写用户已声明的井型。
|
|
7
|
+
|
|
8
|
+
| 目标 | 输入块 |
|
|
9
|
+
|---|---|
|
|
10
|
+
| 地层 | stratigraphy |
|
|
11
|
+
| 钻井液 | drillingFluidAndPressure |
|
|
12
|
+
| 地层和钻井液 | 两块,最终底深一致 |
|
|
13
|
+
| 轨迹(非直井) | wellInfo + keyPoints |
|
|
14
|
+
| 井身结构 | wellInfo + keyPoints + holeSections |
|
|
15
|
+
| 纯直井结构 | wellInfo(0°)+ holeSections,YAML 可省略 keyPoints |
|
|
16
|
+
|
|
17
|
+
不要为地层图补一个 0° 占位井;这会触发纯直井必须有开次的校验。区块不可全部缺席。网页文档宣称 wellInfo 必填,但源码支持地层/钻井液独立绘图;网页“最小 YAML”缺少直井开次,不能直接当有效模板。
|
|
18
|
+
|
|
19
|
+
## YAML 是便利层,JSON 是严格契约
|
|
20
|
+
|
|
21
|
+
YAML 支持短名、位置式与自动推导,缺席顶层块编译为 null;JSON 不等同 YAML 短写法,须使用服务规范化后的完整字段。优先编辑 YAML,用 `normalize` 查看完整 JSON,不把短写 JSON 发送为 `application/json`。
|
|
22
|
+
|
|
23
|
+
```yaml
|
|
24
|
+
wellInfo:
|
|
25
|
+
示例水平井: 90
|
|
26
|
+
keyPoints:
|
|
27
|
+
keypoint: 1000
|
|
28
|
+
A: [1500, 1400]
|
|
29
|
+
B: 2200
|
|
30
|
+
holeSections:
|
|
31
|
+
- sec: [2300, 215.9, 裸眼段, auto, slide]
|
|
32
|
+
casings: []
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
这是格式示例,不能作为用户实际井数据。需要明确井底时在短写 wellInfo 中增加 `Depth: 总井深`。
|
|
36
|
+
非零井斜角要求 A、B 可得到垂深,且造斜点/侧钻点至少一个存在。短名 `keypoint` 有导眼时为侧钻点,否则为造斜点;两者都有时改用完整字段。
|
|
37
|
+
B 点可写单个井深,由 A 点切线推导垂深。完整 YAML 的 B 点 `verticalDepth_m` 可显式写 auto/null:
|
|
38
|
+
`垂深_B = 垂深_A + (井深_B - 井深_A) × cos(井斜角)`,保留两位小数。手写数值原样保留,A 点垂深仍须明确。JSON 保持严格数值契约,不把 YAML 自动推导规则复制进客户端。
|
|
39
|
+
|
|
40
|
+
## 地层与钻井液
|
|
41
|
+
|
|
42
|
+
地层短写 `地层名: 底深`,底深为垂深、不是厚度,自上而下递增,第一层从 0 起、后层连接前层底深。
|
|
43
|
+
钻井液短写 `[底深, 孔隙压力, [窗口下限,窗口上限], 破裂压力?]`,分段底深也是垂深。破裂压力可省略,孔隙压力可为 null。并列两栏最后底深一致,不补齐或截断用户数据。
|
|
44
|
+
`fluidDensityAxis: [下限,上限]` 可用 auto;YAML 短写 `drillingFluidLabelHide: [孔隙压力显示?,窗口显示?,破裂压力显示?]` 为显示布尔,不因字段名 hide 反转它的含义。完整契约使用字段名清单,不能混用。
|
|
45
|
+
|
|
46
|
+
## 开次、套管与固井
|
|
47
|
+
|
|
48
|
+
`sec: [底深,井径,段名?,绘图井径?,标签模式?]`:开次自浅至深首尾相接。
|
|
49
|
+
`cas: [底深,外径,段名?,绘图外径?,构件?]`:套管须在所属开次范围内,外径小于井径。需要尾管顶深/复合套管时从 liner 模板开始,按完整字段或服务支持的位置式表达,勿把上一开次自动当作套管顶端。
|
|
50
|
+
|
|
51
|
+
- YAML 绘图尺寸用 auto 表示示意环链推导、real 表示真实比例。显式 null 被按 auto 处理并警告;严格 JSON 的 null 含义不同,交给服务编译。
|
|
52
|
+
- 真实尺寸用于标注与 CSV,绘图尺寸只控制粗细。不得为改善图形擅改真实直径。
|
|
53
|
+
- YAML 套管省略 cement 表示整段固井;none 无固井、full 整段、segments 按区间。用户固井情况不明确时询问,不接受模板默认作为事实。
|
|
54
|
+
- 水泥区间端深 auto 跟随图上套管端面,数值是声明井深;备注用声明端深,勿把图上延伸长度当成实测深度。
|
|
55
|
+
- 悬挂器位于顶端、套管头位于底端(服务特定术语);水泥环是另一个事实。段名 null 为通名、空串为不印前缀,均不隐藏段本身。
|
|
56
|
+
- `pilotHoleGuideLine: auto` 依赖轨迹和开次,null/省略表示无导眼。
|
|
57
|
+
|
|
58
|
+
## 图形解释
|
|
59
|
+
|
|
60
|
+
全图共享深度标尺,地层在场时可能非线性。不要按整图像素高度线性换算垂深或承诺区间裁剪。warnings 表示仍可生成但发生降级,逐条说明被跳过的标注/几何,不把“图成功”解释成输入无问题。
|
|
61
|
+
|
|
62
|
+
来源:服务 CONTEXT.md、mcp_docs.py(YAML 指南)、ADR 0031/0032/0043/0058/0064/0072/0097。最终以目标服务 `validate` 的结果为准。
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 错误与恢复
|
|
2
|
+
|
|
3
|
+
| 现象 | 操作 |
|
|
4
|
+
|---|---|
|
|
5
|
+
| 401/403 | 检查 auth status、基地址、Key 是否有效或账户冻结;网页会话限定端点不改用 API Key 强行调用 |
|
|
6
|
+
| 422 | 读取 errors 中 path/line/原因,核对井深/垂深和跨块依赖,修改源 YAML 后 validate |
|
|
7
|
+
| 429 | quota 查询实际重置时间,按服务返回等待;不要不停重试 |
|
|
8
|
+
| 413/415 | 输入不超过 1 MiB;指定正确扩展名或 --input-format |
|
|
9
|
+
| 503 队满 | 服务明确拒绝,可稍后人工重试;不能把未知受理结果等同明确拒绝 |
|
|
10
|
+
| 查询返回 HTTP 200、status failed | 读取嵌套 error,返回任务失败,不下载、不自动重画 |
|
|
11
|
+
| 客户端等待超时/Ctrl-C | 任务可能继续,用同一 JOB_ID 查询/等待 |
|
|
12
|
+
| SSE 提前断开 | jobs wait 同一 ID;不 submit |
|
|
13
|
+
| POST 超时/断线、没拿到 ID | 查 history,对比名称、时间及规范化输入;避免自动重发 |
|
|
14
|
+
| job 404 | 可能重启或完成态淘汰;history 找持久化产物并 download |
|
|
15
|
+
| 下载 404 | 检查 archive_id、当前账户、文件名;历史清理可能永久删除产物 |
|
|
16
|
+
| 文件已存在 | 换路径;只在用户授权覆盖后使用 --force |
|
|
17
|
+
| 代理 8118 不可达 | --no-proxy 或配置当前可用 HTTP 代理 |
|
|
18
|
+
|
|
19
|
+
任务状态在进程内且有条数上限;历史与产物寿命更长,但会被套餐历史规则或部署清理删除,不能承诺永久保留。历史里没有某条记录不能证明一次未知 POST 未被受理。
|
|
20
|
+
|
|
21
|
+
REST /api/jobs 没有公开幂等键,与 MCP submit_job 不同。不要添加自创 Idempotency-Key 后宣称已防重,也不要把 MCP 的同步预检口径套给 REST。render 默认先调用公开 normalize 来减少错误提交。
|
|
22
|
+
|
|
23
|
+
下载逐文件原子落盘,发生中断时已有完整文件可能保留,最终目标不留下半份文件。部分下载失败后可根据成功文件与 history 清单补取缺失文件,不再次绘图。保留 traceId 与恢复命令,但不输出密钥或整份敏感输入。
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 安装与认证
|
|
2
|
+
|
|
3
|
+
## 安装 CLI
|
|
4
|
+
|
|
5
|
+
本机源码:
|
|
6
|
+
|
|
7
|
+
```sh
|
|
8
|
+
uv tool install --python 3.11 /path/to/drilling-agent-skills
|
|
9
|
+
wellbore --version
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
代码已推送远端时:
|
|
13
|
+
|
|
14
|
+
```sh
|
|
15
|
+
uv tool install --python 3.11 'git+https://github.com/elf004-star/drilling-agent-skills.git'
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
CLI 需要 Python 3.11+,运行时无第三方依赖。未发布到 PyPI 时不要使用索引名称安装。
|
|
19
|
+
在源码目录也可运行 `uv run --python 3.11 wellbore --help`。不要安装服务端绘图栈。
|
|
20
|
+
|
|
21
|
+
## 密钥与基地址
|
|
22
|
+
|
|
23
|
+
要求用户在终端交互执行 `wellbore auth set`,输入隐藏。本机 POSIX 文件权限为 0600,Windows 使用受保护的用户目录。已有密钥可使用 `WELLBORE_API_KEY` 或 `--key-file`;不要把明文放到参数、URL 或聊天中。检查 `wellbore auth status --json`,不显示密钥。
|
|
24
|
+
|
|
25
|
+
默认服务为 `https://ccqwell.vip.cpolar.cn`。优先级:`--base-url` > `WELLBORE_BASE_URL` > 本机配置 > 默认;`--key-file` > 环境密钥 > 保存文件。配置目录由 `WELLBORE_CONFIG_DIR` 或 `$XDG_CONFIG_HOME/wellbore`(默认 `~/.config/wellbore`)确定。
|
|
26
|
+
|
|
27
|
+
```sh
|
|
28
|
+
wellbore config set-url https://service.example
|
|
29
|
+
wellbore config show --json
|
|
30
|
+
wellbore health --json
|
|
31
|
+
wellbore quota --json
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`auth clear` 不撤销服务端 Key,环境密钥也不会被删除。更换/撤销 Key 在服务 `/keys` 网页完成。
|
|
35
|
+
`health` 无需密钥,不能证明账户有绘图权限;`quota` 读取实时额度,勿硬编码套餐数字。
|
|
36
|
+
|
|
37
|
+
## 代理与 HTTPS
|
|
38
|
+
|
|
39
|
+
网络请求遵循环境代理。代理不可用时加 `--no-proxy`;有可用本地 HTTP 代理时可设置 `HTTPS_PROXY=http://127.0.0.1:8118`。CLI 不直接支持 SOCKS,需使用 HTTP 代理。
|
|
40
|
+
远程只允许 HTTPS;本机 localhost/127.0.0.1/::1 可使用 HTTP。重定向被拒绝,不能绕过该限制转发密钥。
|
|
41
|
+
|
|
42
|
+
## skill 安装
|
|
43
|
+
|
|
44
|
+
```sh
|
|
45
|
+
wellbore skill install
|
|
46
|
+
wellbore skill install --dir /path/to/skills
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
复制至 `<dir>/wellbore`,已有目录拒绝覆盖。更新时先审阅已有技能,再选择新目录或自行替换。默认技能根目录为 `$CODEX_HOME/skills`,未设置时为 `~/.codex/skills`。
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: wellbore-cli
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A lightweight REST client and progressive-disclosure skill for Wellbore Studio
|
|
5
|
+
Author-email: elf004-star <1873475824@qq.com>
|
|
6
|
+
License-Expression: PolyForm-Noncommercial-1.0.0
|
|
7
|
+
Project-URL: Homepage, https://github.com/elf004-star/drilling-agent-skills
|
|
8
|
+
Project-URL: Repository, https://github.com/elf004-star/drilling-agent-skills
|
|
9
|
+
Project-URL: Issues, https://github.com/elf004-star/drilling-agent-skills/issues
|
|
10
|
+
Project-URL: Documentation, https://github.com/elf004-star/drilling-agent-skills/blob/main/docs/architecture.md
|
|
11
|
+
Keywords: wellbore,drilling,well-structure,petroleum,geology,cli,rest-client,agent-skill
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Science/Research
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
20
|
+
Classifier: Topic :: Scientific/Engineering
|
|
21
|
+
Requires-Python: >=3.11
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
License-File: LICENSE
|
|
24
|
+
Dynamic: license-file
|
|
25
|
+
|
|
26
|
+
# wellbore
|
|
27
|
+
|
|
28
|
+
井身结构图服务的轻量客户端。Python 3.11+,运行时零第三方依赖,无需安装 matplotlib、字体或服务端代码。内置中文命令帮助、YAML 模板和按需加载的 Codex skill。
|
|
29
|
+
|
|
30
|
+
## 安装
|
|
31
|
+
|
|
32
|
+
从 PyPI 安装(推荐用 [uv](https://docs.astral.sh/uv/getting-started/installation/) 装成隔离的命令行工具):
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
uv tool install wellbore-cli
|
|
36
|
+
wellbore --help
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
`pipx install wellbore-cli` 或 `pip install wellbore-cli` 等价。
|
|
40
|
+
|
|
41
|
+
从源码安装(开发本仓库或使用未发布版本时):
|
|
42
|
+
|
|
43
|
+
```sh
|
|
44
|
+
uv tool install --python 3.11 'git+https://github.com/elf004-star/drilling-agent-skills.git'
|
|
45
|
+
uv tool install --python 3.11 .
|
|
46
|
+
# 或不全局安装
|
|
47
|
+
uv run --python 3.11 wellbore --help
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## 五分钟上手
|
|
51
|
+
|
|
52
|
+
```sh
|
|
53
|
+
wellbore auth set # 隐藏输入 API Key,本机保存
|
|
54
|
+
wellbore health
|
|
55
|
+
wellbore quota
|
|
56
|
+
wellbore template straight -o well.yaml
|
|
57
|
+
# 编辑 well.yaml,替换示例井数据
|
|
58
|
+
wellbore validate well.yaml
|
|
59
|
+
wellbore render well.yaml -o output
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
输出保存到 `output/<archive_id>/`,包括图片、服务实际生成的 CSV 等文件和规范化输入 `well_data.yaml`。保留服务 warnings;不要把示例数据当作用户的实际井数据。
|
|
63
|
+
|
|
64
|
+
临时密钥推荐通过 `WELLBORE_API_KEY` 环境变量或 `--key-file /path/to/key` 传入。避免把密钥直接写在命令行、URL、脚本或仓库。`auth clear` 仅删除本机存储;撤销 Key 在服务网页完成。POSIX 保存文件权限为 0600;Windows 应使用受保护的用户配置目录。
|
|
65
|
+
|
|
66
|
+
基地址默认 `https://ccqwell.vip.cpolar.cn`,可运行 `wellbore config set-url https://your-service.example`。优先级:`--base-url` > `WELLBORE_BASE_URL` > 配置 > 默认值;密钥优先级:显式 `--key-file` > `WELLBORE_API_KEY` > 保存文件。`WELLBORE_CONFIG_DIR` 可隔离多个使用环境。
|
|
67
|
+
|
|
68
|
+
## 分步操作与脚本
|
|
69
|
+
|
|
70
|
+
```sh
|
|
71
|
+
wellbore normalize well.yaml -o normalized.json
|
|
72
|
+
wellbore jobs submit well.yaml --image-format svg --json
|
|
73
|
+
wellbore jobs status JOB_ID --json
|
|
74
|
+
wellbore jobs wait JOB_ID --wait-timeout 300 --json
|
|
75
|
+
wellbore jobs events JOB_ID --json # JSON Lines,每行一个完整快照
|
|
76
|
+
wellbore history --json
|
|
77
|
+
wellbore download ARCHIVE_ID --file well_structure_plot.svg -o figure.svg
|
|
78
|
+
wellbore download ARCHIVE_ID -o archive.zip
|
|
79
|
+
wellbore render well.yaml --edit ARCHIVE_ID --name '测试井' -o output
|
|
80
|
+
cat well.yaml | wellbore validate - --input-format yaml --json
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
所有命令支持 `--json`、`--base-url`、`--key-file`、`--timeout`、`--no-proxy`。普通命令的 stdout 是单份 JSON;进度和错误走 stderr;模板与 normalize 可直接输出输入文本。`jobs events --json` 为 JSON Lines。现有文件默认拒绝覆盖,显式 `--force` 才替换;下载按文件原子落盘,中断不留下半份最终文件。不自动解压 ZIP。
|
|
84
|
+
|
|
85
|
+
退出码:0 成功,1 HTTP/服务问题,2 用法/本地输入/文件问题,3 凭据问题,4 网络/客户端等待超时,5 任务 failed/cancelled,130 用户中断。查询成功但任务失败也退出 5。argparse 用法错误使用标准 stderr 提示。
|
|
86
|
+
|
|
87
|
+
REST 提交没有幂等键:客户端不会自动重试提交。POST 超时或断连后先查 `history`,避免重复绘图与扣额度。已知 ID 的任务可用 `jobs wait` 恢复;任务状态 404 可能是服务重启/状态淘汰,先检查历史。等待超时/中断不会取消服务端任务。HTTP 仅允许 localhost 开发,重定向被拒绝以避免转发密钥。
|
|
88
|
+
|
|
89
|
+
代理遵循系统/环境配置,HTTPS 使用 `HTTPS_PROXY`;如果本机旧代理不可用,用 `--no-proxy`。本地可用代理示例为 `http://127.0.0.1:8118`。标准库传输不直接支持 SOCKS。
|
|
90
|
+
|
|
91
|
+
## 安装 skill
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
wellbore skill install
|
|
95
|
+
# 指定其他技能根目录
|
|
96
|
+
wellbore skill install --dir /path/to/skills
|
|
97
|
+
wellbore skill path
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
安装复制到 `<dir>/wellbore`,已有目录拒绝覆盖。重新加载技能后调用 `$wellbore`。仓库入口为 [src/wellbore_cli/skills/wellbore/SKILL.md](https://github.com/elf004-star/drilling-agent-skills/blob/main/src/wellbore_cli/skills/wellbore/SKILL.md),该目录是唯一来源,随 wheel 打包。根目录不再放指向它的短路径软链接:Windows 检出时软链接退化为内容是路径文本的普通文件,`skills/...` 打不开,而 ZIP 下载与网页浏览本来就无法还原软链接,跨平台行为不一致。技能只按任务需要加载安装、命令、领域、恢复与 API 边界参考。
|
|
101
|
+
|
|
102
|
+
## 开发与验证
|
|
103
|
+
|
|
104
|
+
```sh
|
|
105
|
+
uv run --python 3.11 python -m unittest discover -s tests -v
|
|
106
|
+
uv build
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
详见 [架构说明](https://github.com/elf004-star/drilling-agent-skills/blob/main/docs/architecture.md)、[领域上下文](https://github.com/elf004-star/drilling-agent-skills/blob/main/CONTEXT.md) 和 [契约快照](https://github.com/elf004-star/drilling-agent-skills/blob/main/docs/api-contract.md)。线上来源为 [API 文档](https://ccqwell.vip.cpolar.cn/docs) 与 `/openapi.json`。不提供需要网页会话的注册、账户管理、Key 管理或管理员命令;REST 文档没有公开取消端点,因此不伪造取消命令。
|
|
110
|
+
|
|
111
|
+
## 许可
|
|
112
|
+
|
|
113
|
+
[PolyForm Noncommercial License 1.0.0](https://github.com/elf004-star/drilling-agent-skills/blob/main/LICENSE) —— 允许个人、研究、教育机构、慈善与政府用途,**禁止商业用途**;商用需另行取得授权。这不是 OSI 认可的开源许可证。
|
|
114
|
+
|
|
115
|
+
Required Notice: Copyright (c) 2026 elf004-star
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
wellbore_cli/__init__.py,sha256=zqL7CM8l0mBrRGlqigcMFPlYjHpMCbkrbM-qensx4-8,93
|
|
2
|
+
wellbore_cli/__main__.py,sha256=k1ocEWawweo1qCJWNFAAvyxz3tcY13dzvCenHszij30,48
|
|
3
|
+
wellbore_cli/cli.py,sha256=dBOAWtv4RKuOmZLQ5cHwSPtPmEgYlD-OrwULLbCFPpQ,13964
|
|
4
|
+
wellbore_cli/client.py,sha256=zJN1927oiFRuC3Hisa1lBrSKapObMDQIpwdHLMMz1KY,7636
|
|
5
|
+
wellbore_cli/config.py,sha256=B0kQwq4Dl83P6DyouGMLFTMV-kH6F0ntbgoMe5ctenM,2585
|
|
6
|
+
wellbore_cli/errors.py,sha256=_Z_Z0HtHqYBjusNFkuxCuckTlv9_s_pVweYYpbNGAiI,296
|
|
7
|
+
wellbore_cli/files.py,sha256=2Q8HxittZ6BsldGVB9JLT0eF0i00QKiUT1lM-WgDXRQ,2183
|
|
8
|
+
wellbore_cli/skills/wellbore/SKILL.md,sha256=itINrGcTmlToMsXqS1jHiz2PFcUdZE4g9BCA8QN0i-A,3826
|
|
9
|
+
wellbore_cli/skills/wellbore/agents/openai.yaml,sha256=VIlo1rc5wyrGGXY2vpdsntqFlypJgJ75M1EqIxgYZiw,283
|
|
10
|
+
wellbore_cli/skills/wellbore/assets/deviated.yaml,sha256=TtoRAJLBJeScZ7R9P1wCnR4Ee3r0MTdGt2Ogrh0H57c,969
|
|
11
|
+
wellbore_cli/skills/wellbore/assets/geology.yaml,sha256=EYhP7WGEuL2Q14aukAq1Wp38ibkFdJoUQq7bNskoFfU,412
|
|
12
|
+
wellbore_cli/skills/wellbore/assets/horizontal.yaml,sha256=Ubo7M1fFey3maUmOti99qyziLCSA1tXZKzgDW0esU8I,967
|
|
13
|
+
wellbore_cli/skills/wellbore/assets/liner.yaml,sha256=lYAsz9-SjsbT6RACn-OXU-wc2ev94u1jWgnC6p6YQWw,1099
|
|
14
|
+
wellbore_cli/skills/wellbore/assets/straight.yaml,sha256=-vdrp6qiUbgFplIu9Pjtk2R8rTOz1a959G6hg6GaE_Q,914
|
|
15
|
+
wellbore_cli/skills/wellbore/assets/updip.yaml,sha256=l79NRmLnmvvevR5QdanfNb-VbTf99J19ifT7dmFizbc,970
|
|
16
|
+
wellbore_cli/skills/wellbore/references/api.md,sha256=DyqY-W3f669bGAO-2BTpvjOq9na9ehK-EAp0kQSJVuQ,2091
|
|
17
|
+
wellbore_cli/skills/wellbore/references/commands.md,sha256=nxjsxske1iDpjxdGZicR9z_aVjGRyxmGZoxn9U3g8DA,3098
|
|
18
|
+
wellbore_cli/skills/wellbore/references/domain.md,sha256=3Is1yFwNufIstuuLwFPT3BTg_KwASyw3gxoZdnlBWkw,4619
|
|
19
|
+
wellbore_cli/skills/wellbore/references/recovery.md,sha256=JYNVG8aCixxiDopacfB1YHND2iAJLnx8o1PurAAukSg,2034
|
|
20
|
+
wellbore_cli/skills/wellbore/references/setup.md,sha256=4JpGomRqupW7Huf7cO7ArTkBLGuYhLzFTGYjqpBq5vY,2141
|
|
21
|
+
wellbore_cli-0.1.0.dist-info/licenses/LICENSE,sha256=913SBwQsxDf4twWNvDUOUkfZCNe7F3cpbwqdcjq6blE,4612
|
|
22
|
+
wellbore_cli-0.1.0.dist-info/METADATA,sha256=S8dJk9cjOpP4P9PjpzV_UHaiOymnKbi_8h79ebYvGNo,6725
|
|
23
|
+
wellbore_cli-0.1.0.dist-info/WHEEL,sha256=YVMoNqKzERt-wjUZwJ33xBGAwnFl-4cqbYkTtWa4itE,91
|
|
24
|
+
wellbore_cli-0.1.0.dist-info/entry_points.txt,sha256=xngFLyWY2eKXZe4MAFbqejncbuO6KrbGWhG9Ic5EGmg,51
|
|
25
|
+
wellbore_cli-0.1.0.dist-info/top_level.txt,sha256=w3arPxVIr4pyxmS7MrnkPYSvTwMWnNuU9w-9LZS3-7g,13
|
|
26
|
+
wellbore_cli-0.1.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# PolyForm Noncommercial License 1.0.0
|
|
2
|
+
|
|
3
|
+
<https://polyformproject.org/licenses/noncommercial/1.0.0>
|
|
4
|
+
|
|
5
|
+
Required Notice: Copyright (c) 2026 elf004-star
|
|
6
|
+
|
|
7
|
+
## Acceptance
|
|
8
|
+
|
|
9
|
+
In order to get any license under these terms, you must agree
|
|
10
|
+
to them as both strict obligations and conditions to all
|
|
11
|
+
your licenses.
|
|
12
|
+
|
|
13
|
+
## Copyright License
|
|
14
|
+
|
|
15
|
+
The licensor grants you a copyright license for the
|
|
16
|
+
software to do everything you might do with the software
|
|
17
|
+
that would otherwise infringe the licensor's copyright
|
|
18
|
+
in it for any permitted purpose. However, you may
|
|
19
|
+
only distribute the software according to [Distribution
|
|
20
|
+
License](#distribution-license) and make changes or new works
|
|
21
|
+
based on the software according to [Changes and New Works
|
|
22
|
+
License](#changes-and-new-works-license).
|
|
23
|
+
|
|
24
|
+
## Distribution License
|
|
25
|
+
|
|
26
|
+
The licensor grants you an additional copyright license
|
|
27
|
+
to distribute copies of the software. Your license
|
|
28
|
+
to distribute covers distributing the software with
|
|
29
|
+
changes and new works permitted by [Changes and New Works
|
|
30
|
+
License](#changes-and-new-works-license).
|
|
31
|
+
|
|
32
|
+
## Notices
|
|
33
|
+
|
|
34
|
+
You must ensure that anyone who gets a copy of any part of
|
|
35
|
+
the software from you also gets a copy of these terms or the
|
|
36
|
+
URL for them above, as well as copies of any plain-text lines
|
|
37
|
+
beginning with `Required Notice:` that the licensor provided
|
|
38
|
+
with the software. For example:
|
|
39
|
+
|
|
40
|
+
> Required Notice: Copyright Yoyodyne, Inc. (http://example.com)
|
|
41
|
+
|
|
42
|
+
## Changes and New Works License
|
|
43
|
+
|
|
44
|
+
The licensor grants you an additional copyright license to
|
|
45
|
+
make changes and new works based on the software for any
|
|
46
|
+
permitted purpose.
|
|
47
|
+
|
|
48
|
+
## Patent License
|
|
49
|
+
|
|
50
|
+
The licensor grants you a patent license for the software that
|
|
51
|
+
covers patent claims the licensor can license, or becomes able
|
|
52
|
+
to license, that you would infringe by using the software.
|
|
53
|
+
|
|
54
|
+
## Noncommercial Purposes
|
|
55
|
+
|
|
56
|
+
Any noncommercial purpose is a permitted purpose.
|
|
57
|
+
|
|
58
|
+
## Personal Uses
|
|
59
|
+
|
|
60
|
+
Personal use for research, experiment, and testing for
|
|
61
|
+
the benefit of public knowledge, personal study, private
|
|
62
|
+
entertainment, hobby projects, amateur pursuits, or religious
|
|
63
|
+
observance, without any anticipated commercial application,
|
|
64
|
+
is use for a permitted purpose.
|
|
65
|
+
|
|
66
|
+
## Noncommercial Organizations
|
|
67
|
+
|
|
68
|
+
Use by any charitable organization, educational institution,
|
|
69
|
+
public research organization, public safety or health
|
|
70
|
+
organization, environmental protection organization,
|
|
71
|
+
or government institution is use for a permitted purpose
|
|
72
|
+
regardless of the source of funding or obligations resulting
|
|
73
|
+
from the funding.
|
|
74
|
+
|
|
75
|
+
## Fair Use
|
|
76
|
+
|
|
77
|
+
You may have "fair use" rights for the software under the
|
|
78
|
+
law. These terms do not limit them.
|
|
79
|
+
|
|
80
|
+
## No Other Rights
|
|
81
|
+
|
|
82
|
+
These terms do not allow you to sublicense or transfer any of
|
|
83
|
+
your licenses to anyone else, or prevent the licensor from
|
|
84
|
+
granting licenses to anyone else. These terms do not imply
|
|
85
|
+
any other licenses.
|
|
86
|
+
|
|
87
|
+
## Patent Defense
|
|
88
|
+
|
|
89
|
+
If you make any written claim that the software infringes or
|
|
90
|
+
contributes to infringement of any patent, your patent license
|
|
91
|
+
for the software granted under these terms ends immediately. If
|
|
92
|
+
your company makes such a claim, your patent license ends
|
|
93
|
+
immediately for work on behalf of your company.
|
|
94
|
+
|
|
95
|
+
## Violations
|
|
96
|
+
|
|
97
|
+
The first time you are notified in writing that you have
|
|
98
|
+
violated any of these terms, or done anything with the software
|
|
99
|
+
not covered by your licenses, your licenses can nonetheless
|
|
100
|
+
continue if you come into full compliance with these terms,
|
|
101
|
+
and take practical steps to correct past violations, within
|
|
102
|
+
32 days of receiving notice. Otherwise, all your licenses
|
|
103
|
+
end immediately.
|
|
104
|
+
|
|
105
|
+
## No Liability
|
|
106
|
+
|
|
107
|
+
***As far as the law allows, the software comes as is, without
|
|
108
|
+
any warranty or condition, and the licensor will not be liable
|
|
109
|
+
to you for any damages arising out of these terms or the use
|
|
110
|
+
or nature of the software, under any kind of legal claim.***
|
|
111
|
+
|
|
112
|
+
## Definitions
|
|
113
|
+
|
|
114
|
+
The **licensor** is the individual or entity offering these
|
|
115
|
+
terms, and the **software** is the software the licensor makes
|
|
116
|
+
available under these terms.
|
|
117
|
+
|
|
118
|
+
**You** refers to the individual or entity agreeing to these
|
|
119
|
+
terms.
|
|
120
|
+
|
|
121
|
+
**Your company** is any legal entity, sole proprietorship,
|
|
122
|
+
or other kind of organization that you work for, plus all
|
|
123
|
+
organizations that have control over, are under the control of,
|
|
124
|
+
or are under common control with that organization. **Control**
|
|
125
|
+
means ownership of substantially all the assets of an entity,
|
|
126
|
+
or the power to direct its management and policies by vote,
|
|
127
|
+
contract, or otherwise. Control can be direct or indirect.
|
|
128
|
+
|
|
129
|
+
**Your licenses** are all the licenses granted to you for the
|
|
130
|
+
software under these terms.
|
|
131
|
+
|
|
132
|
+
**Use** means anything you do with the software requiring one
|
|
133
|
+
of your licenses.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
wellbore_cli
|