@coeiro-operator/core 1.2.3 → 1.3.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.
Files changed (37) hide show
  1. package/dist/index.d.ts +4 -3
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +5 -3
  4. package/dist/index.js.map +1 -1
  5. package/dist/operator/{character-defaults.d.ts → character/character-defaults.d.ts} +4 -6
  6. package/dist/operator/character/character-defaults.d.ts.map +1 -0
  7. package/dist/operator/character/character-defaults.js.map +1 -0
  8. package/dist/operator/{character-info-service.d.ts → character/character-info-service.d.ts} +35 -8
  9. package/dist/operator/character/character-info-service.d.ts.map +1 -0
  10. package/dist/operator/{character-info-service.js → character/character-info-service.js} +85 -52
  11. package/dist/operator/character/character-info-service.js.map +1 -0
  12. package/dist/operator/{config-manager.d.ts → config/config-manager.d.ts} +42 -4
  13. package/dist/operator/config/config-manager.d.ts.map +1 -0
  14. package/dist/operator/{config-manager.js → config/config-manager.js} +147 -9
  15. package/dist/operator/config/config-manager.js.map +1 -0
  16. package/dist/operator/index.d.ts +75 -16
  17. package/dist/operator/index.d.ts.map +1 -1
  18. package/dist/operator/index.js +197 -60
  19. package/dist/operator/index.js.map +1 -1
  20. package/dist/operator/speech-rate-measurer.d.ts +32 -0
  21. package/dist/operator/speech-rate-measurer.d.ts.map +1 -0
  22. package/dist/operator/speech-rate-measurer.js +121 -0
  23. package/dist/operator/speech-rate-measurer.js.map +1 -0
  24. package/dist/setup.d.ts +19 -0
  25. package/dist/setup.d.ts.map +1 -0
  26. package/dist/setup.js +31 -0
  27. package/dist/setup.js.map +1 -0
  28. package/dist/terminal/terminal-background.d.ts +1 -1
  29. package/dist/terminal/terminal-background.d.ts.map +1 -1
  30. package/package.json +3 -3
  31. package/dist/operator/character-defaults.d.ts.map +0 -1
  32. package/dist/operator/character-defaults.js.map +0 -1
  33. package/dist/operator/character-info-service.d.ts.map +0 -1
  34. package/dist/operator/character-info-service.js.map +0 -1
  35. package/dist/operator/config-manager.d.ts.map +0 -1
  36. package/dist/operator/config-manager.js.map +0 -1
  37. /package/dist/operator/{character-defaults.js → character/character-defaults.js} +0 -0
@@ -5,9 +5,28 @@
5
5
  import { readFile, writeFile, mkdir, access } from 'fs/promises';
6
6
  import { constants } from 'fs';
7
7
  import { join } from 'path';
8
- import { BUILTIN_CHARACTER_CONFIGS, } from './character-defaults.js';
9
- import { getSpeakerProvider } from '../environment/speaker-provider.js';
8
+ import { BUILTIN_CHARACTER_CONFIGS, } from '../character/character-defaults.js';
9
+ import { getSpeakerProvider } from '../../environment/speaker-provider.js';
10
10
  import { deepMerge } from '@coeiro-operator/common';
11
+ /**
12
+ * API stylesとconfig stylesをマージ
13
+ * - すべてのAPI stylesが利用可能
14
+ * - morasPerSecondなどの付加情報はconfigから追加
15
+ */
16
+ export function mergeStyles(apiStyles, configStyles = {}, characterPersonality, characterSpeakingStyle) {
17
+ const merged = {};
18
+ for (const apiStyle of apiStyles) {
19
+ const config = configStyles[apiStyle.styleId];
20
+ merged[apiStyle.styleId] = {
21
+ styleName: apiStyle.styleName,
22
+ morasPerSecond: config?.morasPerSecond,
23
+ personality: config?.personality || characterPersonality,
24
+ speakingStyle: config?.speakingStyle || characterSpeakingStyle,
25
+ disabled: config?.disabled,
26
+ };
27
+ }
28
+ return merged;
29
+ }
11
30
  // デフォルト設定の定義(必須フィールドのみ)
