@nahisaho/katashiro-llm 2.0.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 (62) hide show
  1. package/LICENSE +21 -0
  2. package/dist/LLMClient.d.ts +64 -0
  3. package/dist/LLMClient.d.ts.map +1 -0
  4. package/dist/LLMClient.js +139 -0
  5. package/dist/LLMClient.js.map +1 -0
  6. package/dist/PromptManager.d.ts +66 -0
  7. package/dist/PromptManager.d.ts.map +1 -0
  8. package/dist/PromptManager.js +121 -0
  9. package/dist/PromptManager.js.map +1 -0
  10. package/dist/TokenCounter.d.ts +43 -0
  11. package/dist/TokenCounter.d.ts.map +1 -0
  12. package/dist/TokenCounter.js +100 -0
  13. package/dist/TokenCounter.js.map +1 -0
  14. package/dist/index.d.ts +12 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +17 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/providers/AzureOpenAILLMProvider.d.ts +82 -0
  19. package/dist/providers/AzureOpenAILLMProvider.d.ts.map +1 -0
  20. package/dist/providers/AzureOpenAILLMProvider.js +339 -0
  21. package/dist/providers/AzureOpenAILLMProvider.js.map +1 -0
  22. package/dist/providers/BaseLLMProvider.d.ts +51 -0
  23. package/dist/providers/BaseLLMProvider.d.ts.map +1 -0
  24. package/dist/providers/BaseLLMProvider.js +72 -0
  25. package/dist/providers/BaseLLMProvider.js.map +1 -0
  26. package/dist/providers/LLMFactory.d.ts +75 -0
  27. package/dist/providers/LLMFactory.d.ts.map +1 -0
  28. package/dist/providers/LLMFactory.js +149 -0
  29. package/dist/providers/LLMFactory.js.map +1 -0
  30. package/dist/providers/MockLLMProvider.d.ts +57 -0
  31. package/dist/providers/MockLLMProvider.d.ts.map +1 -0
  32. package/dist/providers/MockLLMProvider.js +120 -0
  33. package/dist/providers/MockLLMProvider.js.map +1 -0
  34. package/dist/providers/OllamaLLMProvider.d.ts +73 -0
  35. package/dist/providers/OllamaLLMProvider.d.ts.map +1 -0
  36. package/dist/providers/OllamaLLMProvider.js +242 -0
  37. package/dist/providers/OllamaLLMProvider.js.map +1 -0
  38. package/dist/providers/OpenAILLMProvider.d.ts +87 -0
  39. package/dist/providers/OpenAILLMProvider.d.ts.map +1 -0
  40. package/dist/providers/OpenAILLMProvider.js +349 -0
  41. package/dist/providers/OpenAILLMProvider.js.map +1 -0
  42. package/dist/providers/index.d.ts +17 -0
  43. package/dist/providers/index.d.ts.map +1 -0
  44. package/dist/providers/index.js +19 -0
  45. package/dist/providers/index.js.map +1 -0
  46. package/dist/types.d.ts +251 -0
  47. package/dist/types.d.ts.map +1 -0
  48. package/dist/types.js +8 -0
  49. package/dist/types.js.map +1 -0
  50. package/package.json +51 -0
  51. package/src/LLMClient.ts +171 -0
  52. package/src/PromptManager.ts +156 -0
  53. package/src/TokenCounter.ts +114 -0
  54. package/src/index.ts +35 -0
  55. package/src/providers/AzureOpenAILLMProvider.ts +494 -0
  56. package/src/providers/BaseLLMProvider.ts +110 -0
  57. package/src/providers/LLMFactory.ts +216 -0
  58. package/src/providers/MockLLMProvider.ts +173 -0
  59. package/src/providers/OllamaLLMProvider.ts +322 -0
  60. package/src/providers/OpenAILLMProvider.ts +500 -0
  61. package/src/providers/index.ts +35 -0
  62. package/src/types.ts +268 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 nahisaho
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,64 @@
1
+ /**
2
+ * LLM Client - マルチプロバイダーファサード
3
+ *
4
+ * @requirement REQ-LLM-001, REQ-LLM-004
5
+ * @design DES-KATASHIRO-003-LLM §3.4
6
+ */
7
+ import type { ZodType, z } from 'zod';
8
+ import type { LLMProvider, LLMClientConfig, GenerateRequest, GenerateResponse, StreamChunk, FallbackResult } from './types.js';
9
+ /**
10
+ * LLMクライアント
11
+ *
12
+ * フォールバック機能とリトライ機能を提供するファサードクラス
13
+ */
14
+ export declare class LLMClient {
15
+ private primaryProvider;
16
+ private fallbackProviders;
17
+ private retryCount;
18
+ private retryDelay;
19
+ constructor(config: LLMClientConfig);
20
+ /**
21
+ * テキスト生成(フォールバック対応)
22
+ */
23
+ generate(request: GenerateRequest): Promise<GenerateResponse & {
24
+ _fallback?: FallbackResult;
25
+ }>;
26
+ /**
27
+ * ストリーミング生成
28
+ */
29
+ generateStream(request: GenerateRequest): AsyncGenerator<StreamChunk>;
30
+ /**
31
+ * 構造化出力生成
32
+ */
33
+ generateStructured<T extends ZodType>(request: GenerateRequest, schema: T): Promise<z.infer<T>>;
34
+ /**
35
+ * トークン数カウント
36
+ */
37
+ countTokens(text: string, model?: string): Promise<number>;
38
+ /**
39
+ * プライマリプロバイダー取得
40
+ */
41
+ getProvider(): LLMProvider;
42
+ /**
43
+ * プロバイダー一覧取得
44
+ */
45
+ getProviders(): LLMProvider[];
46
+ /**
47
+ * リトライラッパー
48
+ */
49
+ private withRetry;
50
+ private sleep;
51
+ }
52
+ /**
53
+ * デフォルトLLMクライアント取得
54
+ */
55
+ export declare function getLLMClient(): LLMClient;
56
+ /**
57
+ * LLMクライアント初期化
58
+ */
59
+ export declare function initLLMClient(config: LLMClientConfig): LLMClient;
60
+ /**
61
+ * LLMクライアントリセット(テスト用)
62
+ */
63
+ export declare function resetLLMClient(): void;
64
+ //# sourceMappingURL=LLMClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMClient.d.ts","sourceRoot":"","sources":["../src/LLMClient.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACtC,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;;;GAIG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;gBAEf,MAAM,EAAE,eAAe;IAOnC;;OAEG;IACG,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,GAAG;QAAE,SAAS,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IA+BpG;;OAEG;IACI,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,cAAc,CAAC,WAAW,CAAC;IAgB5E;;OAEG;IACG,kBAAkB,CAAC,CAAC,SAAS,OAAO,EACxC,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,CAAC,GACR,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAItB;;OAEG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIhE;;OAEG;IACH,WAAW,IAAI,WAAW;IAI1B;;OAEG;IACH,YAAY,IAAI,WAAW,EAAE;IAI7B;;OAEG;YACW,SAAS;IAiBvB,OAAO,CAAC,KAAK;CAGd;AAKD;;GAEG;AACH,wBAAgB,YAAY,IAAI,SAAS,CAKxC;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,SAAS,CAGhE;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC"}
@@ -0,0 +1,139 @@
1
+ /**
2
+ * LLM Client - マルチプロバイダーファサード
3
+ *
4
+ * @requirement REQ-LLM-001, REQ-LLM-004
5
+ * @design DES-KATASHIRO-003-LLM §3.4
6
+ */
7
+ /**
8
+ * LLMクライアント
9
+ *
10
+ * フォールバック機能とリトライ機能を提供するファサードクラス
11
+ */
12
+ export class LLMClient {
13
+ primaryProvider;
14
+ fallbackProviders;
15
+ retryCount;
16
+ retryDelay;
17
+ constructor(config) {
18
+ this.primaryProvider = config.provider;
19
+ this.fallbackProviders = config.fallbackProviders ?? [];
20
+ this.retryCount = config.enableRetry !== false ? (config.retryCount ?? 3) : 0;
21
+ this.retryDelay = config.retryDelay ?? 1000;
22
+ }
23
+ /**
24
+ * テキスト生成(フォールバック対応)
25
+ */
26
+ async generate(request) {
27
+ const providers = [this.primaryProvider, ...this.fallbackProviders];
28
+ const errors = [];
29
+ for (const provider of providers) {
30
+ try {
31
+ const response = await this.withRetry(() => provider.generate(request));
32
+ return {
33
+ ...response,
34
+ _fallback: errors.length > 0 ? {
35
+ provider: provider.name,
36
+ attemptedProviders: errors.map((e) => e.provider),
37
+ errors,
38
+ } : undefined,
39
+ };
40
+ }
41
+ catch (error) {
42
+ errors.push({
43
+ provider: provider.name,
44
+ error: error,
45
+ timestamp: new Date(),
46
+ });
47
+ }
48
+ }
49
+ // すべてのプロバイダーが失敗
50
+ throw new AggregateError(errors.map((e) => e.error), `All LLM providers failed: ${errors.map((e) => e.provider).join(', ')}`);
51
+ }
52
+ /**
53
+ * ストリーミング生成
54
+ */
55
+ async *generateStream(request) {
56
+ const providers = [this.primaryProvider, ...this.fallbackProviders];
57
+ const errors = [];
58
+ for (const provider of providers) {
59
+ try {
60
+ yield* provider.generateStream(request);
61
+ return;
62
+ }
63
+ catch (error) {
64
+ errors.push(error);
65
+ }
66
+ }
67
+ throw new AggregateError(errors, 'All LLM providers failed for streaming');
68
+ }
69
+ /**
70
+ * 構造化出力生成
71
+ */
72
+ async generateStructured(request, schema) {
73
+ return this.primaryProvider.generateStructured(request, schema);
74
+ }
75
+ /**
76
+ * トークン数カウント
77
+ */
78
+ async countTokens(text, model) {
79
+ return this.primaryProvider.countTokens(text, model);
80
+ }
81
+ /**
82
+ * プライマリプロバイダー取得
83
+ */
84
+ getProvider() {
85
+ return this.primaryProvider;
86
+ }
87
+ /**
88
+ * プロバイダー一覧取得
89
+ */
90
+ getProviders() {
91
+ return [this.primaryProvider, ...this.fallbackProviders];
92
+ }
93
+ /**
94
+ * リトライラッパー
95
+ */
96
+ async withRetry(fn) {
97
+ let lastError;
98
+ for (let attempt = 0; attempt <= this.retryCount; attempt++) {
99
+ try {
100
+ return await fn();
101
+ }
102
+ catch (error) {
103
+ lastError = error;
104
+ if (attempt < this.retryCount) {
105
+ await this.sleep(this.retryDelay * Math.pow(2, attempt));
106
+ }
107
+ }
108
+ }
109
+ throw lastError;
110
+ }
111
+ sleep(ms) {
112
+ return new Promise((resolve) => setTimeout(resolve, ms));
113
+ }
114
+ }
115
+ // シングルトン管理
116
+ let defaultClient = null;
117
+ /**
118
+ * デフォルトLLMクライアント取得
119
+ */
120
+ export function getLLMClient() {
121
+ if (!defaultClient) {
122
+ throw new Error('LLM client not initialized. Call initLLMClient() first.');
123
+ }
124
+ return defaultClient;
125
+ }
126
+ /**
127
+ * LLMクライアント初期化
128
+ */
129
+ export function initLLMClient(config) {
130
+ defaultClient = new LLMClient(config);
131
+ return defaultClient;
132
+ }
133
+ /**
134
+ * LLMクライアントリセット(テスト用)
135
+ */
136
+ export function resetLLMClient() {
137
+ defaultClient = null;
138
+ }
139
+ //# sourceMappingURL=LLMClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LLMClient.js","sourceRoot":"","sources":["../src/LLMClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Prompt Manager - プロンプトテンプレート管理
3
+ *
4
+ * @requirement REQ-LLM-002
5
+ * @design DES-KATASHIRO-003-LLM §3.2
6
+ */
7
+ import type { PromptTemplate, Message } from './types.js';
8
+ /**
9
+ * テンプレート変数
10
+ */
11
+ export type TemplateVariables = Record<string, unknown>;
12
+ /**
13
+ * PromptManager - プロンプトテンプレート管理
14
+ */
15
+ export declare class PromptManager {
16
+ private templates;
17
+ /**
18
+ * テンプレート登録
19
+ */
20
+ register(template: PromptTemplate): void;
21
+ /**
22
+ * テンプレート取得
23
+ */
24
+ get(id: string): PromptTemplate | undefined;
25
+ /**
26
+ * テンプレート一覧取得
27
+ */
28
+ list(): PromptTemplate[];
29
+ /**
30
+ * テンプレート削除
31
+ */
32
+ unregister(id: string): boolean;
33
+ /**
34
+ * テンプレートをレンダリング
35
+ */
36
+ render(id: string, variables?: TemplateVariables): string;
37
+ /**
38
+ * テンプレートをメッセージとしてレンダリング
39
+ */
40
+ renderAsMessage(id: string, variables?: TemplateVariables, role?: Message['role']): Message;
41
+ /**
42
+ * 複数テンプレートをチェーン
43
+ */
44
+ chain(templateIds: string[], variables?: TemplateVariables, separator?: string): string;
45
+ /**
46
+ * テンプレート文字列をレンダリング(直接)
47
+ */
48
+ renderString(template: string, variables?: TemplateVariables): string;
49
+ /**
50
+ * テンプレートをレンダリング(内部)
51
+ */
52
+ private renderTemplate;
53
+ /**
54
+ * クリア
55
+ */
56
+ clear(): void;
57
+ }
58
+ /**
59
+ * PromptManager シングルトン取得
60
+ */
61
+ export declare function getPromptManager(): PromptManager;
62
+ /**
63
+ * PromptManager リセット(テスト用)
64
+ */
65
+ export declare function resetPromptManager(): void;
66
+ //# sourceMappingURL=PromptManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptManager.d.ts","sourceRoot":"","sources":["../src/PromptManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1D;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAExD;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,SAAS,CAA0C;IAE3D;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIxC;;OAEG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAI3C;;OAEG;IACH,IAAI,IAAI,cAAc,EAAE;IAIxB;;OAEG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAI/B;;OAEG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAE,iBAAsB,GAAG,MAAM;IAS7D;;OAEG;IACH,eAAe,CACb,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,iBAAsB,EACjC,IAAI,GAAE,OAAO,CAAC,MAAM,CAAU,GAC7B,OAAO;IAKV;;OAEG;IACH,KAAK,CACH,WAAW,EAAE,MAAM,EAAE,EACrB,SAAS,GAAE,iBAAsB,EACjC,SAAS,SAAS,GACjB,MAAM;IAMT;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,GAAE,iBAAsB,GAAG,MAAM;IAUzE;;OAEG;IACH,OAAO,CAAC,cAAc;IA4BtB;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAKD;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,CAKhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * Prompt Manager - プロンプトテンプレート管理
3
+ *
4
+ * @requirement REQ-LLM-002
5
+ * @design DES-KATASHIRO-003-LLM §3.2
6
+ */
7
+ /**
8
+ * PromptManager - プロンプトテンプレート管理
9
+ */
10
+ export class PromptManager {
11
+ templates = new Map();
12
+ /**
13
+ * テンプレート登録
14
+ */
15
+ register(template) {
16
+ this.templates.set(template.id, template);
17
+ }
18
+ /**
19
+ * テンプレート取得
20
+ */
21
+ get(id) {
22
+ return this.templates.get(id);
23
+ }
24
+ /**
25
+ * テンプレート一覧取得
26
+ */
27
+ list() {
28
+ return Array.from(this.templates.values());
29
+ }
30
+ /**
31
+ * テンプレート削除
32
+ */
33
+ unregister(id) {
34
+ return this.templates.delete(id);
35
+ }
36
+ /**
37
+ * テンプレートをレンダリング
38
+ */
39
+ render(id, variables = {}) {
40
+ const template = this.templates.get(id);
41
+ if (!template) {
42
+ throw new Error(`Template not found: ${id}`);
43
+ }
44
+ return this.renderTemplate(template, variables);
45
+ }
46
+ /**
47
+ * テンプレートをメッセージとしてレンダリング
48
+ */
49
+ renderAsMessage(id, variables = {}, role = 'user') {
50
+ const content = this.render(id, variables);
51
+ return { role, content };
52
+ }
53
+ /**
54
+ * 複数テンプレートをチェーン
55
+ */
56
+ chain(templateIds, variables = {}, separator = '\n\n') {
57
+ return templateIds
58
+ .map((id) => this.render(id, variables))
59
+ .join(separator);
60
+ }
61
+ /**
62
+ * テンプレート文字列をレンダリング(直接)
63
+ */
64
+ renderString(template, variables = {}) {
65
+ return template.replace(/\{\{(\w+)\}\}/g, (_, key) => {
66
+ const value = variables[key];
67
+ if (value === undefined) {
68
+ return `{{${key}}}`;
69
+ }
70
+ return String(value);
71
+ });
72
+ }
73
+ /**
74
+ * テンプレートをレンダリング(内部)
75
+ */
76
+ renderTemplate(template, variables) {
77
+ // 必須変数のチェック
78
+ for (const varDef of template.variables) {
79
+ if (varDef.required && variables[varDef.name] === undefined) {
80
+ if (varDef.default !== undefined) {
81
+ variables[varDef.name] = varDef.default;
82
+ }
83
+ else {
84
+ throw new Error(`Missing required variable: ${varDef.name} for template: ${template.id}`);
85
+ }
86
+ }
87
+ }
88
+ // デフォルト値の適用
89
+ for (const varDef of template.variables) {
90
+ if (variables[varDef.name] === undefined && varDef.default !== undefined) {
91
+ variables[varDef.name] = varDef.default;
92
+ }
93
+ }
94
+ // テンプレートのレンダリング
95
+ return this.renderString(template.template, variables);
96
+ }
97
+ /**
98
+ * クリア
99
+ */
100
+ clear() {
101
+ this.templates.clear();
102
+ }
103
+ }
104
+ // シングルトン
105
+ let promptManagerInstance = null;
106
+ /**
107
+ * PromptManager シングルトン取得
108
+ */
109
+ export function getPromptManager() {
110
+ if (!promptManagerInstance) {
111
+ promptManagerInstance = new PromptManager();
112
+ }
113
+ return promptManagerInstance;
114
+ }
115
+ /**
116
+ * PromptManager リセット(テスト用)
117
+ */
118
+ export function resetPromptManager() {
119
+ promptManagerInstance = null;
120
+ }
121
+ //# sourceMappingURL=PromptManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PromptManager.js","sourceRoot":"","sources":["../src/PromptManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Token Counter - トークン数カウント
3
+ *
4
+ * @requirement REQ-LLM-001
5
+ * @design DES-KATASHIRO-003-LLM §3.1
6
+ */
7
+ /**
8
+ * TokenCounter - トークン数カウントユーティリティ
9
+ */
10
+ export declare class TokenCounter {
11
+ /**
12
+ * テキストのトークン数を推定
13
+ */
14
+ estimate(text: string, model?: string): number;
15
+ /**
16
+ * メッセージ配列のトークン数を推定
17
+ */
18
+ estimateMessages(messages: Array<{
19
+ role: string;
20
+ content: string;
21
+ }>, model?: string): number;
22
+ /**
23
+ * トークン数が制限内か確認
24
+ */
25
+ isWithinLimit(text: string, limit: number, model?: string): boolean;
26
+ /**
27
+ * 制限内に収まるようにテキストを切り詰め
28
+ */
29
+ truncateToLimit(text: string, limit: number, model?: string): string;
30
+ /**
31
+ * モデル別トークン係数取得
32
+ */
33
+ private getTokenFactor;
34
+ }
35
+ /**
36
+ * TokenCounter シングルトン取得
37
+ */
38
+ export declare function getTokenCounter(): TokenCounter;
39
+ /**
40
+ * TokenCounter リセット(テスト用)
41
+ */
42
+ export declare function resetTokenCounter(): void;
43
+ //# sourceMappingURL=TokenCounter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenCounter.d.ts","sourceRoot":"","sources":["../src/TokenCounter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAK9C;;OAEG;IACH,gBAAgB,CACd,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,EAClD,KAAK,CAAC,EAAE,MAAM,GACb,MAAM;IAYT;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAInE;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAWpE;;OAEG;IACH,OAAO,CAAC,cAAc;CAcvB;AAKD;;GAEG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAK9C;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Token Counter - トークン数カウント
3
+ *
4
+ * @requirement REQ-LLM-001
5
+ * @design DES-KATASHIRO-003-LLM §3.1
6
+ */
7
+ /**
8
+ * モデル別トークン推定係数
9
+ */
10
+ const MODEL_TOKEN_FACTORS = {
11
+ 'gpt-4o': 4.0,
12
+ 'gpt-4o-mini': 4.0,
13
+ 'gpt-4-turbo': 4.0,
14
+ 'gpt-4': 4.0,
15
+ 'gpt-3.5-turbo': 4.0,
16
+ 'claude-3-5-sonnet': 4.5,
17
+ 'claude-3-opus': 4.5,
18
+ 'claude-3-sonnet': 4.5,
19
+ 'claude-3-haiku': 4.5,
20
+ 'gemini-pro': 4.0,
21
+ 'gemini-1.5-pro': 4.0,
22
+ default: 4.0,
23
+ };
24
+ /**
25
+ * TokenCounter - トークン数カウントユーティリティ
26
+ */
27
+ export class TokenCounter {
28
+ /**
29
+ * テキストのトークン数を推定
30
+ */
31
+ estimate(text, model) {
32
+ const factor = this.getTokenFactor(model);
33
+ return Math.ceil(text.length / factor);
34
+ }
35
+ /**
36
+ * メッセージ配列のトークン数を推定
37
+ */
38
+ estimateMessages(messages, model) {
39
+ let total = 0;
40
+ for (const message of messages) {
41
+ // ロールのオーバーヘッド(約4トークン)
42
+ total += 4;
43
+ total += this.estimate(message.content, model);
44
+ }
45
+ // メッセージ区切りのオーバーヘッド
46
+ total += 3;
47
+ return total;
48
+ }
49
+ /**
50
+ * トークン数が制限内か確認
51
+ */
52
+ isWithinLimit(text, limit, model) {
53
+ return this.estimate(text, model) <= limit;
54
+ }
55
+ /**
56
+ * 制限内に収まるようにテキストを切り詰め
57
+ */
58
+ truncateToLimit(text, limit, model) {
59
+ const currentTokens = this.estimate(text, model);
60
+ if (currentTokens <= limit) {
61
+ return text;
62
+ }
63
+ const factor = this.getTokenFactor(model);
64
+ const targetLength = Math.floor(limit * factor * 0.9); // 10%マージン
65
+ return text.slice(0, targetLength) + '...';
66
+ }
67
+ /**
68
+ * モデル別トークン係数取得
69
+ */
70
+ getTokenFactor(model) {
71
+ if (!model) {
72
+ return MODEL_TOKEN_FACTORS.default ?? 4.0;
73
+ }
74
+ // モデル名の部分一致
75
+ for (const [key, factor] of Object.entries(MODEL_TOKEN_FACTORS)) {
76
+ if (model.includes(key)) {
77
+ return factor;
78
+ }
79
+ }
80
+ return MODEL_TOKEN_FACTORS.default ?? 4.0;
81
+ }
82
+ }
83
+ // シングルトン
84
+ let tokenCounterInstance = null;
85
+ /**
86
+ * TokenCounter シングルトン取得
87
+ */
88
+ export function getTokenCounter() {
89
+ if (!tokenCounterInstance) {
90
+ tokenCounterInstance = new TokenCounter();
91
+ }
92
+ return tokenCounterInstance;
93
+ }
94
+ /**
95
+ * TokenCounter リセット(テスト用)
96
+ */
97
+ export function resetTokenCounter() {
98
+ tokenCounterInstance = null;
99
+ }
100
+ //# sourceMappingURL=TokenCounter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenCounter.js","sourceRoot":"","sources":["../src/TokenCounter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,mBAAmB,GAA2B;IAClD,QAAQ,EAAE,GAAG;IACb,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG;IAClB,OAAO,EAAE,GAAG;IACZ,eAAe,EAAE,GAAG;IACpB,mBAAmB,EAAE,GAAG;IACxB,eAAe,EAAE,GAAG;IACpB,iBAAiB,EAAE,GAAG;IACtB,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG;IACrB,OAAO,EAAE,GAAG;CACb,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB;;OAEG;IACH,QAAQ,CAAC,IAAY,EAAE,KAAc;QACnC,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CACd,QAAkD,EAClD,KAAc;QAEd,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,sBAAsB;YACtB,KAAK,IAAI,CAAC,CAAC;YACX,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACjD,CAAC;QACD,mBAAmB;QACnB,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,IAAY,EAAE,KAAa,EAAE,KAAc;QACvD,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,IAAY,EAAE,KAAa,EAAE,KAAc;QACzD,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACjD,IAAI,aAAa,IAAI,KAAK,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU;QACjE,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC;IAC7C,CAAC;IAED;;OAEG;IACK,cAAc,CAAC,KAAc;QACnC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,mBAAmB,CAAC,OAAO,IAAI,GAAG,CAAC;QAC5C,CAAC;QAED,YAAY;QACZ,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAChE,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,OAAO,MAAM,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,mBAAmB,CAAC,OAAO,IAAI,GAAG,CAAC;IAC5C,CAAC;CACF;AAED,SAAS;AACT,IAAI,oBAAoB,GAAwB,IAAI,CAAC;AAErD;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC1B,oBAAoB,GAAG,IAAI,YAAY,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,oBAAoB,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,oBAAoB,GAAG,IAAI,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * LLM Package - Main Entry Point
3
+ *
4
+ * @requirement REQ-LLM-001〜006
5
+ * @design DES-KATASHIRO-003-LLM
6
+ */
7
+ export * from './types.js';
8
+ export * from './providers/index.js';
9
+ export { LLMClient, getLLMClient, initLLMClient, resetLLMClient, } from './LLMClient.js';
10
+ export { PromptManager, getPromptManager, resetPromptManager, type TemplateVariables, } from './PromptManager.js';
11
+ export { TokenCounter, getTokenCounter, resetTokenCounter, } from './TokenCounter.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,YAAY,CAAC;AAG3B,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,17 @@
1
+ /**
2
+ * LLM Package - Main Entry Point
3
+ *
4
+ * @requirement REQ-LLM-001〜006
5
+ * @design DES-KATASHIRO-003-LLM
6
+ */
7
+ // Types
8
+ export * from './types.js';
9
+ // Providers
10
+ export * from './providers/index.js';
11
+ // Client
12
+ export { LLMClient, getLLMClient, initLLMClient, resetLLMClient, } from './LLMClient.js';
13
+ // Prompt Manager
14
+ export { PromptManager, getPromptManager, resetPromptManager, } from './PromptManager.js';
15
+ // Token Counter
16
+ export { TokenCounter, getTokenCounter, resetTokenCounter, } from './TokenCounter.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,YAAY;AACZ,cAAc,sBAAsB,CAAC;AAErC,SAAS;AACT,OAAO,EACL,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,GACf,MAAM,gBAAgB,CAAC;AAExB,iBAAiB;AACjB,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,kBAAkB,GAEnB,MAAM,oBAAoB,CAAC;AAE5B,gBAAgB;AAChB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}