@dayinxisheng/novel-tools 0.1.0 → 0.2.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 CHANGED
@@ -5,6 +5,66 @@ 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
+ ## [0.2.0] - 2026-03-09
9
+
10
+ ### Added
11
+
12
+ #### event 命令
13
+ - `event append` - 追加章节事件
14
+ - 支持 JSON 字符串输入
15
+ - 支持从文件读取事件
16
+ - 支持交互式输入模式
17
+ - 支持覆盖已存在的事件(--replace)
18
+ - `event summary` - 生成章节摘要
19
+ - 支持多种输出格式:table、json、markdown
20
+ - 显示关键事件、人物动向、关系变化、新元素、伏笔等
21
+ - `event list` - 列出事件
22
+ - 支持按章节过滤
23
+ - 支持按类型过滤
24
+
25
+ #### temp-setting 命令
26
+ - `temp-setting add` - 添加临时设定
27
+ - 支持多种类型:character、location、item、skill、other
28
+ - 自动生成临时设定文件模板
29
+ - 自动更新审核队列
30
+ - `temp-setting list` - 列出待审核项
31
+ - 支持按类型过滤
32
+ - 显示待审核状态
33
+ - `temp-setting review` - 审核设定
34
+ - 支持交互式审核流程
35
+ - 支持批准并迁移
36
+ - 支持拒绝并删除
37
+ - `temp-setting migrate` - 迁移设定
38
+ - 支持迁移为正式人物卡片
39
+ - 支持迁移为正式设定元素
40
+ - 支持自定义目标路径
41
+
42
+ #### 新增服务
43
+ - `EventCommandService` - 事件命令服务
44
+ - 交互式追加事件
45
+ - 从文件追加事件
46
+ - 格式化摘要输出
47
+ - `TempSettingService` - 临时设定服务
48
+ - 临时设定管理
49
+ - 审核队列管理
50
+ - 设定迁移功能
51
+
52
+ #### 新增类型定义
53
+ - `AddTempSettingOptions` - 临时设定选项
54
+ - `PendingItem` - 待审核项
55
+ - `ReviewQueue` - 审核队列
56
+ - `MigrateOptions` - 迁移选项
57
+ - `TempSettingItem` - 临时设定项
58
+
59
+ #### 测试
60
+ - 新增 `event-command.service.test.ts`
61
+ - 新增 `temp-setting.service.test.ts`
62
+
63
+ ### Changed
64
+ - 扩展 `types.ts` 添加新类型定义
65
+ - 更新 `services/index.ts` 导出新服务
66
+ - 更新 `commands/index.ts` 注册新命令
67
+
8
68
  ## [0.1.0] - 2026-03-09
9
69
 
10
70
  ### Added
package/README.md CHANGED
@@ -10,7 +10,8 @@
10
10
 
11
11
  - **项目初始化**:创建标准的小说项目目录结构
12
12
  - **查询功能**:查询静态设定、人物信息、状态快照、人物关系、伏笔等
13
- - **事件管理**:记录章节事件、生成章节摘要
13
+ - **事件管理**:追加事件、生成章节摘要、列出事件
14
+ - **临时设定**:添加临时设定、审核队列、迁移到正式设定
14
15
  - **快照生成**:生成卷级/弧级状态快照
15
16
  - **一致性检查**:检查大纲、章节、弧、卷的一致性
16
17
 
@@ -43,6 +44,82 @@ novel-tools query relationships 张三
43
44
  novel-tools query foreshadows