12
31
  const DEFAULT_CONFIG = {
13
32
  connection: {
@@ -42,6 +61,24 @@ export class ConfigManager {
42
61
  this.configDir = configDir;
43
62
  this.configFile = join(configDir, 'config.json');
44
63
  }
64
+ /**
65
+ * 設定ディレクトリのパスを取得
66
+ */
67
+ getConfigDir() {
68
+ return this.configDir;
69
+ }
70
+ /**
71
+ * 状態保存用ディレクトリのパスを取得
72
+ */
73
+ getStateDir() {
74
+ return join(this.configDir, 'state');
75
+ }
76
+ /**
77
+ * COEIROINK設定ファイルのパスを取得
78
+ */
79
+ getCoeiroinkConfigPath() {
80
+ return join(this.configDir, 'coeiroink-config.json');
81
+ }
45
82
  /**
46
83
  * JSONファイルを安全に読み込み
47
84
  */
@@ -109,12 +146,15 @@ export class ConfigManager {
109
146
  const userCharacterConfig = config.characters?.[characterId] || {};
110
147
  if (userCharacterConfig.disabled)
111
148
  continue;
112
- // 利用可能なスタイル一覧を追加
113
- const availableStyles = speaker.styles?.map(s => s.styleName) || [];
149
+ // stylesをマージ(API + config)
150
+ const mergedStyles = mergeStyles(speaker.styles, {
151
+ ...builtinConfig.styles,
152
+ ...userCharacterConfig.styles,
153
+ }, userCharacterConfig.personality || builtinConfig.personality, userCharacterConfig.speakingStyle || builtinConfig.speakingStyle);
114
154
  dynamicCharacters[characterId] = {
115
155
  ...builtinConfig,
116
- availableStyles,
117
156
  ...userCharacterConfig,
157
+ styles: mergedStyles,
118
158
  };
119
159
  }
120
160
  // ユーザー定義キャラクターの処理
@@ -137,8 +177,8 @@ export class ConfigManager {
137
177
  console.warn(`キャラクター '${characterId}' のspeaker (${userConfig.speakerId}) がCOEIROINKで見つかりません。`);
138
178
  continue;
139
179
  }
140
- // 利用可能なスタイル一覧を追加
141
- const availableStyles = speaker.styles?.map(s => s.styleName) || [];
180
+ // stylesをマージ(API + config)
181
+ const mergedStyles = mergeStyles(speaker.styles, userConfig.styles || {}, userConfig.personality || '', userConfig.speakingStyle || '');
142
182
  // CharacterConfigとして構築(必須フィールドのデフォルト値を提供)
143
183
  dynamicCharacters[characterId] = {
144
184
  speakerId: userConfig.speakerId,
@@ -148,8 +188,7 @@ export class ConfigManager {
148
188
  greeting: userConfig.greeting || '',
149
189
  farewell: userConfig.farewell || '',
150
190
  defaultStyleId: userConfig.defaultStyleId || (speaker.styles?.[0]?.styleId ?? 0),
151
- styles: userConfig.styles || {},
152
- availableStyles,
191
+ styles: mergedStyles,
153
192
  ...userConfig,
154
193
  };
155
194
  }
@@ -300,6 +339,105 @@ export class ConfigManager {
300
339
  characters: this.mergedConfig?.characters || {},
301
340
  };
302
341
  }
342
+ /**
343
+ * ユーザー定義キャラクターを登録
344
+ * @param characterId キャラクターID
345
+ * @param config キャラクター設定(部分的な指定も可能)
346
+ * @throws {Error} バリデーションエラー時
347
+ */
348
+ async registerCharacter(characterId, config) {
349
+ // 1. 入力バリデーション
350
+ if (!config.speakerId) {
351
+ throw new Error('speakerId is required');
352
+ }
353
+ if (!characterId || characterId.trim() === '') {
354
+ throw new Error('characterId is required');
355
+ }
356
+ // 2. COEIROINKサーバーとの照合
357
+ await this.updateVoiceProviderConnection();
358
+ const speakers = await this.speakerProvider.getSpeakers();
359
+ const availableSpeakers = Array.isArray(speakers) ? speakers : [];
360
+ const speaker = availableSpeakers.find(s => s.speakerUuid === config.speakerId);
361
+ if (!speaker) {
362
+ throw new Error(`Speaker '${config.speakerId}' not found in COEIROINK server`);
363
+ }
364
+ // 3. defaultStyleIdの検証
365
+ if (config.defaultStyleId !== undefined) {
366
+ const styleExists = speaker.styles.some(s => s.styleId === config.defaultStyleId);
367
+ if (!styleExists) {
368
+ throw new Error(`defaultStyleId ${config.defaultStyleId} not found in speaker '${config.speakerId}'`);
369
+ }
370
+ }
371
+ // 4. styles設定の検証(指定されている場合)
372
+ if (config.styles) {
373
+ for (const styleId of Object.keys(config.styles)) {
374
+ const numericStyleId = Number(styleId);
375
+ const styleExists = speaker.styles.some(s => s.styleId === numericStyleId);
376
+ if (!styleExists) {
377
+ throw new Error(`Style ID ${styleId} not found in speaker '${config.speakerId}'`);
378
+ }
379
+ }
380
+ }
381
+ // 5. 現在の設定を読み込み
382
+ const currentConfig = await this.loadConfig();
383
+ // 6. characters セクションに追加・上書き
384
+ const characters = currentConfig.characters || {};
385
+ characters[characterId] = {
386
+ ...config,
387
+ };
388
+ // 7. config.jsonに書き込み
389
+ const updatedConfig = {
390
+ ...currentConfig,
391
+ characters,
392
+ };
393
+ await this.writeJsonFile(this.configFile, updatedConfig);
394
+ // 8. 動的設定を再構築
395
+ await this.buildDynamicConfig();
396
+ }
397
+ /**
398
+ * キャラクター設定を更新(スタイルマージ対応)
399
+ * - 既存キャラクターの場合: stylesはマージ、他のフィールドは上書き
400
+ * - 新規キャラクターの場合: 新規追加
401
+ *
402
+ * @param characterId キャラクターID
403
+ * @param updates 更新内容(部分的な指定も可能)
404
+ */
405
+ async updateCharacterConfig(characterId, updates) {
406
+ // 1. 入力バリデーション
407
+ if (!characterId || characterId.trim() === '') {
408
+ throw new Error('characterId is required');
409
+ }
410
+ // 2. 既存のconfig.jsonを読み込み
411
+ const currentConfig = await this.loadConfig();
412
+ // 3. 既存キャラクターの取得
413
+ const existingCharacter = currentConfig.characters?.[characterId];
414
+ // 4. マージロジック
415
+ const updatedCharacter = existingCharacter
416
+ ? {
417
+ // 既存: stylesはマージ、他は上書き
418
+ ...existingCharacter,
419
+ ...updates,
420
+ styles: {
421
+ ...existingCharacter.styles,
422
+ ...updates.styles,
423
+ },
424
+ }
425
+ : {
426
+ // 新規: そのまま追加
427
+ ...updates,
428
+ };
429
+ // 5. config.jsonに書き込み
430
+ const updatedConfig = {
431
+ ...currentConfig,
432
+ characters: {
433
+ ...currentConfig.characters,
434
+ [characterId]: updatedCharacter,
435
+ },
436
+ };
437
+ await this.writeJsonFile(this.configFile, updatedConfig);
438
+ // 6. 動的設定を再構築
439
+ await this.buildDynamicConfig();
440
+ }
303
441
  }
