kirin-tor-cli 0.3.0rc3__tar.gz
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.
- kirin_tor_cli-0.3.0rc3/LICENSE +21 -0
- kirin_tor_cli-0.3.0rc3/MANIFEST.in +1 -0
- kirin_tor_cli-0.3.0rc3/PKG-INFO +320 -0
- kirin_tor_cli-0.3.0rc3/README.md +300 -0
- kirin_tor_cli-0.3.0rc3/pyproject.toml +44 -0
- kirin_tor_cli-0.3.0rc3/setup.cfg +4 -0
- kirin_tor_cli-0.3.0rc3/setup.py +24 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/__init__.py +3 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/application.py +680 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/authoring.py +1129 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/cli.py +1242 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/community_discovery.py +376 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/diagnostics.py +208 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/engine.py +1460 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/errors.py +137 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/expression.py +1055 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/kirin_syntax.py +406 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/kirin_v2.py +1104 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/limits.py +64 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/operations.py +1057 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/package_authoring.py +332 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/package_manifest.py +667 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/package_store.py +645 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/plotting.py +246 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/plugin_manifest.py +763 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/plugin_store.py +506 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_analysis.py +1321 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_ast.py +225 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_chart.py +422 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_crossing.py +151 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_expression.py +962 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_ir.py +369 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_lowering.py +778 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_measure.py +232 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_model.py +53 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_parser.py +846 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_renderer.py +163 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_runtime.py +1643 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/process_validation.py +131 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/records.py +456 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/relationship_graph.py +310 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_ast.py +257 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_ir.py +295 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_lowering.py +1484 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_measure_syntax.py +95 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_parser.py +892 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_renderer.py +226 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/scenario_validation.py +269 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/schema.py +1424 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/templates.py +222 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/timeout.py +82 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/tutorial_sources/basic_model.kirin +19 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/tutorial_sources/preset_comparison.kirin +34 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/tutorial_sources/scan_chart.kirin +28 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/tutorials.py +89 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/units.py +215 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web.py +542 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/ChangeReview-bfGYV7JJ.js +2 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/Checkbox-p0fHt3Tq.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/Code-B0qtSTIf.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/CommunityDiscoveryPanel-DNYQeDTd.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/DocumentsView-BR16v_N4.js +17 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/FocusTrap-D5hdmc8y.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/GraphView-BrgNWVgM.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/InputBase-DLbSOsHj.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/PackagesView-DeKVuxuw.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/PluginsView-C2D0mtVq.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/RelationshipGraphCanvas-odileUI0.js +18 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/RunsView-Db77dlcf.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/Select-Qg63t2-G.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/SyntaxReference-CP9-3BYR.js +2 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/Tabs-Bn4SJfHG.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/TextInput-DfkY1-5d.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/WorkspaceSearch-BXtNlP2d.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/copy-m46mNftu.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/createLucideIcon-fs27rAxj.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/external-link-CWgLapm7.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/folder-input-DKWTrP27.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/get-auto-contrast-value-BTPwFOS2.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/index-D447QmAj.css +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/index-DBRHnxi_.js +50 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/index.html +16 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/refresh-cw-BQiGGhOd.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/web_assets/trash-2-Cb5gNQOG.js +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/workbench.py +1470 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor/workspace.py +971 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/PKG-INFO +320 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/SOURCES.txt +120 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/dependency_links.txt +1 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/entry_points.txt +2 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/requires.txt +9 -0
- kirin_tor_cli-0.3.0rc3/src/kirin_tor_cli.egg-info/top_level.txt +1 -0
- kirin_tor_cli-0.3.0rc3/tests/test_acceptance.py +131 -0
- kirin_tor_cli-0.3.0rc3/tests/test_advanced_operations.py +105 -0
- kirin_tor_cli-0.3.0rc3/tests/test_application.py +150 -0
- kirin_tor_cli-0.3.0rc3/tests/test_authoring.py +237 -0
- kirin_tor_cli-0.3.0rc3/tests/test_cli.py +324 -0
- kirin_tor_cli-0.3.0rc3/tests/test_community_discovery.py +177 -0
- kirin_tor_cli-0.3.0rc3/tests/test_finite_distributions.py +247 -0
- kirin_tor_cli-0.3.0rc3/tests/test_finite_recurrences.py +78 -0
- kirin_tor_cli-0.3.0rc3/tests/test_finite_state_models.py +92 -0
- kirin_tor_cli-0.3.0rc3/tests/test_game_mechanics_capabilities.py +140 -0
- kirin_tor_cli-0.3.0rc3/tests/test_generic_semantics.py +298 -0
- kirin_tor_cli-0.3.0rc3/tests/test_kirin_syntax.py +351 -0
- kirin_tor_cli-0.3.0rc3/tests/test_kirin_v2.py +120 -0
- kirin_tor_cli-0.3.0rc3/tests/test_package_system.py +657 -0
- kirin_tor_cli-0.3.0rc3/tests/test_plugin_system.py +227 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_analysis.py +671 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_decisions.py +228 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_document_integration.py +112 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_expression.py +133 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_ir.py +232 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_lowering.py +257 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_measure.py +196 -0
- kirin_tor_cli-0.3.0rc3/tests/test_process_runtime.py +180 -0
- kirin_tor_cli-0.3.0rc3/tests/test_records_v2.py +80 -0
- kirin_tor_cli-0.3.0rc3/tests/test_relationship_graph.py +91 -0
- kirin_tor_cli-0.3.0rc3/tests/test_scenario_integration.py +104 -0
- kirin_tor_cli-0.3.0rc3/tests/test_unified_entry_capabilities.py +305 -0
- kirin_tor_cli-0.3.0rc3/tests/test_validation_and_safety.py +216 -0
- kirin_tor_cli-0.3.0rc3/tests/test_web.py +372 -0
- kirin_tor_cli-0.3.0rc3/tests/test_workbench.py +376 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Kirin Tor contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
prune examples
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: kirin-tor-cli
|
|
3
|
+
Version: 0.3.0rc3
|
|
4
|
+
Summary: A game-neutral, file-driven theorycrafting CLI and local browser workbench
|
|
5
|
+
Author: Kirin Tor contributors
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/Aaronlves/Kirin-Tor-Calc
|
|
8
|
+
Project-URL: Repository, https://github.com/Aaronlves/Kirin-Tor-Calc
|
|
9
|
+
Project-URL: Issues, https://github.com/Aaronlves/Kirin-Tor-Calc/issues
|
|
10
|
+
Requires-Python: >=3.9
|
|
11
|
+
Description-Content-Type: text/markdown
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Dist: matplotlib<3.10,>=3.8
|
|
14
|
+
Requires-Dist: sympy<1.15,>=1.13
|
|
15
|
+
Requires-Dist: tomli<3,>=2; python_version < "3.11"
|
|
16
|
+
Requires-Dist: typer<1,>=0.12
|
|
17
|
+
Provides-Extra: dev
|
|
18
|
+
Requires-Dist: pytest<9,>=8; extra == "dev"
|
|
19
|
+
Dynamic: license-file
|
|
20
|
+
|
|
21
|
+
# Kirin Tor
|
|
22
|
+
|
|
23
|
+
Kirin Tor 是一个游戏中立、文件驱动的结构化数学工作台,面向需要长期维护数据、公式、参数方案和图表的攻略与理论计算作者。
|
|
24
|
+
|
|
25
|
+
工作区只有一种可编辑权威:`entries/**/*.kirin`。结果、图表、公式展开、诊断、关系图、索引、恢复缓存和导出文件都是源码的投影或产物,不会形成第二套计算定义。具体游戏的量纲、公式和数据由工作区或独立社区 Package 提供;Kirin Tor 核心不内置游戏、职业、技能或版本数据。
|
|
26
|
+
|
|
27
|
+
Kirin Tor 不是脚本式战斗模拟器。内核只执行 source 明确声明且受 horizon、事件、决策、分支、实体和
|
|
28
|
+
集合容量约束的 Process 事件场景;它不会补全完整 APL、Boss 时间轴或未声明规则,也不做隐式抽样。
|
|
29
|
+
Process Analysis 已接入 CLI、浏览器工作台实时投影、多图导出和可重放运行记录。
|
|
30
|
+
|
|
31
|
+
## 安装
|
|
32
|
+
|
|
33
|
+
Kirin Tor 需要 Python 3.9 或更新版本。长期使用推荐先按
|
|
34
|
+
[`uv` 官方说明](https://docs.astral.sh/uv/getting-started/installation/)安装 `uv`,再让它为 Kirin Tor
|
|
35
|
+
维护独立环境。当前版本仍是预发布版,因此安装和升级时需要显式允许预发布版本:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
uv tool install --prerelease allow kirin-tor-cli
|
|
39
|
+
kt version
|
|
40
|
+
kt web
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
以后升级仍使用同一独立环境,不需要进入源码目录或手动激活虚拟环境:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
uv tool upgrade --prerelease allow kirin-tor-cli
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
正式版发布后,上述安装和升级命令可以省略 `--prerelease allow`。不再需要时可以完整移除:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
uv tool uninstall kirin-tor-cli
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
也可以从 [GitHub Releases](https://github.com/Aaronlves/Kirin-Tor-Calc/releases) 下载 wheel,手动安装到自行管理的虚拟环境:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
python3 -m venv .venv
|
|
59
|
+
source .venv/bin/activate
|
|
60
|
+
python -m pip install -U pip
|
|
61
|
+
python -m pip install /path/to/kirin_tor_cli-VERSION-py3-none-any.whl
|
|
62
|
+
kt version
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
也可以直接安装当前源码:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
python3 -m venv .venv
|
|
69
|
+
source .venv/bin/activate
|
|
70
|
+
python -m pip install -U pip
|
|
71
|
+
python -m pip install .
|
|
72
|
+
kt --help
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
开发安装:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
python -m pip install -e '.[dev]'
|
|
79
|
+
pytest
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## 快速开始
|
|
83
|
+
|
|
84
|
+
创建并打开一个空的游戏中立工作区:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
kt init my-math
|
|
88
|
+
cd my-math
|
|
89
|
+
kt web
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
浏览器工作台会显示三份只读教程:基础公式、参数方案与比较、扫描与图表。教程不是工作区文档;只有主动复制后,才会以普通未保存草稿进入校验和保存流程。
|
|
93
|
+
|
|
94
|
+
也可以从命令行创建文档:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
kt new entry basic_model --template model
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
一份最小而完整的 Kirin Tor source 如下:
|
|
101
|
+
|
|
102
|
+
```text
|
|
103
|
+
@kirin 2
|
|
104
|
+
@entry basic_model "基础公式"
|
|
105
|
+
|
|
106
|
+
input unit_price "单价": number[dimensionless] = 12 in 0..*
|
|
107
|
+
input quantity "数量": number[dimensionless] = 5 in 0..100 integer
|
|
108
|
+
input discount "折扣": probability = 10%
|
|
109
|
+
|
|
110
|
+
field subtotal "小计": dimensionless = unit_price * quantity
|
|
111
|
+
|
|
112
|
+
output total "折后总价": dimensionless = subtotal * (1 - discount)
|
|
113
|
+
display total = number digits 2
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
保存为 `entries/basic_model.kirin` 后可以校验和计算:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
kt check
|
|
120
|
+
kt eval basic_model.total
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
结果为精确值 `54`。十进制先转换为精确有理数,不经过二进制浮点近似。
|
|
124
|
+
|
|
125
|
+
## 浏览器工作台
|
|
126
|
+
|
|
127
|
+
`kt web [WORKSPACE|SOURCE.kirin]` 启动只监听本机回环地址的浏览器工作台。服务使用随机会话令牌,不接受外部 Host、跨站 Origin 或远程监听;停止终端进程即可关闭,不存在后台守护程序或云端账户状态。
|
|
128
|
+
|
|
129
|
+
工作台的主要能力包括:
|
|
130
|
+
|
|
131
|
+
- 在中央 CodeMirror 编辑器中完成全部源码编辑;`Ctrl+Space` 提供 Kirin Tor 补全和中文结构片段。
|
|
132
|
+
- 同时保留多个未保存草稿,按完整工作区校验,并通过 Save All 原子写入。
|
|
133
|
+
- Agent 或其他本地工具直接改写 `.kirin` 后,干净文档与新文档会自动同步;未保存草稿不会被覆盖,也不会显示 CLI 或 Agent 操作记录。
|
|
134
|
+
- 自动派生只读结果、静态图表、Process Analysis 多图、公式、诊断和局部关系;检查器不提供临时计算参数或参数方案填写字段。
|
|
135
|
+
- 提供定义跳转、引用查找、符号大纲、签名提示、安全重命名、查找替换和安全空白格式化。
|
|
136
|
+
- 提供工作区全文搜索、草稿式批量替换、保存前变更审查、只读 Git 摘要和外部冲突三方合并。
|
|
137
|
+
- 支持文档路径移动、复制为新草稿,以及依赖安全的可恢复删除;这些文件操作不会改写源码中的 `@entry` ID 或数学语义。
|
|
138
|
+
- 从已校验引用生成文档与成员关系图,并为图表和画布提供键盘可读的数据列表。
|
|
139
|
+
- 通过独立本地进程执行长操作,显示真实阶段并允许取消;数学超时仍是另一层独立限制。
|
|
140
|
+
|
|
141
|
+
右侧检查器的结果使用源码默认值。需要改变默认预览时应编辑 `.kirin` 输入默认值;需要重复使用的组合应写成命名 `presets`。变换、求导、求解、扫描和网格目前使用相应 CLI 命令;多方案比较保留在共享计算服务层。这些高级操作没有在浏览器中复制成一组通用参数表单。
|
|
142
|
+
|
|
143
|
+
### 与 Agent 一起创作
|
|
144
|
+
|
|
145
|
+
保持 `kt web` 打开的同时,可以让本地 Agent 直接创建或修改工作区中的
|
|
146
|
+
`entries/**/*.kirin`。Agent 不需要操作浏览器,也不需要通过 Kirin Tor CLI 写文档;工作台会自动发现新
|
|
147
|
+
文档,并在当前缓冲区没有未保存修改时重新加载源码和派生预览。界面只显示最终文档、诊断与结果,
|
|
148
|
+
不会显示 Agent 的提示词、操作过程、终端或 CLI 输出。
|
|
149
|
+
|
|
150
|
+
这是一种以 `.kirin` 文件为中介的协作,不是共享光标或隐藏的 Agent 状态。Agent 看不到浏览器内尚未
|
|
151
|
+
保存的草稿;若双方改到同一文档,工作台保留草稿并打开 base/draft/disk 冲突比较。Agent 直接修改多
|
|
152
|
+
个文件也不属于 Save All 原子事务,期间出现的不完整源码会照常显示诊断,只有通过完整校验的模型才
|
|
153
|
+
能计算。详细合同见[浏览器工作台规范](docs/web-workbench.md#external-agent-authoring)。
|
|
154
|
+
|
|
155
|
+
常用编辑快捷键:
|
|
156
|
+
|
|
157
|
+
| 操作 | 快捷键 |
|
|
158
|
+
| --- | --- |
|
|
159
|
+
| 保存全部 | `Mod+S` |
|
|
160
|
+
| 补全 | `Ctrl+Space` |
|
|
161
|
+
| 查找/替换 | `Mod+F` |
|
|
162
|
+
| 跳到行 | `Mod+G` |
|
|
163
|
+
| 文档符号大纲 | `Mod+Shift+O` |
|
|
164
|
+
| 安全格式化 | `Mod+Shift+F` |
|
|
165
|
+
| 转到定义 | `F12` 或 `Mod+单击` |
|
|
166
|
+
| 查看定义与引用 | `Shift+F12` |
|
|
167
|
+
| 安全重命名 | `F2` |
|
|
168
|
+
| 工作区快速打开 | `Mod+K` 或 `Mod+P` |
|
|
169
|
+
|
|
170
|
+
完整交互与权威边界见[浏览器工作台规范](docs/web-workbench.md)。
|
|
171
|
+
|
|
172
|
+
## 语言和数学能力
|
|
173
|
+
|
|
174
|
+
Kirin Tor source v2 使用一个 `entry` 文档模型和一致的逐项声明语法。正式 ID 保持 ASCII;中文别名只在声明它的条目中参与公式,显示标签只影响界面、解释和图表。跨文档引用、CLI 参数、运行记录和 Package 导出继续使用稳定的正式身份。
|
|
175
|
+
|
|
176
|
+
当前内核支持:
|
|
177
|
+
|
|
178
|
+
- 精确整数、有理数、十进制和科学计数法;
|
|
179
|
+
- 数值与布尔输入、范围、整数限制、有限允许值和组合约束;
|
|
180
|
+
- 用户声明的量纲、精确比例单位和可复用值域;
|
|
181
|
+
- 字段、函数、输出、分组、参数方案、显示格式和版本化查表;
|
|
182
|
+
- 封闭的可复用类型、具名对象和静态多层属性访问;
|
|
183
|
+
- 有界 Process 状态、精确时间、事件 phase、连续 flow、动作 guard、冷却/充能等作者定义组件与固定策略;
|
|
184
|
+
- 条件、分段、有限求和与连乘;
|
|
185
|
+
- 有限离散分布、显式独立组合、条件化和有限重复;
|
|
186
|
+
- Process 事件链形式的有界迭代,以及有限随机转移的 `reach` / `steady` / `cycle` 分析;
|
|
187
|
+
- 化简、展开、因式分解、求导、单变量求解和最多八个变量的有限符号联立求解;
|
|
188
|
+
- 一维扫描、双输入网格、SVG/PNG/CSV 图表以及可重放运行记录。
|
|
189
|
+
|
|
190
|
+
完整语法写法见 [Kirin Tor source syntax v2](docs/kirin-syntax.md);数学语义、安全边界和固定限制见[结构模型、表达式与安全边界](docs/schema-and-expressions.md)。
|
|
191
|
+
|
|
192
|
+
## 社区 Package
|
|
193
|
+
|
|
194
|
+
社区 Package 是独立维护、只含数据的 GitHub 仓库或本地开发目录。Kirin Tor 不执行其中的 Python、安装脚本、Git hook 或其他代码。
|
|
195
|
+
|
|
196
|
+
公开仓库可添加 GitHub topic `kirin-tor-package`,从工作台的只读发现抽屉中被找到。Topic 只是社区自声明;发现不会安装内容,安装仍需用户明确指定来源与精确版本。
|
|
197
|
+
|
|
198
|
+
创建并检查 Package:
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
kt package new my-community-package \
|
|
202
|
+
--name community.example \
|
|
203
|
+
--namespace community_example
|
|
204
|
+
kt package check my-community-package
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
安装精确 GitHub 版本或本地不可变快照:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
cd my-math
|
|
211
|
+
kt package add example github:OWNER/REPOSITORY 1.0.0
|
|
212
|
+
kt package add-path local_example ../my-community-package
|
|
213
|
+
kt package list
|
|
214
|
+
kt package verify
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
`kirin.packages.toml` 记录用户请求的直接依赖,`kirin.lock` 锁定完整依赖图、Git commit 和内容摘要,`.kirin/packages/` 是可删除并显式恢复的只读缓存。普通工作区加载不会隐式联网。
|
|
218
|
+
|
|
219
|
+
完整协议见 [Kirin Tor community package protocol v1](docs/package-system-v1.md)。
|
|
220
|
+
|
|
221
|
+
## Workbench Extension Plugins
|
|
222
|
+
|
|
223
|
+
Workbench Plugin 可以为验证后的文档增加游戏化呈现器,也可以注册顶层页面、工作区工具、声明式命令和布局 Profile。插件不会改变 Kirin Tor 语法或数学结果;`.kirin`、验证器、Save All、Package 解析和运行记录仍由官方工作台控制。
|
|
224
|
+
|
|
225
|
+
公开仓库可添加 GitHub topic `kirin-tor-plugin`,从工作台的只读发现抽屉中被找到。只有当前协议可解析的 manifest 会显示;发现不会下载、安装、批准、启用或执行插件。
|
|
226
|
+
|
|
227
|
+
协议 v1 只安装作者明确选择的本地目录快照:
|
|
228
|
+
|
|
229
|
+
```bash
|
|
230
|
+
cd my-math
|
|
231
|
+
kt plugin add-path talents /path/to/talent-plugin
|
|
232
|
+
kt plugin list
|
|
233
|
+
kt plugin verify
|
|
234
|
+
kt web
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
插件清单、JavaScript、CSS、图片和其他静态文件全部进入内容摘要;安装时复制到 `.kirin/plugins/<SHA-256>/`,不会从可变源目录直接执行。`kirin.plugins.toml` 记录请求和启用状态,`kirin.plugins.lock` 锁定身份、版本与摘要,而可执行批准单独保存在工作区外的本机用户状态中。仅提交工作区配置不能批准陌生代码。
|
|
238
|
+
|
|
239
|
+
插件页面运行在没有同源权限的沙箱 iframe 中,只能接收清单权限允许的 JSON 投影。v1 可代理定位源码以及对既有合法 target 的有界求值;插件无法读取会话令牌、宿主 DOM、文件系统、环境变量或网络,也不能调用 Save All 和 Package 变更。出现问题时可停用插件,或使用:
|
|
240
|
+
|
|
241
|
+
```bash
|
|
242
|
+
kt web --safe-mode
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
源码仓库提供了不含真实游戏数据的 `examples/plugins/fictional-talent-tree`,展示文档呈现器、页面、工具、命令与 Profile。完整清单、权限、frame 消息协议和限制见 [Workbench Extension Plugin protocol v1](docs/workbench-plugin-system-v1.md)。
|
|
246
|
+
|
|
247
|
+
## 命令概览
|
|
248
|
+
|
|
249
|
+
```text
|
|
250
|
+
kt init DIRECTORY
|
|
251
|
+
kt web [WORKSPACE|SOURCE.kirin] [--safe-mode]
|
|
252
|
+
kt new entry ID [--template blank|data|model|semantics]
|
|
253
|
+
kt list
|
|
254
|
+
kt show ID
|
|
255
|
+
kt explain TARGET
|
|
256
|
+
kt check
|
|
257
|
+
kt eval TARGET [--preset ENTRY.PRESET] [--set ENTRY.INPUT=VALUE]
|
|
258
|
+
kt analyze ENTRY.ANALYSIS [--save-run ID] [--export-charts]
|
|
259
|
+
kt simplify TARGET
|
|
260
|
+
kt expand TARGET
|
|
261
|
+
kt factor TARGET
|
|
262
|
+
kt diff TARGET --var ENTRY.INPUT
|
|
263
|
+
kt solve TARGET --var ENTRY.INPUT --equals VALUE
|
|
264
|
+
kt solve-system --equation TARGET=VALUE --var ENTRY.INPUT
|
|
265
|
+
kt scan --x ENTRY.INPUT --range START:END --points N --y TARGET
|
|
266
|
+
kt grid --x ENTRY.INPUT --x-range START:END --x-points N \
|
|
267
|
+
--y ENTRY.INPUT --y-range START:END --y-points N --result TARGET
|
|
268
|
+
kt plot [--config ENTRY_ID]
|
|
269
|
+
kt replay RUN_ID
|
|
270
|
+
kt package --help
|
|
271
|
+
kt plugin --help
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
各命令的完整参数以 `kt COMMAND --help` 为准。输出文件默认限制在工作区内且不覆盖已有文件;扩大路径权限或覆盖文件必须显式请求。保存运行记录前,参与计算的源码必须已经保存。
|
|
275
|
+
|
|
276
|
+
## 仓库示例
|
|
277
|
+
|
|
278
|
+
`examples/虚构技能工作区` 只存在于源码仓库,不进入 wheel 或 source distribution。其数据完全虚构,只用于验证常见游戏公式形状:
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
cd "examples/虚构技能工作区"
|
|
282
|
+
kt check
|
|
283
|
+
kt eval combo.total --preset presets.baseline
|
|
284
|
+
kt simplify combo.total --keep combo.crit
|
|
285
|
+
kt diff combo.total --var combo.crit
|
|
286
|
+
kt solve combo.total --var combo.crit --equals "3000 damage" --range "0:1"
|
|
287
|
+
kt plot --config combo --force
|
|
288
|
+
kt analyze rotation.replay_rotation
|
|
289
|
+
kt analyze rotation.prove_rotation
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
关键结果包括 `2750 damage`、`2200*combo.crit + 2200`、导数 `2200 damage`、解 `4/11`,以及固定 Process 策略的精确轨迹与边界周期证明。这些都是测试数据,不代表任何真实游戏技能。
|
|
293
|
+
|
|
294
|
+
## 能力边界
|
|
295
|
+
|
|
296
|
+
Kirin Tor 可以直接处理作者给出的有限公式、有限分布,以及有明确 phase 和 fuel 的有界 Process 场景。Process Analysis 已支持精确有限随机路径、作者声明的条件或固定序列策略,以及 `run`、`compare`、确定性有界 `optimize`、`reach`、有限状态 `steady` 和 `cycle`。它不会从技能说明自动推导完整战斗循环。当前没有:
|
|
297
|
+
|
|
298
|
+
- 优先级 APL、完整战斗时间线或随机采样;
|
|
299
|
+
- 一般连续时间搜索的全局证明或带误差界全局求解;
|
|
300
|
+
- 面向动态目标集合的公开建模承诺,或通用向量/矩阵语言;
|
|
301
|
+
- 无界连续或离散全局优化器;
|
|
302
|
+
- 积分、极限和完整通用数值根搜索。
|
|
303
|
+
|
|
304
|
+
常见理论计算的适用范围和不可直接表达的问题见[游戏机制计算能力边界](docs/game-mechanics-capability-audit.md)。
|
|
305
|
+
|
|
306
|
+
## 文档索引
|
|
307
|
+
|
|
308
|
+
| 文档 | 职责 |
|
|
309
|
+
| --- | --- |
|
|
310
|
+
| [Kirin Tor source syntax v2](docs/kirin-syntax.md) | 表面语法、类型化属性、多层访问与 Process 写法 |
|
|
311
|
+
| [结构模型、表达式与安全边界](docs/schema-and-expressions.md) | 解析后的数学语义、求值、安全和固定限制 |
|
|
312
|
+
| [有界 Process 模型](docs/bounded-process-model.md) | 动态机制统一语义、fuel、分析器与证明边界 |
|
|
313
|
+
| [有界 Process 纸面模型](docs/bounded-process-paper-models.md) | 六类机制的目标验证、Policy/Analysis 声明与当前可执行边界 |
|
|
314
|
+
| [浏览器工作台规范](docs/web-workbench.md) | 界面、编辑状态、外部 Agent 协作、保存、冲突与权威边界 |
|
|
315
|
+
| [Kirin Tor community package protocol v1](docs/package-system-v1.md) | Package manifest、解析、锁定、缓存和来源 |
|
|
316
|
+
| [Workbench Extension Plugin protocol v1](docs/workbench-plugin-system-v1.md) | 沙箱 UI 插件、贡献点、权限、批准、锁定和安全模式 |
|
|
317
|
+
| [游戏机制计算能力边界](docs/game-mechanics-capability-audit.md) | 已证明能力、需要外部等效模型的情况和明确非目标 |
|
|
318
|
+
| [Changelog](CHANGELOG.md) | 版本历史、破坏性变更和未发布修改 |
|
|
319
|
+
|
|
320
|
+
发生冲突时,以当前实现和测试为行为证据;表面语法以语法文档为准,数学与安全契约以结构模型文档为准,界面行为以工作台规范为准,Package 行为以 Package 协议为准。Changelog 只记录历史,不替代当前规范。
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Kirin Tor
|
|
2
|
+
|
|
3
|
+
Kirin Tor 是一个游戏中立、文件驱动的结构化数学工作台,面向需要长期维护数据、公式、参数方案和图表的攻略与理论计算作者。
|
|
4
|
+
|
|
5
|
+
工作区只有一种可编辑权威:`entries/**/*.kirin`。结果、图表、公式展开、诊断、关系图、索引、恢复缓存和导出文件都是源码的投影或产物,不会形成第二套计算定义。具体游戏的量纲、公式和数据由工作区或独立社区 Package 提供;Kirin Tor 核心不内置游戏、职业、技能或版本数据。
|
|
6
|
+
|
|
7
|
+
Kirin Tor 不是脚本式战斗模拟器。内核只执行 source 明确声明且受 horizon、事件、决策、分支、实体和
|
|
8
|
+
集合容量约束的 Process 事件场景;它不会补全完整 APL、Boss 时间轴或未声明规则,也不做隐式抽样。
|
|
9
|
+
Process Analysis 已接入 CLI、浏览器工作台实时投影、多图导出和可重放运行记录。
|
|
10
|
+
|
|
11
|
+
## 安装
|
|
12
|
+
|
|
13
|
+
Kirin Tor 需要 Python 3.9 或更新版本。长期使用推荐先按
|
|
14
|
+
[`uv` 官方说明](https://docs.astral.sh/uv/getting-started/installation/)安装 `uv`,再让它为 Kirin Tor
|
|
15
|
+
维护独立环境。当前版本仍是预发布版,因此安装和升级时需要显式允许预发布版本:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
uv tool install --prerelease allow kirin-tor-cli
|
|
19
|
+
kt version
|
|
20
|
+
kt web
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
以后升级仍使用同一独立环境,不需要进入源码目录或手动激活虚拟环境:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
uv tool upgrade --prerelease allow kirin-tor-cli
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
正式版发布后,上述安装和升级命令可以省略 `--prerelease allow`。不再需要时可以完整移除:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
uv tool uninstall kirin-tor-cli
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
也可以从 [GitHub Releases](https://github.com/Aaronlves/Kirin-Tor-Calc/releases) 下载 wheel,手动安装到自行管理的虚拟环境:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
python3 -m venv .venv
|
|
39
|
+
source .venv/bin/activate
|
|
40
|
+
python -m pip install -U pip
|
|
41
|
+
python -m pip install /path/to/kirin_tor_cli-VERSION-py3-none-any.whl
|
|
42
|
+
kt version
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
也可以直接安装当前源码:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
python3 -m venv .venv
|
|
49
|
+
source .venv/bin/activate
|
|
50
|
+
python -m pip install -U pip
|
|
51
|
+
python -m pip install .
|
|
52
|
+
kt --help
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
开发安装:
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
python -m pip install -e '.[dev]'
|
|
59
|
+
pytest
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
## 快速开始
|
|
63
|
+
|
|
64
|
+
创建并打开一个空的游戏中立工作区:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
kt init my-math
|
|
68
|
+
cd my-math
|
|
69
|
+
kt web
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
浏览器工作台会显示三份只读教程:基础公式、参数方案与比较、扫描与图表。教程不是工作区文档;只有主动复制后,才会以普通未保存草稿进入校验和保存流程。
|
|
73
|
+
|
|
74
|
+
也可以从命令行创建文档:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
kt new entry basic_model --template model
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
一份最小而完整的 Kirin Tor source 如下:
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
@kirin 2
|
|
84
|
+
@entry basic_model "基础公式"
|
|
85
|
+
|
|
86
|
+
input unit_price "单价": number[dimensionless] = 12 in 0..*
|
|
87
|
+
input quantity "数量": number[dimensionless] = 5 in 0..100 integer
|
|
88
|
+
input discount "折扣": probability = 10%
|
|
89
|
+
|
|
90
|
+
field subtotal "小计": dimensionless = unit_price * quantity
|
|
91
|
+
|
|
92
|
+
output total "折后总价": dimensionless = subtotal * (1 - discount)
|
|
93
|
+
display total = number digits 2
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
保存为 `entries/basic_model.kirin` 后可以校验和计算:
|
|
97
|
+
|
|
98
|
+
```bash
|
|
99
|
+
kt check
|
|
100
|
+
kt eval basic_model.total
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
结果为精确值 `54`。十进制先转换为精确有理数,不经过二进制浮点近似。
|
|
104
|
+
|
|
105
|
+
## 浏览器工作台
|
|
106
|
+
|
|
107
|
+
`kt web [WORKSPACE|SOURCE.kirin]` 启动只监听本机回环地址的浏览器工作台。服务使用随机会话令牌,不接受外部 Host、跨站 Origin 或远程监听;停止终端进程即可关闭,不存在后台守护程序或云端账户状态。
|
|
108
|
+
|
|
109
|
+
工作台的主要能力包括:
|
|
110
|
+
|
|
111
|
+
- 在中央 CodeMirror 编辑器中完成全部源码编辑;`Ctrl+Space` 提供 Kirin Tor 补全和中文结构片段。
|
|
112
|
+
- 同时保留多个未保存草稿,按完整工作区校验,并通过 Save All 原子写入。
|
|
113
|
+
- Agent 或其他本地工具直接改写 `.kirin` 后,干净文档与新文档会自动同步;未保存草稿不会被覆盖,也不会显示 CLI 或 Agent 操作记录。
|
|
114
|
+
- 自动派生只读结果、静态图表、Process Analysis 多图、公式、诊断和局部关系;检查器不提供临时计算参数或参数方案填写字段。
|
|
115
|
+
- 提供定义跳转、引用查找、符号大纲、签名提示、安全重命名、查找替换和安全空白格式化。
|
|
116
|
+
- 提供工作区全文搜索、草稿式批量替换、保存前变更审查、只读 Git 摘要和外部冲突三方合并。
|
|
117
|
+
- 支持文档路径移动、复制为新草稿,以及依赖安全的可恢复删除;这些文件操作不会改写源码中的 `@entry` ID 或数学语义。
|
|
118
|
+
- 从已校验引用生成文档与成员关系图,并为图表和画布提供键盘可读的数据列表。
|
|
119
|
+
- 通过独立本地进程执行长操作,显示真实阶段并允许取消;数学超时仍是另一层独立限制。
|
|
120
|
+
|
|
121
|
+
右侧检查器的结果使用源码默认值。需要改变默认预览时应编辑 `.kirin` 输入默认值;需要重复使用的组合应写成命名 `presets`。变换、求导、求解、扫描和网格目前使用相应 CLI 命令;多方案比较保留在共享计算服务层。这些高级操作没有在浏览器中复制成一组通用参数表单。
|
|
122
|
+
|
|
123
|
+
### 与 Agent 一起创作
|
|
124
|
+
|
|
125
|
+
保持 `kt web` 打开的同时,可以让本地 Agent 直接创建或修改工作区中的
|
|
126
|
+
`entries/**/*.kirin`。Agent 不需要操作浏览器,也不需要通过 Kirin Tor CLI 写文档;工作台会自动发现新
|
|
127
|
+
文档,并在当前缓冲区没有未保存修改时重新加载源码和派生预览。界面只显示最终文档、诊断与结果,
|
|
128
|
+
不会显示 Agent 的提示词、操作过程、终端或 CLI 输出。
|
|
129
|
+
|
|
130
|
+
这是一种以 `.kirin` 文件为中介的协作,不是共享光标或隐藏的 Agent 状态。Agent 看不到浏览器内尚未
|
|
131
|
+
保存的草稿;若双方改到同一文档,工作台保留草稿并打开 base/draft/disk 冲突比较。Agent 直接修改多
|
|
132
|
+
个文件也不属于 Save All 原子事务,期间出现的不完整源码会照常显示诊断,只有通过完整校验的模型才
|
|
133
|
+
能计算。详细合同见[浏览器工作台规范](docs/web-workbench.md#external-agent-authoring)。
|
|
134
|
+
|
|
135
|
+
常用编辑快捷键:
|
|
136
|
+
|
|
137
|
+
| 操作 | 快捷键 |
|
|
138
|
+
| --- | --- |
|
|
139
|
+
| 保存全部 | `Mod+S` |
|
|
140
|
+
| 补全 | `Ctrl+Space` |
|
|
141
|
+
| 查找/替换 | `Mod+F` |
|
|
142
|
+
| 跳到行 | `Mod+G` |
|
|
143
|
+
| 文档符号大纲 | `Mod+Shift+O` |
|
|
144
|
+
| 安全格式化 | `Mod+Shift+F` |
|
|
145
|
+
| 转到定义 | `F12` 或 `Mod+单击` |
|
|
146
|
+
| 查看定义与引用 | `Shift+F12` |
|
|
147
|
+
| 安全重命名 | `F2` |
|
|
148
|
+
| 工作区快速打开 | `Mod+K` 或 `Mod+P` |
|
|
149
|
+
|
|
150
|
+
完整交互与权威边界见[浏览器工作台规范](docs/web-workbench.md)。
|
|
151
|
+
|
|
152
|
+
## 语言和数学能力
|
|
153
|
+
|
|
154
|
+
Kirin Tor source v2 使用一个 `entry` 文档模型和一致的逐项声明语法。正式 ID 保持 ASCII;中文别名只在声明它的条目中参与公式,显示标签只影响界面、解释和图表。跨文档引用、CLI 参数、运行记录和 Package 导出继续使用稳定的正式身份。
|
|
155
|
+
|
|
156
|
+
当前内核支持:
|
|
157
|
+
|
|
158
|
+
- 精确整数、有理数、十进制和科学计数法;
|
|
159
|
+
- 数值与布尔输入、范围、整数限制、有限允许值和组合约束;
|
|
160
|
+
- 用户声明的量纲、精确比例单位和可复用值域;
|
|
161
|
+
- 字段、函数、输出、分组、参数方案、显示格式和版本化查表;
|
|
162
|
+
- 封闭的可复用类型、具名对象和静态多层属性访问;
|
|
163
|
+
- 有界 Process 状态、精确时间、事件 phase、连续 flow、动作 guard、冷却/充能等作者定义组件与固定策略;
|
|
164
|
+
- 条件、分段、有限求和与连乘;
|
|
165
|
+
- 有限离散分布、显式独立组合、条件化和有限重复;
|
|
166
|
+
- Process 事件链形式的有界迭代,以及有限随机转移的 `reach` / `steady` / `cycle` 分析;
|
|
167
|
+
- 化简、展开、因式分解、求导、单变量求解和最多八个变量的有限符号联立求解;
|
|
168
|
+
- 一维扫描、双输入网格、SVG/PNG/CSV 图表以及可重放运行记录。
|
|
169
|
+
|
|
170
|
+
完整语法写法见 [Kirin Tor source syntax v2](docs/kirin-syntax.md);数学语义、安全边界和固定限制见[结构模型、表达式与安全边界](docs/schema-and-expressions.md)。
|
|
171
|
+
|
|
172
|
+
## 社区 Package
|
|
173
|
+
|
|
174
|
+
社区 Package 是独立维护、只含数据的 GitHub 仓库或本地开发目录。Kirin Tor 不执行其中的 Python、安装脚本、Git hook 或其他代码。
|
|
175
|
+
|
|
176
|
+
公开仓库可添加 GitHub topic `kirin-tor-package`,从工作台的只读发现抽屉中被找到。Topic 只是社区自声明;发现不会安装内容,安装仍需用户明确指定来源与精确版本。
|
|
177
|
+
|
|
178
|
+
创建并检查 Package:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
kt package new my-community-package \
|
|
182
|
+
--name community.example \
|
|
183
|
+
--namespace community_example
|
|
184
|
+
kt package check my-community-package
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
安装精确 GitHub 版本或本地不可变快照:
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
cd my-math
|
|
191
|
+
kt package add example github:OWNER/REPOSITORY 1.0.0
|
|
192
|
+
kt package add-path local_example ../my-community-package
|
|
193
|
+
kt package list
|
|
194
|
+
kt package verify
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
`kirin.packages.toml` 记录用户请求的直接依赖,`kirin.lock` 锁定完整依赖图、Git commit 和内容摘要,`.kirin/packages/` 是可删除并显式恢复的只读缓存。普通工作区加载不会隐式联网。
|
|
198
|
+
|
|
199
|
+
完整协议见 [Kirin Tor community package protocol v1](docs/package-system-v1.md)。
|
|
200
|
+
|
|
201
|
+
## Workbench Extension Plugins
|
|
202
|
+
|
|
203
|
+
Workbench Plugin 可以为验证后的文档增加游戏化呈现器,也可以注册顶层页面、工作区工具、声明式命令和布局 Profile。插件不会改变 Kirin Tor 语法或数学结果;`.kirin`、验证器、Save All、Package 解析和运行记录仍由官方工作台控制。
|
|
204
|
+
|
|
205
|
+
公开仓库可添加 GitHub topic `kirin-tor-plugin`,从工作台的只读发现抽屉中被找到。只有当前协议可解析的 manifest 会显示;发现不会下载、安装、批准、启用或执行插件。
|
|
206
|
+
|
|
207
|
+
协议 v1 只安装作者明确选择的本地目录快照:
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
cd my-math
|
|
211
|
+
kt plugin add-path talents /path/to/talent-plugin
|
|
212
|
+
kt plugin list
|
|
213
|
+
kt plugin verify
|
|
214
|
+
kt web
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
插件清单、JavaScript、CSS、图片和其他静态文件全部进入内容摘要;安装时复制到 `.kirin/plugins/<SHA-256>/`,不会从可变源目录直接执行。`kirin.plugins.toml` 记录请求和启用状态,`kirin.plugins.lock` 锁定身份、版本与摘要,而可执行批准单独保存在工作区外的本机用户状态中。仅提交工作区配置不能批准陌生代码。
|
|
218
|
+
|
|
219
|
+
插件页面运行在没有同源权限的沙箱 iframe 中,只能接收清单权限允许的 JSON 投影。v1 可代理定位源码以及对既有合法 target 的有界求值;插件无法读取会话令牌、宿主 DOM、文件系统、环境变量或网络,也不能调用 Save All 和 Package 变更。出现问题时可停用插件,或使用:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
kt web --safe-mode
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
源码仓库提供了不含真实游戏数据的 `examples/plugins/fictional-talent-tree`,展示文档呈现器、页面、工具、命令与 Profile。完整清单、权限、frame 消息协议和限制见 [Workbench Extension Plugin protocol v1](docs/workbench-plugin-system-v1.md)。
|
|
226
|
+
|
|
227
|
+
## 命令概览
|
|
228
|
+
|
|
229
|
+
```text
|
|
230
|
+
kt init DIRECTORY
|
|
231
|
+
kt web [WORKSPACE|SOURCE.kirin] [--safe-mode]
|
|
232
|
+
kt new entry ID [--template blank|data|model|semantics]
|
|
233
|
+
kt list
|
|
234
|
+
kt show ID
|
|
235
|
+
kt explain TARGET
|
|
236
|
+
kt check
|
|
237
|
+
kt eval TARGET [--preset ENTRY.PRESET] [--set ENTRY.INPUT=VALUE]
|
|
238
|
+
kt analyze ENTRY.ANALYSIS [--save-run ID] [--export-charts]
|
|
239
|
+
kt simplify TARGET
|
|
240
|
+
kt expand TARGET
|
|
241
|
+
kt factor TARGET
|
|
242
|
+
kt diff TARGET --var ENTRY.INPUT
|
|
243
|
+
kt solve TARGET --var ENTRY.INPUT --equals VALUE
|
|
244
|
+
kt solve-system --equation TARGET=VALUE --var ENTRY.INPUT
|
|
245
|
+
kt scan --x ENTRY.INPUT --range START:END --points N --y TARGET
|
|
246
|
+
kt grid --x ENTRY.INPUT --x-range START:END --x-points N \
|
|
247
|
+
--y ENTRY.INPUT --y-range START:END --y-points N --result TARGET
|
|
248
|
+
kt plot [--config ENTRY_ID]
|
|
249
|
+
kt replay RUN_ID
|
|
250
|
+
kt package --help
|
|
251
|
+
kt plugin --help
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
各命令的完整参数以 `kt COMMAND --help` 为准。输出文件默认限制在工作区内且不覆盖已有文件;扩大路径权限或覆盖文件必须显式请求。保存运行记录前,参与计算的源码必须已经保存。
|
|
255
|
+
|
|
256
|
+
## 仓库示例
|
|
257
|
+
|
|
258
|
+
`examples/虚构技能工作区` 只存在于源码仓库,不进入 wheel 或 source distribution。其数据完全虚构,只用于验证常见游戏公式形状:
|
|
259
|
+
|
|
260
|
+
```bash
|
|
261
|
+
cd "examples/虚构技能工作区"
|
|
262
|
+
kt check
|
|
263
|
+
kt eval combo.total --preset presets.baseline
|
|
264
|
+
kt simplify combo.total --keep combo.crit
|
|
265
|
+
kt diff combo.total --var combo.crit
|
|
266
|
+
kt solve combo.total --var combo.crit --equals "3000 damage" --range "0:1"
|
|
267
|
+
kt plot --config combo --force
|
|
268
|
+
kt analyze rotation.replay_rotation
|
|
269
|
+
kt analyze rotation.prove_rotation
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
关键结果包括 `2750 damage`、`2200*combo.crit + 2200`、导数 `2200 damage`、解 `4/11`,以及固定 Process 策略的精确轨迹与边界周期证明。这些都是测试数据,不代表任何真实游戏技能。
|
|
273
|
+
|
|
274
|
+
## 能力边界
|
|
275
|
+
|
|
276
|
+
Kirin Tor 可以直接处理作者给出的有限公式、有限分布,以及有明确 phase 和 fuel 的有界 Process 场景。Process Analysis 已支持精确有限随机路径、作者声明的条件或固定序列策略,以及 `run`、`compare`、确定性有界 `optimize`、`reach`、有限状态 `steady` 和 `cycle`。它不会从技能说明自动推导完整战斗循环。当前没有:
|
|
277
|
+
|
|
278
|
+
- 优先级 APL、完整战斗时间线或随机采样;
|
|
279
|
+
- 一般连续时间搜索的全局证明或带误差界全局求解;
|
|
280
|
+
- 面向动态目标集合的公开建模承诺,或通用向量/矩阵语言;
|
|
281
|
+
- 无界连续或离散全局优化器;
|
|
282
|
+
- 积分、极限和完整通用数值根搜索。
|
|
283
|
+
|
|
284
|
+
常见理论计算的适用范围和不可直接表达的问题见[游戏机制计算能力边界](docs/game-mechanics-capability-audit.md)。
|
|
285
|
+
|
|
286
|
+
## 文档索引
|
|
287
|
+
|
|
288
|
+
| 文档 | 职责 |
|
|
289
|
+
| --- | --- |
|
|
290
|
+
| [Kirin Tor source syntax v2](docs/kirin-syntax.md) | 表面语法、类型化属性、多层访问与 Process 写法 |
|
|
291
|
+
| [结构模型、表达式与安全边界](docs/schema-and-expressions.md) | 解析后的数学语义、求值、安全和固定限制 |
|
|
292
|
+
| [有界 Process 模型](docs/bounded-process-model.md) | 动态机制统一语义、fuel、分析器与证明边界 |
|
|
293
|
+
| [有界 Process 纸面模型](docs/bounded-process-paper-models.md) | 六类机制的目标验证、Policy/Analysis 声明与当前可执行边界 |
|
|
294
|
+
| [浏览器工作台规范](docs/web-workbench.md) | 界面、编辑状态、外部 Agent 协作、保存、冲突与权威边界 |
|
|
295
|
+
| [Kirin Tor community package protocol v1](docs/package-system-v1.md) | Package manifest、解析、锁定、缓存和来源 |
|
|
296
|
+
| [Workbench Extension Plugin protocol v1](docs/workbench-plugin-system-v1.md) | 沙箱 UI 插件、贡献点、权限、批准、锁定和安全模式 |
|
|
297
|
+
| [游戏机制计算能力边界](docs/game-mechanics-capability-audit.md) | 已证明能力、需要外部等效模型的情况和明确非目标 |
|
|
298
|
+
| [Changelog](CHANGELOG.md) | 版本历史、破坏性变更和未发布修改 |
|
|
299
|
+
|
|
300
|
+
发生冲突时,以当前实现和测试为行为证据;表面语法以语法文档为准,数学与安全契约以结构模型文档为准,界面行为以工作台规范为准,Package 行为以 Package 协议为准。Changelog 只记录历史,不替代当前规范。
|