44
45
  ```
45
46
 
47
+ ### 事件管理
48
+
49
+ #### 追加事件
50
+
51
+ ```bash
52
+ # JSON 字符串
53
+ novel-tools event append --chapter 1 --events '[{"type":"出场","character":"林风"}]'
54
+
55
+ # 从文件
56
+ novel-tools event append --chapter 1 --file events.json
57
+
58
+ # 交互式
59
+ novel-tools event append --chapter 1 --interactive
60
+
61
+ # 覆盖已存在的事件
62
+ novel-tools event append --chapter 1 --events '[...]' --replace
63
+ ```
64
+
65
+ #### 章节摘要
66
+
67
+ ```bash
68
+ novel-tools event summary --chapter 1 --output table
69
+ novel-tools event summary --chapter 1 --output json
70
+ novel-tools event summary --chapter 1 --output markdown
71
+ ```
72
+
73
+ #### 列出事件
74
+
75
+ ```bash
76
+ novel-tools event list
77
+ novel-tools event list --chapter 1
78
+ novel-tools event list --type 出场
79
+ ```
80
+
81
+ ### 临时设定管理
82
+
83
+ #### 添加临时设定
84
+
85
+ ```bash
86
+ # 添加人物
87
+ novel-tools temp-setting add --type character --name 林风 --chapter 5 --description "主要角色"
88
+
89
+ # 添加物品
90
+ novel-tools temp-setting add --type item --name 神秘令牌 --chapter 6 --description "一枚刻有古老符文的令牌"
91
+ ```
92
+
93
+ #### 列出待审核项
94
+
95
+ ```bash
96
+ novel-tools temp-setting list
97
+ novel-tools temp-setting list --type character
98
+ ```
99
+
100
+ #### 审核设定
101
+
102
+ ```bash
103
+ # 交互式审核
104
+ novel-tools temp-setting review --interactive
105
+
106
+ # 列出所有待审核项
107
+ novel-tools temp-setting review
108
+ ```
109
+
110
+ #### 迁移设定
111
+
112
+ ```bash
113
+ # 迁移为正式人物卡片
114
+ novel-tools temp-setting migrate 林风 --to-character
115
+
116
+ # 迁移为正式设定元素
117
+ novel-tools temp-setting migrate 神秘令牌 --to-element
118
+
119
+ # 自定义目标路径
120
+ novel-tools temp-setting migrate 林风 --location characters/cards/supporting/林风.md
121
+ ```
122
+
46
123
  ### 一致性检查
47
124
 
48
125
  ```bash
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * 创建 event 命令
4
+ */
5
+ export declare function createEventCommand(): Command;
6
+ //# sourceMappingURL=event.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.d.ts","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,OAAO,CAkH5C"}
@@ -0,0 +1,107 @@
1
+ import { Command } from 'commander';
2
+ import { EventCommandService } from '../services/event-command.service.js';
3
+ import { CliUtils } from './shared.js';
4
+ /**
5
+ * 创建 event 命令
6
+ */
7
+ export function createEventCommand() {
8
+ const cmd = new Command('event');
9
+ cmd.description('事件管理相关操作');
10
+ // event append — 追加事件
11
+ cmd
12
+ .command('append')
13
+ .argument('<chapter>', '章节号')
14
+ .option('-e, --events <json>', '事件 JSON 字符串')
15
+ .option('-f, --file <path>', '从文件读取事件 JSON')
16
+ .option('-i, --interactive', '交互式输入模式')
17
+ .option('--replace', '覆盖已存在的事件')
18
+ .option('-p, --path <path>', '项目路径')
19
+ .action(async (chapter, options) => {
20
+ try {
21
+ const projectPath = CliUtils.resolveProjectPath(options.path);
22
+ const chapterNum = parseInt(chapter, 10);
23
+ if (isNaN(chapterNum) || chapterNum < 1) {
24
+ CliUtils.error('章节号必须是正整数');
25
+ process.exit(1);
26
+ }
27
+ const service = new EventCommandService();
28
+ // 判断输入模式
29
+ if (options.interactive || (!options.events && !options.file)) {
30
+ // 交互式模式
31
+ await service.appendEventsInteractive(projectPath, chapterNum);
32
+ }
33
+ else if (options.file) {
34
+ // 从文件读取
35
+ await service.appendEventsFromFile(projectPath, chapterNum, options.file);
36
+ }
37
+ else if (options.events) {
38
+ // 从 JSON 字符串
39
+ await service.appendEventsFromJson(projectPath, chapterNum, options.events, options.replace);
40
+ }
41
+ }
42
+ catch (error) {
43
+ CliUtils.error(error instanceof Error ? error.message : String(error));
44
+ process.exit(1);
45
+ }
46
+ });
47
+ // event summary — 章节摘要
48
+ cmd
49
+ .command('summary')
50
+ .argument('<chapter>', '章节号')
51
+ .option('-o, --output <format>', '输出格式: table | json | markdown', 'table')
52
+ .option('-p, --path <path>', '项目路径')
53
+ .action(async (chapter, options) => {
54
+ try {
55
+ const projectPath = CliUtils.resolveProjectPath(options.path);
56
+ const chapterNum = parseInt(chapter, 10);
57
+ if (isNaN(chapterNum) || chapterNum < 1) {
58
+ CliUtils.error('章节号必须是正整数');
59
+ process.exit(1);
60
+ }
61
+ // 验证输出格式
62
+ const validFormats = ['table', 'json', 'markdown'];
63
+ if (!validFormats.includes(options.output)) {
64
+ CliUtils.error(`无效的输出格式: ${options.output}`);
65
+ CliUtils.info(`支持的格式: ${validFormats.join(', ')}`);
66
+ process.exit(1);
67
+ }
68
+ const service = new EventCommandService();
69
+ const { EventService } = await import('../services/event.service.js');
70
+ const eventService = new EventService();
71
+ const summary = await eventService.generateChapterSummary(projectPath, chapterNum);
72
+ const output = service.formatSummary(summary, options.output);
73
+ console.log(output);
74
+ }
75
+ catch (error) {
76
+ CliUtils.error(error instanceof Error ? error.message : String(error));
77
+ process.exit(1);
78
+ }
79
+ });
80
+ // event list — 列出事件
81
+ cmd
82
+ .command('list')
83
+ .option('-c, --chapter <number>', '只显示指定章节')
84
+ .option('-t, --type <type>', '过滤事件类型')
85
+ .option('-p, --path <path>', '项目路径')
86
+ .action(async (options) => {
87
+ try {
88
+ const projectPath = CliUtils.resolveProjectPath(options.path);
89
+ const service = new EventCommandService();
90
+ let chapter;
91
+ if (options.chapter) {
92
+ chapter = parseInt(options.chapter, 10);
93
+ if (isNaN(chapter) || chapter < 1) {
94
+ CliUtils.error('章节号必须是正整数');
95
+ process.exit(1);
96
+ }
97
+ }
98
+ await service.listEvents(projectPath, chapter, options.type);
99
+ }
100
+ catch (error) {
101
+ CliUtils.error(error instanceof Error ? error.message : String(error));
102
+ process.exit(1);
103
+ }
104
+ });
105
+ return cmd;
106
+ }
107
+ //# sourceMappingURL=event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event.js","sourceRoot":"","sources":["../../src/commands/event.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,eAAO,MAAM,GAAG,SAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgCpC,eAAO,MAAM,GAAG,SAAc,CAAC"}
@@ -4,6 +4,8 @@ import { createInitCommand } from './init.js';
4
4
  import { createQueryCommand } from './query.js';