304
442
  export default ConfigManager;
305
443
  //# sourceMappingURL=config-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-manager.js","sourceRoot":"","sources":["../../../src/operator/config/config-manager.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,8 @@
3
3
  * src/operator/index.ts: オペレータ管理システム(TypeScript実装)
4
4
  * キャラクター:スタイル単位での管理とMCP情報提供に対応
5
5
  */
6
- import { Character, Style } from './character-info-service.js';
6
+ import ConfigManager from './config/config-manager.js';
7
+ import CharacterInfoService from './character/character-info-service.js';
7
8
  interface CharacterSession {
8
9
  characterId: string;
9
10
  styleId?: number;
@@ -43,28 +44,18 @@ interface StatusResult {
43
44
  message: string;
44
45
  }
45
46
  export declare class OperatorManager {
46
- private sessionId;
47
- private configDir;
48
- private coeiroinkConfigFile;
49
47
  private configManager;
50
- private dataStore;
51
48
  private characterInfoService;
52
- constructor();
49
+ private sessionId;
50
+ private dataStore;
51
+ private speechRateMeasurer;
52
+ constructor(configManager: ConfigManager, characterInfoService: CharacterInfoService);
53
53
  initialize(): Promise<void>;
54
54
  /**
55
55
  * 設定の事前構築(外部からの呼び出し用)
56
+ * @deprecated Phase 2以降でsetup関数に移行予定
56
57
  */
57
58
  buildDynamicConfig(): Promise<void>;
58
- /**
59
- * キャラクター情報を取得
60
- */
61
- getCharacterInfo(characterId: string): Promise<Character | null>;
62
- /**
63
- * スタイルを選択
64
- * @param character キャラクター情報
65
- * @param specifiedStyle 指定されたスタイル名
66
- */
67
- selectStyle(character: Character, specifiedStyle?: string | null): Style;
68
59
  /**
69
60
  * 利用可能なオペレータを取得(仕事中のオペレータ情報も含む)
70
61
  */
@@ -123,6 +114,74 @@ export declare class OperatorManager {
123
114
  * Issue #58: sayコマンド実行時の動的タイムアウト延長
124
115
  */
125
116
  refreshOperatorReservation(): Promise<boolean>;
117
+ /**
118
+ * 未登録のSpeaker/Styleを検出
119
+ *
120
+ * @returns 登録状況の分類結果
121
+ */
122
+ detectUnregisteredSpeakers(): Promise<{
123
+ registered: Array<{
124
+ speakerId: string;
125
+ speakerName: string;
126
+ characterId: string;
127
+ registeredStyles: number;
128
+ totalStyles: number;
129
+ allStylesHaveSpeechRate: boolean;
130
+ }>;
131
+ partiallyRegistered: Array<{
132
+ speakerId: string;
133
+ speakerName: string;
134
+ characterId: string;
135
+ missingStyles: Array<{
136
+ styleId: number;
137
+ styleName: string;
138
+ }>;
139
+ }>;
140
+ unregistered: Array<{
141
+ speakerId: string;
142
+ speakerName: string;
143
+ totalStyles: number;
144
+ styles: Array<{
145
+ styleId: number;
146
+ styleName: string;
147
+ }>;
148
+ }>;
149
+ }>;
150
+ /**
151
+ * Speaker/Styleの話速を測定して登録
152
+ *
153
+ * @param speakerName Speaker名
154
+ * @param styleName スタイル名(省略時は全スタイル)
155
+ * @param characterId キャラクターID(省略時は自動生成)
156
+ * @returns 測定結果
157
+ */
158
+ measureAndRegisterSpeaker(speakerName: string, styleName?: string, characterId?: string): Promise<{
159
+ speakerId: string;
160
+ speakerName: string;
161
+ measurements: Array<{
162
+ styleId: number;
163
+ styleName: string;
164
+ morasPerSecond: number;
165
+ }>;
166
+ }>;
167
+ /**
168
+ * キャラクターの話速を測定(登録済みキャラクター用)
169
+ *
170
+ * @param characterId キャラクターID
171
+ * @param styleName スタイル名(省略時は全スタイル)
172
+ * @param dryRun trueの場合は測定のみで設定更新しない
173
+ * @returns 測定結果
174
+ */
175
+ measureCharacterSpeechRate(characterId: string, styleName?: string, dryRun?: boolean): Promise<{
176
+ characterId: string;
177
+ speakerId: string;
178
+ speakerName: string;
179
+ measurements: Array<{
180
+ styleId: number;
181
+ styleName: string;
182
+ morasPerSecond: number;
183
+ }>;
184
+ }>;
126
185
  }
127
186
  export default OperatorManager;
128
187
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operator/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operator/index.ts"],"names":[],"mappings":"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"}