@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.
- package/dist/index.d.ts +4 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/operator/{character-defaults.d.ts → character/character-defaults.d.ts} +4 -6
- package/dist/operator/character/character-defaults.d.ts.map +1 -0
- package/dist/operator/character/character-defaults.js.map +1 -0
- package/dist/operator/{character-info-service.d.ts → character/character-info-service.d.ts} +35 -8
- package/dist/operator/character/character-info-service.d.ts.map +1 -0
- package/dist/operator/{character-info-service.js → character/character-info-service.js} +85 -52
- package/dist/operator/character/character-info-service.js.map +1 -0
- package/dist/operator/{config-manager.d.ts → config/config-manager.d.ts} +42 -4
- package/dist/operator/config/config-manager.d.ts.map +1 -0
- package/dist/operator/{config-manager.js → config/config-manager.js} +147 -9
- package/dist/operator/config/config-manager.js.map +1 -0
- package/dist/operator/index.d.ts +75 -16
- package/dist/operator/index.d.ts.map +1 -1
- package/dist/operator/index.js +197 -60
- package/dist/operator/index.js.map +1 -1
- package/dist/operator/speech-rate-measurer.d.ts +32 -0
- package/dist/operator/speech-rate-measurer.d.ts.map +1 -0
- package/dist/operator/speech-rate-measurer.js +121 -0
- package/dist/operator/speech-rate-measurer.js.map +1 -0
- package/dist/setup.d.ts +19 -0
- package/dist/setup.d.ts.map +1 -0
- package/dist/setup.js +31 -0
- package/dist/setup.js.map +1 -0
- package/dist/terminal/terminal-background.d.ts +1 -1
- package/dist/terminal/terminal-background.d.ts.map +1 -1
- package/package.json +3 -3
- package/dist/operator/character-defaults.d.ts.map +0 -1
- package/dist/operator/character-defaults.js.map +0 -1
- package/dist/operator/character-info-service.d.ts.map +0 -1
- package/dist/operator/character-info-service.js.map +0 -1
- package/dist/operator/config-manager.d.ts.map +0 -1
- package/dist/operator/config-manager.js.map +0 -1
- /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 '
|
|
9
|
-
import { getSpeakerProvider } from '
|
|
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
|
|
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
|
|
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:
|
|
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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"}
|
package/dist/operator/index.d.ts
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* src/operator/index.ts: オペレータ管理システム(TypeScript実装)
|
|
4
4
|
* キャラクター:スタイル単位での管理とMCP情報提供に対応
|
|
5
5
|
*/
|
|
6
|
-
import
|
|
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
|
-
|
|
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":";AAEA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operator/index.ts"],"names":[],"mappings":"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"}
|