5
5
  import { createCheckCommand } from './check.js';
6
6
  import { createSnapshotCommand } from './snapshot.js';
7
+ import { createEventCommand } from './event.js';
8
+ import { createTempSettingCommand } from './temp-setting.js';
7
9
  import { CLI_NAME, CLI_VERSION, CLI_DESCRIPTION } from '../core/constants.js';
8
10
  /**
9
11
  * 主 CLI 程序
@@ -19,6 +21,8 @@ function createCli() {
19
21
  program.addCommand(createQueryCommand());
20
22
  program.addCommand(createCheckCommand());
21
23
  program.addCommand(createSnapshotCommand());
24
+ program.addCommand(createEventCommand());
25
+ program.addCommand(createTempSettingCommand());
22
26
  return program;
23
27
  }
24
28
  // 导出供测试使用
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,eAAe,CAAC;SAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,QAAQ;IACR,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAE5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,UAAU;AACV,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAE/B,cAAc;AACd,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE9E;;GAEG;AACH,SAAS,SAAS;IAChB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,QAAQ,CAAC;SACd,WAAW,CAAC,eAAe,CAAC;SAC5B,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,QAAQ;IACR,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC;IAE/C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,UAAU;AACV,MAAM,CAAC,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAE/B,cAAc;AACd,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IAC3C,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Command } from 'commander';
2
+ /**
3
+ * 创建 temp-setting 命令
4
+ */
5
+ export declare function createTempSettingCommand(): Command;
6
+ //# sourceMappingURL=temp-setting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temp-setting.d.ts","sourceRoot":"","sources":["../../src/commands/temp-setting.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAmKlD"}
@@ -0,0 +1,154 @@
1
+ import { Command } from 'commander';
2
+ import { TempSettingService } from '../services/temp-setting.service.js';
3
+ import { CliUtils } from './shared.js';
4
+ import chalk from 'chalk';
5
+ /**
6
+ * 创建 temp-setting 命令
7
+ */
8
+ export function createTempSettingCommand() {
9
+ const cmd = new Command('temp-setting');
10
+ cmd.description('临时设定管理相关操作');
11
+ // temp-setting add — 添加临时设定
12
+ cmd
13
+ .command('add')
14
+ .requiredOption('-t, --type <type>', '设定类型: character | location | item | skill | other')
15
+ .requiredOption('-n, --name <name>', '名称')
16
+ .requiredOption('-c, --chapter <number>', '首次出现章节')
17
+ .option('-d, --description <desc>', '描述内容')
18
+ .option('-p, --path <path>', '项目路径')
19
+ .action(async (options) => {
20
+ try {
21
+ const projectPath = CliUtils.resolveProjectPath(options.path);
22
+ // 验证类型
23
+ const validTypes = ['character', 'location', 'item', 'skill', 'other'];
24
+ if (!validTypes.includes(options.type)) {
25
+ CliUtils.error(`无效的设定类型: ${options.type}`);
26
+ CliUtils.info(`支持的类型: ${validTypes.join(', ')}`);
27
+ process.exit(1);
28
+ }
29
+ // 验证章节号
30
+ const chapter = parseInt(options.chapter, 10);
31
+ if (isNaN(chapter) || chapter < 1) {
32
+ CliUtils.error('章节号必须是正整数');
33
+ process.exit(1);
34
+ }
35
+ const service = new TempSettingService();
36
+ const filePath = await service.addTempSetting(projectPath, {
37
+ type: options.type,
38
+ name: options.name,
39
+ description: options.description,
40
+ chapter
41
+ });
42
+ CliUtils.success(`已添加临时设定: ${options.name}`);
43
+ CliUtils.info(`文件位置: ${filePath}`);
44
+ }
45
+ catch (error) {
46
+ CliUtils.error(error instanceof Error ? error.message : String(error));
47
+ process.exit(1);
48
+ }
49
+ });
50
+ // temp-setting list — 列出待审核项
51
+ cmd
52
+ .command('list')
53
+ .option('-t, --type <type>', '过滤类型')
54
+ .option('--pending', '只显示待审核状态', true)
55
+ .option('-P, --path <path>', '项目路径')
56
+ .action(async (options) => {
57
+ try {
58
+ const projectPath = CliUtils.resolveProjectPath(options.path);
59
+ const service = new TempSettingService();
60
+ const items = await service.listPending(projectPath, options.type);
61
+ if (items.length === 0) {
62
+ console.log('没有待审核的设定');
63
+ return;
64
+ }
65
+ console.log(`\n待审核设定 (${items.length} 项)\n`);
66
+ // 按类型分组
67
+ const characters = items.filter(item => item.type === 'character');
68
+ const others = items.filter(item => item.type !== 'character');
69
+ if (characters.length > 0) {
70
+ console.log(chalk.bold('人物:'));
71
+ for (const item of characters) {
72
+ const status = item.status === 'pending' ? chalk.yellow('待审核') : item.status;
73
+ console.log(` • ${item.name} (第${item.first_appear_chapter}章) - ${status}`);
74
+ }
75
+ console.log('');
76
+ }
77
+ if (others.length > 0) {
78
+ console.log(chalk.bold('其他:'));
79
+ for (const item of others) {
80
+ const status = item.status === 'pending' ? chalk.yellow('待审核') : item.status;
81
+ console.log(` • ${item.name} (第${item.first_appear_chapter}章) - ${item.type} - ${status}`);
82
+ }
83
+ }
84
+ }
85
+ catch (error) {
86
+ CliUtils.error(error instanceof Error ? error.message : String(error));
87
+ process.exit(1);
88
+ }
89
+ });
90
+ // temp-setting review — 审核设定
91
+ cmd
92
+ .command('review')
93
+ .option('-a, --all', '审核所有待审核项(默认)')
94
+ .option('-i, --interactive', '交互式审核')
95
+ .option('-p, --path <path>', '项目路径')
96
+ .action(async (options) => {
97
+ try {
98
+ const projectPath = CliUtils.resolveProjectPath(options.path);
99
+ const service = new TempSettingService();
100
+ if (options.interactive) {
101
+ await service.reviewInteractive(projectPath);
102
+ }
103
+ else {
104
+ // 显示待审核列表
105
+ const items = await service.listPending(projectPath);
106
+ if (items.length === 0) {
107
+ console.log('没有待审核的设定');
108
+ return;
109
+ }
110
+ console.log(`\n待审核设定 (${items.length} 项)`);
111
+ console.log('使用 --interactive 选项进行交互式审核\n');
112
+ for (const item of items) {
113
+ const typeLabel = item.type === 'character' ? '人物' : item.type;
114
+ console.log(` • ${item.name} (${typeLabel}, 第${item.first_appear_chapter}章)`);
115
+ }
116
+ }
117
+ }
118
+ catch (error) {
119
+ CliUtils.error(error instanceof Error ? error.message : String(error));
120
+ process.exit(1);
121
+ }
122
+ });
123
+ // temp-setting migrate — 迁移设定
124
+ cmd
125
+ .command('migrate')
126
+ .argument('<name>', '待迁移的设定名称')
127
+ .option('--to-character', '迁移为正式人物卡片')
128
+ .option('--to-element', '迁移为正式设定元素')
129
+ .option('-l, --location <path>', '自定义目标路径')
130
+ .option('-p, --path <path>', '项目路径')
131
+ .action(async (name, options) => {
132
+ try {
133
+ const projectPath = CliUtils.resolveProjectPath(options.path);
134
+ // 验证选项
135
+ if (!options.toCharacter && !options.toElement && !options.location) {
136
+ CliUtils.error('必须指定迁移目标: --to-character, --to-element, 或 --location');
137
+ process.exit(1);
138
+ }
139
+ const service = new TempSettingService();
140
+ await service.approveAndMigrate(projectPath, name, {
141
+ toCharacter: options.toCharacter,
142
+ toElement: options.toElement,
143
+ customPath: options.location
144
+ });
145
+ CliUtils.success(`已迁移设定: ${name}`);
146
+ }
147
+ catch (error) {
148
+ CliUtils.error(error instanceof Error ? error.message : String(error));
149
+ process.exit(1);
150
+ }
151
+ });
152
+ return cmd;
153
+ }
154
+ //# sourceMappingURL=temp-setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"temp-setting.js","sourceRoot":"","sources":["../../src/commands/temp-setting.ts"],"names":[],"mappings":"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"}
@@ -142,4 +142,35 @@ export interface StateQueryResult {
142
142
  foreshadows?: ForeshadowState;
143
143
  message?: string;
144
144
  }
