novelws 5.2.0 → 5.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/README.md +53 -0
- package/dist/cli.js +3 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/dashboard.d.ts +3 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +51 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +26 -0
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/upgrade.d.ts.map +1 -1
- package/dist/commands/upgrade.js +23 -0
- package/dist/commands/upgrade.js.map +1 -1
- package/dist/core/config.d.ts +6 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +8 -0
- package/dist/core/config.js.map +1 -1
- package/dist/server/datasource/db.d.ts +38 -0
- package/dist/server/datasource/db.d.ts.map +1 -0
- package/dist/server/datasource/db.js +323 -0
- package/dist/server/datasource/db.js.map +1 -0
- package/dist/server/datasource/fs.d.ts +30 -0
- package/dist/server/datasource/fs.d.ts.map +1 -0
- package/dist/server/datasource/fs.js +308 -0
- package/dist/server/datasource/fs.js.map +1 -0
- package/dist/server/datasource/index.d.ts +11 -0
- package/dist/server/datasource/index.d.ts.map +1 -0
- package/dist/server/datasource/index.js +33 -0
- package/dist/server/datasource/index.js.map +1 -0
- package/dist/server/index.d.ts +12 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +69 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/routes/characters.d.ts +4 -0
- package/dist/server/routes/characters.d.ts.map +1 -0
- package/dist/server/routes/characters.js +27 -0
- package/dist/server/routes/characters.js.map +1 -0
- package/dist/server/routes/plots.d.ts +4 -0
- package/dist/server/routes/plots.d.ts.map +1 -0
- package/dist/server/routes/plots.js +36 -0
- package/dist/server/routes/plots.js.map +1 -0
- package/dist/server/routes/protagonist.d.ts +4 -0
- package/dist/server/routes/protagonist.d.ts.map +1 -0
- package/dist/server/routes/protagonist.js +46 -0
- package/dist/server/routes/protagonist.js.map +1 -0
- package/dist/server/routes/relationships.d.ts +4 -0
- package/dist/server/routes/relationships.d.ts.map +1 -0
- package/dist/server/routes/relationships.js +27 -0
- package/dist/server/routes/relationships.js.map +1 -0
- package/dist/server/routes/stats.d.ts +4 -0
- package/dist/server/routes/stats.d.ts.map +1 -0
- package/dist/server/routes/stats.js +21 -0
- package/dist/server/routes/stats.js.map +1 -0
- package/dist/server/routes/stories.d.ts +4 -0
- package/dist/server/routes/stories.d.ts.map +1 -0
- package/dist/server/routes/stories.js +80 -0
- package/dist/server/routes/stories.js.map +1 -0
- package/dist/server/routes/timeline.d.ts +4 -0
- package/dist/server/routes/timeline.d.ts.map +1 -0
- package/dist/server/routes/timeline.js +17 -0
- package/dist/server/routes/timeline.js.map +1 -0
- package/dist/server/types.d.ts +199 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +2 -0
- package/dist/server/types.js.map +1 -0
- package/package.json +10 -3
- package/templates/commands/analyze.md +9 -1
- package/templates/commands/expand.md +19 -3
- package/templates/commands/write.md +23 -7
- package/templates/dashboard/assets/ChaptersView-CkYRzkTt.css +1 -0
- package/templates/dashboard/assets/CharactersView-BuH15mT-.css +1 -0
- package/templates/dashboard/assets/DashboardView-qD5yG8Hj.css +1 -0
- package/templates/dashboard/assets/PlotsView-Cnx9_j0t.css +1 -0
- package/templates/dashboard/assets/ProtagonistView-DfWCFC3K.css +1 -0
- package/templates/dashboard/assets/RelationshipsView-DMtu4xH0.css +1 -0
- package/templates/dashboard/assets/TimelineView-CovxzAeu.css +1 -0
- package/templates/dashboard/assets/index-nD7kmLMb.css +1 -0
- package/templates/dashboard/index.html +13 -0
- package/templates/dot-claude/CLAUDE.md +27 -0
- package/templates/scripts/db_context.py +609 -0
- package/templates/scripts/db_init_protagonist.py +343 -0
- package/templates/scripts/db_sync.py +611 -0
- package/templates/scripts/db_volume_switch.py +278 -0
- package/templates/scripts/phase_a_init_db.py +428 -0
- package/templates/scripts/requirements.txt +1 -0
- package/templates/tracking/character-state.json +1 -3
- package/templates/tracking/plot-tracker.json +1 -5
- package/templates/tracking/relationships.json +1 -3
- package/templates/tracking/timeline.json +1 -3
- package/templates/volume-outline.md +31 -0
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,57 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [5.4.0] - 2026-02-26
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- **Dashboard 模板集成** — `novelws init` 初始化时自动安装 Dashboard 静态文件
|
|
13
|
+
- 新项目可直接运行 `novelws dashboard` 启动 Web 仪表盘
|
|
14
|
+
- Dashboard 模板存储在 `templates/dashboard/`
|
|
15
|
+
- **Dashboard 安装检查** — `novelws dashboard` 命令添加 dashboard 目录存在性检测
|
|
16
|
+
- 未安装时给出友好错误提示和解决方案
|
|
17
|
+
|
|
18
|
+
### Technical
|
|
19
|
+
|
|
20
|
+
- TypeScript 编译产物正常生成
|
|
21
|
+
- 124 个测试全部通过
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## [5.3.0] - 2026-02-26
|
|
26
|
+
|
|
27
|
+
### Added
|
|
28
|
+
|
|
29
|
+
- **Web Dashboard** — 基于 Vue 3 + Element Plus + ECharts 的可视化创作仪表盘
|
|
30
|
+
- 6 个视图页面:仪表盘、角色管理、关系网络、时间线、情节追踪、章节浏览
|
|
31
|
+
- `novelws dashboard` CLI 子命令,支持 `--port`、`--dev`、`--no-open` 选项
|
|
32
|
+
- Express 后端 + 双数据源(PostgreSQL / 文件系统自动降级)
|
|
33
|
+
- **主角成长系统** — protagonist 5 张表(技能、技能事件、道具、道具事件、修炼进度)+ 3 个视图
|
|
34
|
+
- `db_init_protagonist.py` — 建表 + 首次数据导入脚本
|
|
35
|
+
- `db_context.py` — write/expand/analyze/dashboard 四模式追加主角数据段
|
|
36
|
+
- `db_volume_switch.py` — 卷切换摘要追加主角状态段
|
|
37
|
+
- 命令文件 write.md/expand.md/analyze.md 追加 DB 增强模式主角描述
|
|
38
|
+
- **Dashboard 主角成长页面** — 统计卡片 + 技能列表(按类别折叠)+ 道具背包表格 + 修炼曲线图
|
|
39
|
+
- 仪表盘首页追加「主角修为」「技能/道具」统计卡片
|
|
40
|
+
- 4 个 REST API 端点:overview / skills / inventory / cultivation
|
|
41
|
+
- TypeScript 类型定义:ProtagonistSkill、ProtagonistItem、CultivationNode、ProtagonistOverview
|
|
42
|
+
- **Dashboard 可视化测试指南** — Playwright MCP + Mock 数据的浏览器验证方案(`docs/guide/dashboard-visual-test.md`)
|
|
43
|
+
|
|
44
|
+
### Changed
|
|
45
|
+
|
|
46
|
+
- **`db_sync.py`** — 追加 protagonist 表的同步支持
|
|
47
|
+
- **`phase_a_init_db.py`** — 追加 protagonist 5 张表的 DDL
|
|
48
|
+
- **DataSource 接口** — 新增 4 个 protagonist 方法,DB 实现查询视图,FS 返回空值
|
|
49
|
+
- **测试** — 新增 protagonist 路由测试、DB 数据源 protagonist 测试,template-validation 更新为 5 个脚本
|
|
50
|
+
|
|
51
|
+
### Technical
|
|
52
|
+
|
|
53
|
+
- 23 suites,124 个测试全部通过
|
|
54
|
+
- Dashboard 前端构建零错误
|
|
55
|
+
- TypeScript 编译产物正常生成
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
8
59
|
## [5.2.0] - 2026-02-21
|
|
9
60
|
|
|
10
61
|
### Changed
|
package/README.md
CHANGED
|
@@ -15,6 +15,8 @@
|
|
|
15
15
|
- **自动 Tracking** — 4 个 JSON 文件自动追踪角色状态、关系、情节线、时间线
|
|
16
16
|
- **精准上下文加载** — 每个命令只加载最小必要上下文,控制 token 消耗
|
|
17
17
|
- **质量检查** — 概要符合度、角色一致性、伏笔完整性、连贯性、AI味检测
|
|
18
|
+
- **Web Dashboard** — 可视化创作仪表盘,角色管理、关系网络、时间线、情节追踪、主角成长
|
|
19
|
+
- **DB 增强模式** — PostgreSQL 数据库支持,含主角技能/道具/修炼进度追踪
|
|
18
20
|
|
|
19
21
|
## 快速开始
|
|
20
22
|
|
|
@@ -37,6 +39,8 @@ novelws init --here
|
|
|
37
39
|
novelws init my-novel --model claude-sonnet-4-5-20250929
|
|
38
40
|
```
|
|
39
41
|
|
|
42
|
+
初始化完成后,新项目已自动包含 Dashboard 静态文件,可直接运行 `novelws dashboard` 启动 Web 仪表盘。
|
|
43
|
+
|
|
40
44
|
### 3. 在 Claude Code 中开始创作
|
|
41
45
|
|
|
42
46
|
在 Claude Code 中打开项目,使用斜杠命令:
|
|
@@ -167,8 +171,57 @@ novelws check
|
|
|
167
171
|
|
|
168
172
|
# 升级项目(更新命令和资源文件)
|
|
169
173
|
novelws upgrade
|
|
174
|
+
|
|
175
|
+
# 启动可视化仪表盘
|
|
176
|
+
novelws dashboard
|
|
177
|
+
novelws dashboard --port 8080 --no-open
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## Web Dashboard
|
|
181
|
+
|
|
182
|
+
可视化创作仪表盘,基于 Vue 3 + Element Plus + ECharts:
|
|
183
|
+
|
|
184
|
+
```bash
|
|
185
|
+
novelws dashboard
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
浏览器自动打开 `http://localhost:3210`,包含 7 个视图:
|
|
189
|
+
|
|
190
|
+
| 页面 | 功能 |
|
|
191
|
+
|------|------|
|
|
192
|
+
| 仪表盘 | 总字数、章节数、卷数、角色数、情节线、伏笔统计 + 各卷字数/章节图表 |
|
|
193
|
+
| 角色管理 | 角色列表、状态、修为弧线 |
|
|
194
|
+
| 主角成长 | 技能列表(按类别折叠)、道具背包、修炼曲线图 |
|
|
195
|
+
| 关系网络 | 力导向关系图 |
|
|
196
|
+
| 时间线 | 章节事件时间轴 |
|
|
197
|
+
| 情节追踪 | 情节线状态、伏笔矩阵 |
|
|
198
|
+
| 章节浏览 | 章节列表、字数统计 |
|
|
199
|
+
|
|
200
|
+
支持双数据源:PostgreSQL(DB 增强模式)或文件系统(自动降级)。
|
|
201
|
+
|
|
202
|
+
## DB 增强模式
|
|
203
|
+
|
|
204
|
+
可选的 PostgreSQL 数据库支持,提供更精确的上下文查询和主角追踪:
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
# 1. 配置数据库连接
|
|
208
|
+
# 编辑 resources/config.json 中的 database 配置
|
|
209
|
+
|
|
210
|
+
# 2. 安装依赖
|
|
211
|
+
pip install -r scripts/requirements.txt
|
|
212
|
+
|
|
213
|
+
# 3. 初始化数据库
|
|
214
|
+
python scripts/phase_a_init_db.py
|
|
215
|
+
|
|
216
|
+
# 4. 初始化主角数据表(可选)
|
|
217
|
+
python scripts/db_init_protagonist.py
|
|
170
218
|
```
|
|
171
219
|
|
|
220
|
+
DB 模式下,`/write`、`/expand`、`/analyze` 命令自动获取:
|
|
221
|
+
- 精确的角色状态、伏笔、关系、时间线数据
|
|
222
|
+
- 主角修炼进度、技能清单、道具状态
|
|
223
|
+
- 一致性校验基准(技能习得时间线 + 道具持有状态)
|
|
224
|
+
|
|
172
225
|
## 贡献
|
|
173
226
|
|
|
174
227
|
欢迎提交 Issue 和 Pull Request!
|
package/dist/cli.js
CHANGED
|
@@ -5,6 +5,7 @@ import { getVersion, getVersionInfo } from './version.js';
|
|
|
5
5
|
import { registerInitCommand } from './commands/init.js';
|
|
6
6
|
import { registerCheckCommand } from './commands/check.js';
|
|
7
7
|
import { registerUpgradeCommand } from './commands/upgrade.js';
|
|
8
|
+
import { registerDashboardCommand } from './commands/dashboard.js';
|
|
8
9
|
// 显示欢迎横幅
|
|
9
10
|
function displayBanner() {
|
|
10
11
|
const banner = `
|
|
@@ -27,6 +28,7 @@ program
|
|
|
27
28
|
registerInitCommand(program);
|
|
28
29
|
registerCheckCommand(program);
|
|
29
30
|
registerUpgradeCommand(program);
|
|
31
|
+
registerDashboardCommand(program);
|
|
30
32
|
// 自定义帮助信息
|
|
31
33
|
program.on('--help', () => {
|
|
32
34
|
console.log('');
|
|
@@ -36,6 +38,7 @@ program.on('--help', () => {
|
|
|
36
38
|
console.log(' $ novelws init --here # 在当前目录初始化');
|
|
37
39
|
console.log(' $ novelws check # 检查环境');
|
|
38
40
|
console.log(' $ novelws upgrade # 升级项目');
|
|
41
|
+
console.log(' $ novelws dashboard # 启动可视化仪表盘');
|
|
39
42
|
console.log('');
|
|
40
43
|
console.log(chalk.gray('更多信息: https://github.com/binlee1990/novel-writer-skills'));
|
|
41
44
|
});
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,SAAS;AACT,SAAS,aAAa;IACpB,MAAM,MAAM,GAAG;;;;;CAKhB,CAAC;IACA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;AACrD,CAAC;AAED,aAAa,EAAE,CAAC;AAEhB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;KACrE,OAAO,CAAC,UAAU,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC;KAC/C,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AAEtC,QAAQ;AACR,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAElC,UAAU;AACV,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;IACxB,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,2CAA2C,CAAC,CAAC;IACzD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC,CAAC;AACrF,CAAC,CAAC,CAAC;AAEH,UAAU;AACV,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAE5B,oBAAoB;AACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAClC,OAAO,CAAC,UAAU,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAKtD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAoD/D"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs-extra';
|
|
4
|
+
export function registerDashboardCommand(program) {
|
|
5
|
+
program
|
|
6
|
+
.command('dashboard')
|
|
7
|
+
.description('启动可视化创作仪表盘')
|
|
8
|
+
.option('--port <port>', '服务器端口', '3210')
|
|
9
|
+
.option('--dev', '开发模式(仅启动 API 服务器)')
|
|
10
|
+
.option('--no-open', '不自动打开浏览器')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
const projectRoot = process.cwd();
|
|
13
|
+
// 检查是否在 novelws 项目中
|
|
14
|
+
const configPath = path.join(projectRoot, 'resources', 'config.json');
|
|
15
|
+
if (!await fs.pathExists(configPath)) {
|
|
16
|
+
console.error(chalk.red('❌ 当前目录不是 novelws 项目(未找到 resources/config.json)'));
|
|
17
|
+
process.exit(1);
|
|
18
|
+
}
|
|
19
|
+
// 检查 dashboard 是否已安装
|
|
20
|
+
const dashboardPath = path.join(projectRoot, 'dashboard');
|
|
21
|
+
if (!await fs.pathExists(dashboardPath)) {
|
|
22
|
+
console.error(chalk.red('❌ Dashboard 未安装'));
|
|
23
|
+
console.log(chalk.yellow('\n请运行以下命令安装 Dashboard:'));
|
|
24
|
+
console.log(chalk.white(' novelws init --here'));
|
|
25
|
+
console.log(chalk.gray(' 或重新初始化项目'));
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
const port = parseInt(options.port, 10);
|
|
29
|
+
console.log(chalk.cyan('📊 正在启动 Dashboard...'));
|
|
30
|
+
console.log(chalk.gray(` 项目: ${projectRoot}`));
|
|
31
|
+
console.log(chalk.gray(` 端口: ${port}`));
|
|
32
|
+
console.log(chalk.gray(` 模式: ${options.dev ? '开发' : '生产'}`));
|
|
33
|
+
try {
|
|
34
|
+
const { startServer } = await import('../server/index.js');
|
|
35
|
+
await startServer(projectRoot, port);
|
|
36
|
+
if (options.open !== false && !options.dev) {
|
|
37
|
+
const { default: open } = await import('open');
|
|
38
|
+
await open(`http://localhost:${port}`);
|
|
39
|
+
}
|
|
40
|
+
if (options.dev) {
|
|
41
|
+
console.log(chalk.yellow('\n💡 开发模式:请手动启动前端开发服务器'));
|
|
42
|
+
console.log(chalk.white(' cd dashboard && npm run dev'));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
console.error(chalk.red('❌ Dashboard 启动失败:'), error);
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAetD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAetD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqJ1D"}
|
package/dist/commands/init.js
CHANGED
|
@@ -55,6 +55,16 @@ export function registerInitCommand(program) {
|
|
|
55
55
|
type: 'novel',
|
|
56
56
|
version: getVersion(),
|
|
57
57
|
created: new Date().toISOString(),
|
|
58
|
+
story: '',
|
|
59
|
+
database: {
|
|
60
|
+
enabled: false,
|
|
61
|
+
host: '127.0.0.1',
|
|
62
|
+
port: 5432,
|
|
63
|
+
dbname: 'postgres',
|
|
64
|
+
user: 'postgres',
|
|
65
|
+
password: 'admin',
|
|
66
|
+
schema: 'novelws',
|
|
67
|
+
},
|
|
58
68
|
};
|
|
59
69
|
await fs.writeJson(paths.resourcesConfig, config, { spaces: 2 });
|
|
60
70
|
// 从 novel-writer-skills 包复制模板文件
|
|
@@ -80,6 +90,16 @@ export function registerInitCommand(program) {
|
|
|
80
90
|
await fs.copy(templates.resources, paths.resources);
|
|
81
91
|
spinner.text = '已安装资源文件...';
|
|
82
92
|
}
|
|
93
|
+
// 复制 scripts/ 模板(DB 工具脚本)
|
|
94
|
+
if (await fs.pathExists(templates.scripts)) {
|
|
95
|
+
await fs.copy(templates.scripts, paths.scripts);
|
|
96
|
+
spinner.text = '已安装 DB 工具脚本...';
|
|
97
|
+
}
|
|
98
|
+
// 复制 dashboard/ 模板(Web 仪表盘静态文件)
|
|
99
|
+
if (await fs.pathExists(templates.dashboard)) {
|
|
100
|
+
await fs.copy(templates.dashboard, paths.dashboard);
|
|
101
|
+
spinner.text = '已安装 Dashboard...';
|
|
102
|
+
}
|
|
83
103
|
// Git 初始化
|
|
84
104
|
if (options.git !== false) {
|
|
85
105
|
try {
|
|
@@ -108,6 +128,12 @@ export function registerInitCommand(program) {
|
|
|
108
128
|
console.log(` ${chalk.cyan('/expand')} - 将概要扩写为正文`);
|
|
109
129
|
console.log(` ${chalk.cyan('/analyze')} - 质量检查`);
|
|
110
130
|
console.log('\n' + chalk.dim('提示: 斜杠命令在 Claude Code 内部使用,不是在终端中'));
|
|
131
|
+
console.log('\n' + chalk.yellow(' 📊 Dashboard 可视化仪表盘:'));
|
|
132
|
+
console.log(` 运行 ${chalk.white('novelws dashboard')} 启动 Web 界面`);
|
|
133
|
+
console.log('\n' + chalk.yellow(' 🗄️ DB 增强(可选):'));
|
|
134
|
+
console.log(` 编辑 ${chalk.white('resources/config.json')} 中的 database 配置`);
|
|
135
|
+
console.log(` 运行 ${chalk.white('pip install -r scripts/requirements.txt')}`);
|
|
136
|
+
console.log(` 运行 ${chalk.white('python scripts/phase_a_init_db.py')} 初始化数据库`);
|
|
111
137
|
}
|
|
112
138
|
catch (error) {
|
|
113
139
|
spinner.fail(chalk.red('项目初始化失败'));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EACL,sBAAsB,EACtB,eAAe,EACf,iBAAiB,GAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;SAC5B,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC;SAC5B,MAAM,CAAC,gBAAgB,EAAE,eAAe,CAAC;SACzC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC;SAChC,WAAW,CAAC,aAAa,CAAC;SAC1B,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE;QAC9B,MAAM,OAAO,GAAG,GAAG,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,SAAS;YACT,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;gBAC5B,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,EAAE,CAAC;oBACV,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC;gBAC7C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,CAAC;oBACnC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAClC,CAAC;YAED,WAAW;YACX,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,QAAQ,GAAG;gBACf,KAAK,CAAC,MAAM;gBACZ,KAAK,CAAC,QAAQ;gBACd,KAAK,CAAC,SAAS;gBACf,KAAK,CAAC,OAAO;aACd,CAAC;YAEF,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;gBAC3B,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,WAAW;YACX,MAAM,MAAM,GAAG;gBACb,IAAI;gBACJ,IAAI,EAAE,OAAO;gBACb,OAAO,EAAE,UAAU,EAAE;gBACrB,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAYtD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAYtD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmH7D"}
|
package/dist/commands/upgrade.js
CHANGED
|
@@ -12,6 +12,7 @@ export function registerUpgradeCommand(program) {
|
|
|
12
12
|
program
|
|
13
13
|
.command('upgrade')
|
|
14
14
|
.option('--commands', '更新命令文件')
|
|
15
|
+
.option('--scripts', '更新 DB 工具脚本')
|
|
15
16
|
.option('--model <name>', '指定命令使用的 AI 模型')
|
|
16
17
|
.option('--all', '更新所有内容')
|
|
17
18
|
.option('-y, --yes', '跳过确认提示')
|
|
@@ -70,13 +71,35 @@ export function registerUpgradeCommand(program) {
|
|
|
70
71
|
if (await fs.pathExists(templates.resources)) {
|
|
71
72
|
await fs.copy(templates.resources, paths.resources, { overwrite: true });
|
|
72
73
|
}
|
|
74
|
+
// 更新 scripts
|
|
75
|
+
spinner.text = '更新 DB 工具脚本...';
|
|
76
|
+
if (await fs.pathExists(templates.scripts)) {
|
|
77
|
+
await fs.ensureDir(paths.scripts);
|
|
78
|
+
await fs.copy(templates.scripts, paths.scripts, { overwrite: true });
|
|
79
|
+
}
|
|
73
80
|
config.version = getVersion();
|
|
81
|
+
// 向后兼容:补充新字段
|
|
82
|
+
if (!config.story) {
|
|
83
|
+
config.story = '';
|
|
84
|
+
}
|
|
85
|
+
if (!config.database) {
|
|
86
|
+
config.database = {
|
|
87
|
+
enabled: false,
|
|
88
|
+
host: '127.0.0.1',
|
|
89
|
+
port: 5432,
|
|
90
|
+
dbname: 'postgres',
|
|
91
|
+
user: 'postgres',
|
|
92
|
+
password: '',
|
|
93
|
+
schema: 'novelws',
|
|
94
|
+
};
|
|
95
|
+
}
|
|
74
96
|
await fs.writeJson(paths.resourcesConfig, config, { spaces: 2 });
|
|
75
97
|
spinner.succeed(chalk.green('升级完成!\n'));
|
|
76
98
|
console.log(chalk.cyan('✨ 升级内容:'));
|
|
77
99
|
console.log(' • Slash Commands 已更新');
|
|
78
100
|
console.log(' • CLAUDE.md 已更新');
|
|
79
101
|
console.log(' • 资源文件已更新');
|
|
102
|
+
console.log(' • DB 工具脚本已更新');
|
|
80
103
|
console.log(` • 版本号: ${projectVersion} → ${getVersion()}`);
|
|
81
104
|
}
|
|
82
105
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"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"}
|
package/dist/core/config.d.ts
CHANGED
|
@@ -13,6 +13,8 @@ export declare const DIRS: {
|
|
|
13
13
|
readonly TRACKING: "tracking";
|
|
14
14
|
readonly RESOURCES: "resources";
|
|
15
15
|
readonly VOLUMES: "volumes";
|
|
16
|
+
readonly SCRIPTS: "scripts";
|
|
17
|
+
readonly DASHBOARD: "dashboard";
|
|
16
18
|
};
|
|
17
19
|
/** 文件名常量 */
|
|
18
20
|
export declare const FILES: {
|
|
@@ -39,6 +41,8 @@ export declare function getProjectPaths(projectRoot: string): {
|
|
|
39
41
|
resources: string;
|
|
40
42
|
resourcesConfig: string;
|
|
41
43
|
stories: string;
|
|
44
|
+
scripts: string;
|
|
45
|
+
dashboard: string;
|
|
42
46
|
};
|
|
43
47
|
/**
|
|
44
48
|
* 获取模板源路径映射(用于 init)
|
|
@@ -48,6 +52,8 @@ export declare function getTemplateSourcePaths(): {
|
|
|
48
52
|
dotClaude: string;
|
|
49
53
|
resources: string;
|
|
50
54
|
tracking: string;
|
|
55
|
+
scripts: string;
|
|
56
|
+
dashboard: string;
|
|
51
57
|
all: string;
|
|
52
58
|
};
|
|
53
59
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH,YAAY;AACZ,eAAO,MAAM,IAAI
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6CH,YAAY;AACZ,eAAO,MAAM,IAAI;;;;;;;;;;CAUP,CAAC;AAEX,YAAY;AACZ,eAAO,MAAM,KAAK;;;CAGR,CAAC;AAEX,uBAAuB;AACvB,eAAO,MAAM,iBAAiB,8LAc7B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,eAAe;AACf,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM;;;;;;;;;;EAiBlD;AAED;;GAEG;AACH,wBAAgB,sBAAsB;;;;;;;;EAWrC"}
|
package/dist/core/config.js
CHANGED
|
@@ -52,6 +52,8 @@ export const DIRS = {
|
|
|
52
52
|
TRACKING: 'tracking',
|
|
53
53
|
RESOURCES: 'resources',
|
|
54
54
|
VOLUMES: 'volumes',
|
|
55
|
+
SCRIPTS: 'scripts',
|
|
56
|
+
DASHBOARD: 'dashboard',
|
|
55
57
|
};
|
|
56
58
|
/** 文件名常量 */
|
|
57
59
|
export const FILES = {
|
|
@@ -100,6 +102,10 @@ export function getProjectPaths(projectRoot) {
|
|
|
100
102
|
resourcesConfig: path.join(projectRoot, DIRS.RESOURCES, FILES.CONFIG),
|
|
101
103
|
// stories/
|
|
102
104
|
stories: path.join(projectRoot, DIRS.STORIES),
|
|
105
|
+
// scripts/
|
|
106
|
+
scripts: path.join(projectRoot, DIRS.SCRIPTS),
|
|
107
|
+
// dashboard/
|
|
108
|
+
dashboard: path.join(projectRoot, DIRS.DASHBOARD),
|
|
103
109
|
};
|
|
104
110
|
}
|
|
105
111
|
/**
|
|
@@ -112,6 +118,8 @@ export function getTemplateSourcePaths() {
|
|
|
112
118
|
dotClaude: path.join(templatesDir, 'dot-claude'),
|
|
113
119
|
resources: path.join(templatesDir, DIRS.RESOURCES),
|
|
114
120
|
tracking: path.join(templatesDir, DIRS.TRACKING),
|
|
121
|
+
scripts: path.join(templatesDir, DIRS.SCRIPTS),
|
|
122
|
+
dashboard: path.join(templatesDir, DIRS.DASHBOARD),
|
|
115
123
|
all: templatesDir,
|
|
116
124
|
};
|
|
117
125
|
}
|
package/dist/core/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AAEpB;;;GAGG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,GAAG,GAAG,QAAQ,CAAC;IACnB,OAAO,IAAI,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,GAAG,CAAC;QACb,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,mBAAmB;YACnB,OAAO,QAAQ,CAAC;QAClB,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,aAAa;IACpB,eAAe;IACf,IAAI,OAAO,SAAS,KAAK,WAAW,EAAE,CAAC;QACrC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,mBAAmB;IACnB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;IACD,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;AACvB,CAAC;AAED,kBAAkB;AAClB,MAAM,YAAY,GAAG,eAAe,CAAC,aAAa,EAAE,CAAC,CAAC;AAEtD,YAAY;AACZ,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,QAAQ,EAAE,UAAU;IACpB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { DataSource, Story, StoryOverview, Volume, Chapter, Character, CharacterState, RelationshipGraph, RelationshipEvent, TimelineEvent, PlotThread, Foreshadow, ForeshadowMatrix, DashboardStats, ProtagonistOverview, ProtagonistSkill, ProtagonistItem, CultivationNode } from '../types.js';
|
|
2
|
+
interface DbConfig {
|
|
3
|
+
host: string;
|
|
4
|
+
port: number;
|
|
5
|
+
dbname: string;
|
|
6
|
+
user: string;
|
|
7
|
+
password: string;
|
|
8
|
+
schema: string;
|
|
9
|
+
}
|
|
10
|
+
export declare class DbDataSource implements DataSource {
|
|
11
|
+
private config;
|
|
12
|
+
private projectRoot;
|
|
13
|
+
private client;
|
|
14
|
+
private schema;
|
|
15
|
+
constructor(config: DbConfig, projectRoot: string);
|
|
16
|
+
connect(): Promise<void>;
|
|
17
|
+
disconnect(): Promise<void>;
|
|
18
|
+
private query;
|
|
19
|
+
getStories(): Promise<Story[]>;
|
|
20
|
+
getOverview(_story: string): Promise<StoryOverview>;
|
|
21
|
+
getVolumes(_story: string): Promise<Volume[]>;
|
|
22
|
+
getChapters(_story: string, vol?: number): Promise<Chapter[]>;
|
|
23
|
+
getCharacters(_story: string, vol?: number): Promise<Character[]>;
|
|
24
|
+
getCharacterArc(_story: string, name: string): Promise<CharacterState[]>;
|
|
25
|
+
getRelationships(_story: string, _vol?: number): Promise<RelationshipGraph>;
|
|
26
|
+
getRelationshipHistory(_story: string): Promise<RelationshipEvent[]>;
|
|
27
|
+
getTimeline(_story: string, vol?: number): Promise<TimelineEvent[]>;
|
|
28
|
+
getPlotThreads(_story: string): Promise<PlotThread[]>;
|
|
29
|
+
getForeshadowing(_story: string): Promise<Foreshadow[]>;
|
|
30
|
+
getForeshadowingMatrix(_story: string): Promise<ForeshadowMatrix>;
|
|
31
|
+
getDashboardStats(_story: string): Promise<DashboardStats>;
|
|
32
|
+
getProtagonistOverview(_story: string): Promise<ProtagonistOverview>;
|
|
33
|
+
getProtagonistSkills(_story: string): Promise<ProtagonistSkill[]>;
|
|
34
|
+
getProtagonistInventory(_story: string): Promise<ProtagonistItem[]>;
|
|
35
|
+
getCultivationCurve(_story: string): Promise<CultivationNode[]>;
|
|
36
|
+
}
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=db.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../../../src/server/datasource/db.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EACjD,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,iBAAiB,EAC/D,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EACvE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EACxE,MAAM,aAAa,CAAC;AAErB,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAa,YAAW,UAAU;IAIjC,OAAO,CAAC,MAAM;IAAY,OAAO,CAAC,WAAW;IAHzD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAAS;gBAEH,MAAM,EAAE,QAAQ,EAAU,WAAW,EAAE,MAAM;IAW3D,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;YAInB,KAAK;IAKb,UAAU,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;IAI9B,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAiBnD,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmB7C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA0B7D,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA8BjE,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgBxE,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA+B3E,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAgBpE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoBnE,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAerD,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBvD,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiCjE,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoB1D,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAoBpE,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAejE,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAenE,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;CAYtE"}
|