145
+ export interface AddTempSettingOptions {
146
+ type: 'character' | 'location' | 'item' | 'skill' | 'other';
147
+ name: string;
148
+ description?: string;
149
+ chapter: number;
150
+ }
151
+ export interface PendingItem {
152
+ name: string;
153
+ type: string;
154
+ file: string;
155
+ first_appear_chapter: number;
156
+ added_at: string;
157
+ status: 'pending' | 'approved' | 'rejected';
158
+ }
159
+ export interface ReviewQueue {
160
+ pending_characters: PendingItem[];
161
+ pending_elements: PendingItem[];
162
+ last_review: string | null;
163
+ }
164
+ export interface MigrateOptions {
165
+ toCharacter?: boolean;
166
+ toElement?: boolean;
167
+ customPath?: string;
168
+ }
169
+ export interface TempSettingItem {
170
+ type: string;
171
+ name: string;
172
+ description: string;
173
+ chapter: number;
174
+ addedAt: string;
175
+ }
145
176
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,SAAS,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,YAAY,CAAC;AAG/D,MAAM,WAAW,KAAK;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,KAAK,EAAE,CAAC;CACjB;AAGD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAGD,MAAM,WAAW,QAAQ;IACvB,aAAa,EAAE,YAAY,CAAC;IAC5B,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,eAAe,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,QAAQ,EAAE,UAAU,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,YAAY,CAAC;CAChD;AAGD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,WAAW,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAGD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;CACpC;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAGD,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzD,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IAC9C,oBAAoB,EAAE,KAAK,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,WAAW,EAAE;QACX,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;CACH;AAGD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,UAAU,CAAC,EAAE,cAAc,EAAE,CAAC;IAC9B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,EAAE,MAAM,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;CAC7C;AAED,MAAM,WAAW,WAAW;IAC1B,kBAAkB,EAAE,WAAW,EAAE,CAAC;IAClC,gBAAgB,EAAE,WAAW,EAAE,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,cAAc;IAC7B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,38 @@
1
+ import { ChapterSummary } from '../core/types.js';
2
+ /**
3
+ * 事件命令服务类
4
+ * 扩展 EventService,提供 CLI 命令所需的功能
5
+ */
6
+ export declare class EventCommandService {
7
+ private eventService;
8
+ constructor();
9
+ /**
10
+ * 交互式追加事件
11
+ */
12
+ appendEventsInteractive(projectPath: string, chapter: number): Promise<void>;
13
+ /**
14
+ * 从文件追加事件
15
+ */
16
+ appendEventsFromFile(projectPath: string, chapter: number, filePath: string): Promise<void>;
17
+ /**
18
+ * 从 JSON 字符串追加事件
19
+ */
20
+ appendEventsFromJson(projectPath: string, chapter: number, jsonString: string, replace?: boolean): Promise<void>;
21
+ /**
22
+ * 格式化摘要输出
23
+ */
24
+ formatSummary(summary: ChapterSummary, format?: 'table' | 'json' | 'markdown'): string;
25
+ /**
26
+ * 格式化摘要为表格
27
+ */
28
+ private formatSummaryAsTable;
29
+ /**
30
+ * 格式化摘要为 Markdown
31
+ */
32
+ private formatSummaryAsMarkdown;
33
+ /**
34
+ * 列出事件
35
+ */
36
+ listEvents(projectPath: string, chapter?: number, type?: string): Promise<void>;
37
+ }
38
+ //# sourceMappingURL=event-command.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-command.service.d.ts","sourceRoot":"","sources":["../../src/services/event-command.service.ts"],"names":[],"mappings":"AAEA,OAAO,EAAS,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGzD;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,YAAY,CAAe;;IAMnC;;OAEG;IACG,uBAAuB,CAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA+ChB;;OAEG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACG,oBAAoB,CACxB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,OAAe,GACvB,OAAO,CAAC,IAAI,CAAC;IAuBhB;;OAEG;IACH,aAAa,CACX,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,UAAoB,GAC9C,MAAM;IAcT;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgE5B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmE/B;;OAEG;IACG,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;CAkCjB"}