@modular-prompt/driver 0.16.0 → 0.17.1

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 (202) hide show
  1. package/README.md +98 -10
  2. package/dist/cache-controller.d.ts +4 -0
  3. package/dist/cache-controller.d.ts.map +1 -1
  4. package/dist/driver-registry/config-based-factory.d.ts +3 -0
  5. package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
  6. package/dist/driver-registry/config-based-factory.js +8 -1
  7. package/dist/driver-registry/config-based-factory.js.map +1 -1
  8. package/dist/driver-registry/factory-helper.d.ts.map +1 -1
  9. package/dist/driver-registry/factory-helper.js +9 -2
  10. package/dist/driver-registry/factory-helper.js.map +1 -1
  11. package/dist/driver-registry/index.d.ts +1 -1
  12. package/dist/driver-registry/index.d.ts.map +1 -1
  13. package/dist/driver-registry/types.d.ts +15 -1
  14. package/dist/driver-registry/types.d.ts.map +1 -1
  15. package/dist/formatter/converter.d.ts.map +1 -1
  16. package/dist/formatter/converter.js +31 -2
  17. package/dist/formatter/converter.js.map +1 -1
  18. package/dist/google-genai/google-genai-driver.d.ts +1 -0
  19. package/dist/google-genai/google-genai-driver.d.ts.map +1 -1
  20. package/dist/google-genai/google-genai-driver.js +36 -27
  21. package/dist/google-genai/google-genai-driver.js.map +1 -1
  22. package/dist/index.d.ts +5 -3
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +5 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/local-inference/adapters.d.ts +6 -0
  27. package/dist/local-inference/adapters.d.ts.map +1 -1
  28. package/dist/local-inference/driver.d.ts.map +1 -1
  29. package/dist/local-inference/driver.js +45 -24
  30. package/dist/local-inference/driver.js.map +1 -1
  31. package/dist/local-inference/process-client.d.ts +4 -2
  32. package/dist/local-inference/process-client.d.ts.map +1 -1
  33. package/dist/local-inference/process-client.js +24 -8
  34. package/dist/local-inference/process-client.js.map +1 -1
  35. package/dist/local-inference/process-communication.d.ts +9 -2
  36. package/dist/local-inference/process-communication.d.ts.map +1 -1
  37. package/dist/local-inference/process-communication.js +37 -5
  38. package/dist/local-inference/process-communication.js.map +1 -1
  39. package/dist/local-inference/protocol.d.ts +4 -0
  40. package/dist/local-inference/protocol.d.ts.map +1 -1
  41. package/dist/local-inference/request-queue.d.ts +1 -1
  42. package/dist/local-inference/request-queue.d.ts.map +1 -1
  43. package/dist/local-inference/request-queue.js +26 -7
  44. package/dist/local-inference/request-queue.js.map +1 -1
  45. package/dist/local-inference/stream-utils.d.ts +6 -0
  46. package/dist/local-inference/stream-utils.d.ts.map +1 -1
  47. package/dist/local-inference/stream-utils.js.map +1 -1
  48. package/dist/mlx-ml/mlx-cache-controller.d.ts +9 -0
  49. package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
  50. package/dist/mlx-ml/mlx-cache-controller.js +158 -33
  51. package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
  52. package/dist/mlx-ml/mlx-cache-support.d.ts +2 -2
  53. package/dist/mlx-ml/mlx-cache-support.d.ts.map +1 -1
  54. package/dist/mlx-ml/mlx-cache-support.js +8 -3
  55. package/dist/mlx-ml/mlx-cache-support.js.map +1 -1
  56. package/dist/mlx-ml/mlx-driver.d.ts +0 -1
  57. package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
  58. package/dist/mlx-ml/mlx-driver.js +1 -8
  59. package/dist/mlx-ml/mlx-driver.js.map +1 -1
  60. package/dist/mlx-ml/process/index.d.ts +1 -1
  61. package/dist/mlx-ml/process/index.d.ts.map +1 -1
  62. package/dist/mlx-ml/process/index.js +2 -2
  63. package/dist/mlx-ml/process/index.js.map +1 -1
  64. package/dist/models-config/index.d.ts +1 -1
  65. package/dist/models-config/index.d.ts.map +1 -1
  66. package/dist/models-config/index.js +1 -1
  67. package/dist/models-config/index.js.map +1 -1
  68. package/dist/models-config/resolve.d.ts +9 -1
  69. package/dist/models-config/resolve.d.ts.map +1 -1
  70. package/dist/models-config/resolve.js +94 -2
  71. package/dist/models-config/resolve.js.map +1 -1
  72. package/dist/models-config/types.d.ts +3 -1
  73. package/dist/models-config/types.d.ts.map +1 -1
  74. package/dist/pytorch/process/index.d.ts +4 -2
  75. package/dist/pytorch/process/index.d.ts.map +1 -1
  76. package/dist/pytorch/process/index.js +24 -7
  77. package/dist/pytorch/process/index.js.map +1 -1
  78. package/dist/pytorch/pytorch-cache-controller.d.ts +84 -0
  79. package/dist/pytorch/pytorch-cache-controller.d.ts.map +1 -0
  80. package/dist/pytorch/pytorch-cache-controller.js +742 -0
  81. package/dist/pytorch/pytorch-cache-controller.js.map +1 -0
  82. package/dist/pytorch/pytorch-cache-support.d.ts +23 -0
  83. package/dist/pytorch/pytorch-cache-support.d.ts.map +1 -0
  84. package/dist/pytorch/pytorch-cache-support.js +47 -0
  85. package/dist/pytorch/pytorch-cache-support.js.map +1 -0
  86. package/dist/pytorch/pytorch-driver.d.ts +8 -1
  87. package/dist/pytorch/pytorch-driver.d.ts.map +1 -1
  88. package/dist/pytorch/pytorch-driver.js +40 -0
  89. package/dist/pytorch/pytorch-driver.js.map +1 -1
  90. package/dist/runtime/check.d.ts.map +1 -1
  91. package/dist/runtime/check.js +8 -6
  92. package/dist/runtime/check.js.map +1 -1
  93. package/dist/runtime/index.d.ts +2 -2
  94. package/dist/runtime/index.d.ts.map +1 -1
  95. package/dist/runtime/index.js +2 -2
  96. package/dist/runtime/index.js.map +1 -1
  97. package/dist/runtime/manifest-core.d.mts +1 -0
  98. package/dist/runtime/manifest-core.mjs +1 -0
  99. package/dist/runtime/manifest-core.mjs.map +1 -1
  100. package/dist/runtime/manifest.d.ts +2 -0
  101. package/dist/runtime/manifest.d.ts.map +1 -1
  102. package/dist/runtime/manifest.js.map +1 -1
  103. package/dist/runtime/paths-core.d.mts +15 -1
  104. package/dist/runtime/paths-core.d.mts.map +1 -1
  105. package/dist/runtime/paths-core.mjs +50 -5
  106. package/dist/runtime/paths-core.mjs.map +1 -1
  107. package/dist/runtime/paths.d.ts +2 -2
  108. package/dist/runtime/paths.d.ts.map +1 -1
  109. package/dist/runtime/paths.js +2 -2
  110. package/dist/runtime/paths.js.map +1 -1
  111. package/dist/runtime/pytorch-template-core.d.mts +11 -0
  112. package/dist/runtime/pytorch-template-core.d.mts.map +1 -0
  113. package/dist/runtime/pytorch-template-core.mjs +54 -0
  114. package/dist/runtime/pytorch-template-core.mjs.map +1 -0
  115. package/dist/runtime/setup-commands-core.d.mts +3 -0
  116. package/dist/runtime/setup-commands-core.d.mts.map +1 -1
  117. package/dist/runtime/setup-commands-core.mjs +4 -0
  118. package/dist/runtime/setup-commands-core.mjs.map +1 -1
  119. package/dist/runtime/setup-commands.d.ts +1 -1
  120. package/dist/runtime/setup-commands.d.ts.map +1 -1
  121. package/dist/runtime/setup-commands.js +1 -1
  122. package/dist/runtime/setup-commands.js.map +1 -1
  123. package/dist/vertexai/vertexai-driver.d.ts +6 -0
  124. package/dist/vertexai/vertexai-driver.d.ts.map +1 -1
  125. package/dist/vertexai/vertexai-driver.js +106 -36
  126. package/dist/vertexai/vertexai-driver.js.map +1 -1
  127. package/docs/DRIVER_API.md +455 -0
  128. package/docs/LOCAL_MODEL_SETUP.md +765 -0
  129. package/docs/mlx-api-selection.md +301 -0
  130. package/package.json +10 -6
  131. package/scripts/runtime-cli.bin.test.ts +142 -0
  132. package/scripts/runtime-cli.js +305 -35
  133. package/scripts/runtime-cli.test.ts +163 -0
  134. package/skills/driver-usage/SKILL.md +29 -0
  135. package/src/mlx-ml/python/__main__.py +1 -1
  136. package/src/mlx-ml/python/backends/base.py +88 -18
  137. package/src/mlx-ml/python/backends/mlx_lm.py +28 -3
  138. package/src/mlx-ml/python/backends/mlx_vlm.py +679 -2
  139. package/src/mlx-ml/python/handlers/cache.py +4 -0
  140. package/src/mlx-ml/python/handlers/generate.py +33 -10
  141. package/src/mlx-ml/python/handlers/tokenize.py +1 -4
  142. package/src/mlx-ml/python/pyproject.toml +2 -2
  143. package/src/mlx-ml/python/server.py +2 -0
  144. package/src/mlx-ml/python/uv.lock +12 -12
  145. package/src/pytorch/templates/cpu-minimal/backends/base.py +139 -0
  146. package/src/pytorch/templates/cpu-minimal/backends/transformers_lm.py +1167 -0
  147. package/src/pytorch/{python → templates/cpu-minimal}/handlers/__init__.py +1 -0
  148. package/src/pytorch/templates/cpu-minimal/handlers/cache.py +88 -0
  149. package/src/pytorch/templates/cpu-minimal/handlers/generate.py +157 -0
  150. package/src/pytorch/{python → templates/cpu-minimal}/pyproject.toml +2 -2
  151. package/src/pytorch/{python → templates/cpu-minimal}/server.py +20 -2
  152. package/src/pytorch/templates/cpu-minimal/tests/test_cache_handler.py +284 -0
  153. package/src/pytorch/templates/cpu-minimal/tests/test_capabilities.py +14 -0
  154. package/src/pytorch/templates/cpu-minimal/tests/test_server.py +141 -0
  155. package/src/pytorch/templates/cpu-minimal/tests/test_transformers_errors.py +89 -0
  156. package/src/pytorch/templates/cpu-minimal/tests/test_transformers_lm_cache.py +554 -0
  157. package/src/pytorch/templates/cpu-minimal/utils/__init__.py +0 -0
  158. package/src/pytorch/{python → templates/cpu-minimal}/utils/token_utils.py +2 -2
  159. package/src/pytorch/templates/cpu-minimal/utils/transformers_errors.py +54 -0
  160. package/src/pytorch/{python → templates/cpu-minimal}/uv.lock +149 -109
  161. package/src/pytorch/templates/cuda/__main__.py +19 -0
  162. package/src/pytorch/templates/cuda/backends/__init__.py +3 -0
  163. package/src/pytorch/{python → templates/cuda}/backends/base.py +54 -6
  164. package/src/pytorch/templates/cuda/backends/transformers_lm.py +379 -0
  165. package/src/pytorch/templates/cuda/handlers/__init__.py +7 -0
  166. package/src/pytorch/templates/cuda/handlers/cache.py +93 -0
  167. package/src/pytorch/templates/cuda/handlers/cancel.py +53 -0
  168. package/src/pytorch/templates/cuda/handlers/capabilities.py +6 -0
  169. package/src/pytorch/templates/cuda/handlers/completion.py +15 -0
  170. package/src/pytorch/templates/cuda/handlers/format_test.py +70 -0
  171. package/src/pytorch/templates/cuda/handlers/generate.py +152 -0
  172. package/src/pytorch/templates/cuda/handlers/render.py +40 -0
  173. package/src/pytorch/templates/cuda/handlers/tokenize.py +63 -0
  174. package/src/pytorch/templates/cuda/pyproject.toml +37 -0
  175. package/src/pytorch/templates/cuda/server.py +158 -0
  176. package/src/pytorch/templates/cuda/tests/__init__.py +0 -0
  177. package/src/pytorch/templates/cuda/tests/test_cache_handler.py +207 -0
  178. package/src/pytorch/templates/cuda/tests/test_capabilities.py +14 -0
  179. package/src/pytorch/templates/cuda/tests/test_server.py +145 -0
  180. package/src/pytorch/templates/cuda/tests/test_transformers_errors.py +89 -0
  181. package/src/pytorch/templates/cuda/tests/test_transformers_lm_cache.py +288 -0
  182. package/src/pytorch/templates/cuda/utils/__init__.py +0 -0
  183. package/src/pytorch/templates/cuda/utils/chat_template_constraints.py +164 -0
  184. package/src/pytorch/templates/cuda/utils/prompt_builder.py +54 -0
  185. package/src/pytorch/templates/cuda/utils/template_render.py +80 -0
  186. package/src/pytorch/templates/cuda/utils/token_utils.py +376 -0
  187. package/src/pytorch/templates/cuda/utils/transformers_errors.py +54 -0
  188. package/src/pytorch/templates/cuda/uv.lock +734 -0
  189. package/src/pytorch/python/backends/transformers_lm.py +0 -127
  190. package/src/pytorch/python/handlers/generate.py +0 -68
  191. /package/src/pytorch/{python → templates/cpu-minimal}/__main__.py +0 -0
  192. /package/src/pytorch/{python → templates/cpu-minimal}/backends/__init__.py +0 -0
  193. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/cancel.py +0 -0
  194. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/capabilities.py +0 -0
  195. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/completion.py +0 -0
  196. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/format_test.py +0 -0
  197. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/render.py +0 -0
  198. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/tokenize.py +0 -0
  199. /package/src/pytorch/{python/utils → templates/cpu-minimal/tests}/__init__.py +0 -0
  200. /package/src/pytorch/{python → templates/cpu-minimal}/utils/chat_template_constraints.py +0 -0
  201. /package/src/pytorch/{python → templates/cpu-minimal}/utils/prompt_builder.py +0 -0
  202. /package/src/pytorch/{python → templates/cpu-minimal}/utils/template_render.py +0 -0
package/README.md CHANGED
@@ -52,7 +52,7 @@ if (result.logEntries) {
52
52
  }
53
53
  ```
54
54
 
55
- 詳細は [Driver APIリファレンス](../../docs/DRIVER_API.md) を参照してください。
55
+ 詳細は [Driver APIリファレンス](./docs/DRIVER_API.md) を参照してください。
56
56
 
57
57
  ## 利用可能なドライバー
58
58
 
@@ -71,6 +71,76 @@ if (result.logEntries) {
71
71
 
72
72
  各ドライバーの詳細な設定・オプションは `skills/driver-usage/SKILL.md` を参照。
73
73
 
74
+ `VertexAIDriver` の明示 Context Caching は、`@google/genai` を Vertex モードで初期化した
75
+ `GoogleGenAICacheController` を `cacheController` として手動注入します。config-based factory で
76
+ 自動生成せず、extract Session と同じ controller を共有してください。最小配線例は
77
+ [キャッシュ設計の Vertex AI 節](../docs/CACHE_DESIGN.md#vertex-ai-の明示キャッシュ)を参照してください。
78
+
79
+ ### PyTorchProcess の KV キャッシュ
80
+
81
+ `PyTorchProcess` の低レベル API では、Transformers の text-only LM に対して、KV キャッシュを prefill して suffix を生成できます。`memory://` ref は同一 Python プロセス内だけで有効です。`cpu-minimal` backend で通常のファイルパスを指定すると、PyTorch backend 固有の `pytorch_kv_v1` 形式で KV と `.meta.json` を永続化できます。CUDA backend は process-local cache のみを使用し、cache ファイルを作成しません。
82
+
83
+ `PyTorchDriver` に `PyTorchCacheController` を渡すと、`cache: true` のクエリでキャッシュ可能な instructions/data の prefix を自動的に prefill・再利用できます。固定の `cacheDir` を指定した controller がプロセス再起動後も cache を再利用できるのは `cpu-minimal` backend です。CUDA backend は process-local で、incremental/prefix metadata を拒否し、restart 後は miss になります。`QueryResult.usage` の `cacheReadTokens` / `cacheWriteTokens` には backend が報告した利用量を反映します。固定 `cacheDir` は runtime variant / device ごとに分け、CPU と CUDA で共有しないでください。現在の PyTorch backend では VLM・画像入力の cache は無効です。
84
+
85
+ ```typescript
86
+ import {
87
+ PyTorchCacheController,
88
+ PyTorchDriver,
89
+ } from '@modular-prompt/driver';
90
+
91
+ const driver = new PyTorchDriver({
92
+ model: 'your-transformers-model',
93
+ cacheController: new PyTorchCacheController({
94
+ cacheDir: '/path/to/pytorch-cache',
95
+ }),
96
+ });
97
+
98
+ const result = await driver.query(prompt, { cache: true });
99
+ console.log(result.usage?.cacheReadTokens);
100
+ console.log(result.usage?.cacheWriteTokens);
101
+ await driver.close();
102
+ ```
103
+
104
+ ```typescript
105
+ import { PyTorchProcess } from '@modular-prompt/driver';
106
+ import type { InferenceMessage } from '@modular-prompt/driver';
107
+
108
+ const process = new PyTorchProcess('your-transformers-model');
109
+ const prefixMessages: InferenceMessage[] = [
110
+ { role: 'system', content: 'You are a helpful assistant.' },
111
+ { role: 'user', content: 'Keep this conversation context.' },
112
+ ];
113
+ const queryMessages: InferenceMessage[] = [
114
+ ...prefixMessages,
115
+ { role: 'user', content: 'Answer the next question.' },
116
+ ];
117
+
118
+ try {
119
+ const cache = await process.cachePrefill('memory://conversation-prefix', prefixMessages);
120
+ const rendered = await process.render(queryMessages);
121
+ if (rendered.error || rendered.formatted_prompt == null) {
122
+ throw new Error(rendered.error ?? 'Failed to render the prompt');
123
+ }
124
+
125
+ const stream = await process.generate(
126
+ rendered.formatted_prompt,
127
+ { max_tokens: 64, temperature: 0 },
128
+ undefined,
129
+ undefined,
130
+ cache.cache_path,
131
+ );
132
+ for await (const chunk of stream) {
133
+ process.stdout.write(chunk.toString());
134
+ }
135
+ } finally {
136
+ await process.exit();
137
+ }
138
+ ```
139
+
140
+ `cachePrefill()` の結果には prefill した `token_count` と `cache_write_tokens` が含まれ、同じ参照を最初に使う `generate()` の LIP meta にも write 数が一度だけ通知されます。キャッシュを使った生成では `cache_read_tokens` と `cache_write_tokens`、実際に参照を読み込めたかどうかは `cache_loaded` で確認できます。
141
+
142
+ prefill に渡した prompt の token 列は、`generate()` に渡す rendered prompt の先頭と一致している必要があります。`memory://` ref は `PyTorchProcess` または Python 子プロセスの終了・再起動で失われます。`cpu-minimal` のファイル cache は同じ model ID・dtype・device の backend から再利用できますが、CUDA はファイル cache を作成せず restart 後に miss になります。不一致や破損したファイルは cache miss として full prompt の cold path にフォールバックします。`baseCachePath` と `trimToTokens` を指定した `cachePrefill()` では、`cpu-minimal` で base cache を trim して suffix だけを prefill できます。CUDA は incremental prefill をサポートしません。`cacheTrimTokens` を指定した `generate()` の trim は生成用 clone に適用され、同じ cache ref の元 state は保持されます。`PyTorchCacheController` はこの低レベル API を `PromptCacheController` のライフサイクルに接続し、同一 query の prefill 増分を `cacheWriteTokens` として報告します。
143
+
74
144
  ## 主な機能
75
145
 
76
146
  - **統一インターフェース**: `query()` / `streamQuery()` / `close()` の3メソッド
@@ -117,7 +187,7 @@ const profileOverlay = {
117
187
  const ai = AIService.fromMergedConfig(bundled, profileOverlay);
118
188
  const models = ai.modelsConfig;
119
189
 
120
- const spec = resolveModelName('local-chat', models, () => 'mlx');
190
+ const spec = resolveModelName('local-chat', models);
121
191
  const fallback = resolveDefaultModelFromConfig(models);
122
192
  const driver = await ai.createDriver(spec);
123
193
  ```
@@ -126,7 +196,8 @@ const driver = await ai.createDriver(spec);
126
196
  - `AIService.fromModelsConfig({ source })` — `source: 'merge'`(デフォルト)で user yaml を読み込み、`source: 'overlay'` で無視
127
197
  - `mode: 'merge' | 'override'` — models セクションの浅いマージ / 置換
128
198
  - デフォルト model は `models.default` alias、なければ models の先頭エントリから導出
129
- - `defaults` / `runtime` による暗黙解決は廃止(YAML に残っていても警告のみ)
199
+ - `defaults` によるモデルの暗黙解決は廃止(YAML に残っていても警告のみ)。`runtime` はモデル決定後の provider 推論に限って利用する
200
+ - 生 model ID は `resolveModelName()` が merged models の model 完全一致エントリ、`runtime` / `metadata.runtime`、既知のモデル名パターンの順で provider を推論する。推論できない場合は `--provider <provider>` などで明示指定する
130
201
 
131
202
  simple-chat では profile の `modelsConfig` に inline の `models` / `drivers` を載せ、`workflow.models.default.ref` で alias 参照できます。`ref` に未知の alias を指定した場合は **エラーで停止**します。
132
203
 
@@ -137,7 +208,9 @@ simple-chat では profile の `modelsConfig` に inline の `models` / `drivers
137
208
  ローカル統合テストや手元試行で使うモデルは、通常設定と分けて
138
209
  `~/.modular-prompt/models.testing.yaml` に置けます。`MODULAR_PROMPT_HOME` を設定している場合は、そのディレクトリ配下を使用します。プロジェクト配下の設定ファイルは暗黙探索しません。
139
210
 
140
- `models.default` には cache 対応の text-only LM を指定してください。MLX VLM は prompt caching が無効になるため、cache 統合テストには使用できません。
211
+ `models.default` には cache 対応の text-only LM または cache を使う MLX VLM を指定できます。MLX VLM の cache は `backend: vlm`(または `auto`)で起動し、画像なしリクエストは `mlx-vlm==0.7.4` の `exact_cache_v1`、画像付きリクエストは専用の `vision_cache_v1` namespace としてディスクへ保存されます。画像付き cache は text-only VLM / LM の cache(LM の `.safetensors.zip` を含む)とは相互利用できません。
212
+
213
+ MLX VLM の画像入力は local file path のみ対応します。URL / data URI の loader は実装していないため、画像付き cache 経路でも利用できません。
141
214
 
142
215
  ```yaml
143
216
  models:
@@ -155,10 +228,10 @@ models:
155
228
  マージ順は **base → `models.yaml` → `models.testing.yaml` → overlay** です。Vitest 実行中または `NODE_ENV=test` では testing 設定が自動で追加されます。CLI などで明示的に使う場合は次の環境変数を指定します。
156
229
 
157
230
  ```bash
158
- MODULAR_PROMPT_MODELS_PROFILE=testing modular-extract create meeting -m default docs/notes.txt
231
+ MODULAR_PROMPT_MODELS_PROFILE=testing modular-prompt-extract create meeting -m default docs/notes.txt
159
232
  ```
160
233
 
161
- ライブラリからは `resolveModelsConfig({ profile: 'testing' })` または `AIService.fromModelsConfig({ profile: 'testing' })` を使用できます。統合テストはこの設定から MLX/API ドライバーを導出し、設定が無い場合は従来の `test-drivers.yaml` にフォールバックします。サンプルは [`models.testing.yaml.example`](./test/integration/models.testing.yaml.example) を参照してください。
234
+ ライブラリからは `resolveModelsConfig({ profile: 'testing' })` または `AIService.fromModelsConfig({ profile: 'testing' })` を使用できます。統合テストはこの設定から MLX/API ドライバーを導出し、設定が無い場合は従来の `test-drivers.yaml` にフォールバックします。サンプルは [models.testing.yaml.example](https://github.com/otolab/modular-prompt/blob/main/packages/driver/test/integration/models.testing.yaml.example) または同梱 [LOCAL_MODEL_SETUP.md](./docs/LOCAL_MODEL_SETUP.md) を参照してください。
162
235
 
163
236
 
164
237
  ```typescript
@@ -186,7 +259,7 @@ const final = await result;
186
259
  - キャンセル前の部分応答は `result.content` に残ります
187
260
  - 他ドライバーは `signal` を無視します(未実装)
188
261
 
189
- 詳細は [Driver APIリファレンス](../../docs/DRIVER_API.md#推論キャンセルabortsignal) を参照。
262
+ 詳細は [Driver APIリファレンス](./docs/DRIVER_API.md#推論キャンセルabortsignal) を参照。
190
263
 
191
264
  ## トークン使用量(usage)
192
265
 
@@ -197,7 +270,7 @@ for await (const _ of stream) { /* consume */ }
197
270
  const final = await result;
198
271
  if (final.usage) {
199
272
  console.log(final.usage.promptTokens, final.usage.completionTokens);
200
- console.log(final.usage.cacheReadTokens); // MLX + KV キャッシュ時
273
+ console.log(final.usage.cacheReadTokens); // MLX/PyTorch + KV キャッシュ時
201
274
  console.log(final.usage.cacheWriteTokens); // 同一クエリ内の新規 prefill 時
202
275
  }
203
276
  ```
@@ -262,7 +335,7 @@ modular-prompt-runtime setup mlx
262
335
  VLM(Vision Language Model)対応モデルを画像なしのテキストのみで使用する場合は、`textOnly`オプションを使用します。
263
336
 
264
337
  ```typescript
265
- import { MlxDriver } from '@modular-prompt/driver';
338
+ import { MlxDriver, MlxCacheController } from '@modular-prompt/driver';
266
339
 
267
340
  const driver = new MlxDriver({
268
341
  model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
@@ -281,6 +354,21 @@ await driver.close();
281
354
 
282
355
  `textOnly: true`を指定すると、VLM対応モデルを`mlx-lm`(高速起動)で起動し、画像処理なしのテキストのみで使用できます。
283
356
 
357
+ `textOnly: true` は互換性のために VLM モデルを LM backend として起動する指定です。VLM backend 自体を使用して text-only cache を永続化する場合は、`backend: 'vlm'`(省略時の `auto` でも可)を指定し、cache controller を共有します。
358
+
359
+ ```typescript
360
+ const cacheController = new MlxCacheController({
361
+ cacheDir: '/path/to/cache',
362
+ });
363
+ const driver = new MlxDriver({
364
+ model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
365
+ backend: 'vlm',
366
+ cacheController,
367
+ });
368
+ ```
369
+
370
+ VLM の text-only cache は `cacheDir/<key>.vlm.safetensors/exact_<hash>.safetensors`、画像付き cache は `cacheDir/<key>.vlm-vision.safetensors/exact_<hash>.safetensors` に保存されます。実体ごとの `.meta.json` に `token_count` 等を記録し、画像付き sidecar には image hash、resize 条件、`vision_cache_v1` の version も記録します。0.7.0 で作成した text-only `exact_cache_v1` snapshot は 0.7.4 でも load できます。0.7.4 の interleaved image formatting 変更により、0.7.0 で作成した vision sidecar は version mismatch として miss し、cold prefill から再構築されます。VLM の incremental prefill と LM archive との互換性は提供しません。画像 feature tensor 自体は process-local の `VisionFeatureCache` に保持し、再起動後は再構築します。Pinned `mlx-vlm==0.7.4` の PIL key は bytes のみですが、MLX backend は mode・寸法・bytes・画像列を含む wrapper key を upstream cache に渡して衝突を防ぎます。
371
+
284
372
  #### 特殊トークンの確認
285
373
 
286
374
  モデルがサポートする特殊トークンを確認できます:
@@ -334,7 +422,7 @@ uv --project . run python __main__.py \
334
422
 
335
423
  前提条件: Python 3.10以上、CUDA対応GPU、Linux。
336
424
 
337
- 詳細は [ローカルモデルセットアップガイド](../../docs/LOCAL_MODEL_SETUP.md) を参照してください。
425
+ 詳細は [ローカルモデルセットアップガイド](./docs/LOCAL_MODEL_SETUP.md) を参照してください。
338
426
 
339
427
  ## Skills(Claude Code向け)
340
428
 
@@ -6,6 +6,10 @@ export interface CachePrepareParams {
6
6
  data?: Element[];
7
7
  tools?: ToolDefinition[];
8
8
  reasoningEffort?: 'low' | 'medium' | 'high';
9
+ /** Image sources belonging to a VLM cacheable prefix. */
10
+ images?: string[];
11
+ /** Image resize limit used when constructing a VLM cache. */
12
+ maxImageSize?: number;
9
13
  /** When true, only return existing cache hits — never create new entries */
10
14
  readOnly?: boolean;
11
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,wGAAwG;IACxG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"cache-controller.d.ts","sourceRoot":"","sources":["../src/cache-controller.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,KAAK,CAAC,EAAE,cAAc,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,6DAA6D;IAC7D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,QAAQ,EAAE;QACR,YAAY,EAAE,OAAO,CAAC;QACtB,gBAAgB,EAAE,MAAM,CAAC;QACzB,KAAK,EAAE,OAAO,CAAC;KAChB,CAAC;IACF,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,iEAAiE;IACjE,WAAW,CAAC,IAAI,IAAI,CAAC;IACrB,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IAC1D,wGAAwG;IACxG,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import type { DriverRegistry } from './registry.js';
9
9
  import type { ModelSpec } from './types.js';
10
+ import type { PromptCacheController } from '../cache-controller.js';
10
11
  /**
11
12
  * アプリケーション設定
12
13
  * CLI層やアプリケーション層で管理される統一的な設定
@@ -36,6 +37,8 @@ export interface ApplicationConfig {
36
37
  project?: string;
37
38
  location?: string;
38
39
  region?: string;
40
+ /** 外部で生成した controller(extract Session と共有する場合) */
41
+ cacheController?: PromptCacheController;
39
42
  };
40
43
  /** GoogleGenAI設定 */
41
44
  googlegenai?: {
@@ -1 +1 @@
1
- {"version":3,"file":"config-based-factory.d.ts","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAyC,MAAM,YAAY,CAAC;AAoBnF;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc;IACd,OAAO,CAAC,EAAE;QACR,mBAAmB;QACnB,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,sBAAsB;QACtB,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,2BAA2B;YAC3B,MAAM,CAAC,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,CAAC;SACH,CAAC;QACF,iBAAiB;QACjB,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,oBAAoB;QACpB,WAAW,CAAC,EAAE;YACZ,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,YAAY;QACZ,GAAG,CAAC,EAAE;YACJ,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,eAAe;QACf,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,aAAa;QACb,IAAI,CAAC,EAAE;YACL,gDAAgD;YAChD,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IAEF,iBAAiB;IACjB,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,YAAY;IACZ,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAiHN"}
1
+ {"version":3,"file":"config-based-factory.d.ts","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EAIV,MAAM,YAAY,CAAC;AAepB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAOpE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,cAAc;IACd,OAAO,CAAC,EAAE;QACR,mBAAmB;QACnB,MAAM,CAAC,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,CAAC;SACvB,CAAC;QACF,sBAAsB;QACtB,SAAS,CAAC,EAAE;YACV,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,2BAA2B;YAC3B,MAAM,CAAC,EAAE;gBACP,OAAO,EAAE,MAAM,CAAC;gBAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;gBAClB,WAAW,CAAC,EAAE,MAAM,CAAC;aACtB,CAAC;SACH,CAAC;QACF,iBAAiB;QACjB,QAAQ,CAAC,EAAE;YACT,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;YAClB,MAAM,CAAC,EAAE,MAAM,CAAC;YAChB,kDAAkD;YAClD,eAAe,CAAC,EAAE,qBAAqB,CAAC;SACzC,CAAC;QACF,oBAAoB;QACpB,WAAW,CAAC,EAAE;YACZ,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;QACF,YAAY;QACZ,GAAG,CAAC,EAAE;YACJ,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;QACF,eAAe;QACf,MAAM,CAAC,EAAE;YACP,OAAO,CAAC,EAAE,MAAM,CAAC;SAClB,CAAC;QACF,aAAa;QACb,IAAI,CAAC,EAAE;YACL,gDAAgD;YAChD,UAAU,CAAC,EAAE,MAAM,CAAC;SACrB,CAAC;KACH,CAAC;IAEF,iBAAiB;IACjB,cAAc,CAAC,EAAE;QACf,IAAI,CAAC,EAAE,OAAO,aAAa,EAAE,SAAS,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IAEF,YAAY;IACZ,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;CACtB;AAGD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAuHN"}
@@ -9,6 +9,7 @@
9
9
  import { MlxDriver } from '../mlx-ml/mlx-driver.js';
10
10
  import { MlxCacheController } from '../mlx-ml/mlx-cache-controller.js';
11
11
  import { PyTorchDriver } from '../pytorch/pytorch-driver.js';
12
+ import { PyTorchCacheController } from '../pytorch/pytorch-cache-controller.js';
12
13
  import { OpenAIDriver } from '../openai/openai-driver.js';
13
14
  import { AnthropicDriver } from '../anthropic/anthropic-driver.js';
14
15
  import { VertexAIDriver } from '../vertexai/vertexai-driver.js';
@@ -52,11 +53,16 @@ export function registerFactories(registry, config) {
52
53
  // PyTorch Driver Factory
53
54
  registry.registerFactory('pytorch', (spec) => {
54
55
  const driverOpts = spec.driverOptions;
56
+ const cacheController = driverOpts?.cacheController
57
+ ?? (driverOpts?.cacheDir
58
+ ? new PyTorchCacheController({ cacheDir: driverOpts.cacheDir })
59
+ : undefined);
55
60
  return new PyTorchDriver({
56
61
  model: spec.model,
57
62
  defaultOptions: mergeDefaults(spec),
58
63
  venvPath: driverOpts?.venvPath ?? spec.metadata?.venvPath,
59
64
  device: driverOpts?.device ?? spec.metadata?.device,
65
+ cacheController,
60
66
  });
61
67
  });
62
68
  // OpenAI Driver Factory
@@ -87,7 +93,8 @@ export function registerFactories(registry, config) {
87
93
  project: vertexConfig?.project || process.env.VERTEX_AI_PROJECT,
88
94
  location: vertexConfig?.location || vertexConfig?.region || 'us-central1',
89
95
  model: spec.model,
90
- defaultOptions: mergeDefaults(spec)
96
+ defaultOptions: mergeDefaults(spec),
97
+ cacheController: vertexConfig?.cacheController,
91
98
  });
92
99
  });
93
100
  // GoogleGenAI Driver Factory
@@ -1 +1 @@
1
- {"version":3,"file":"config-based-factory.js","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-based-factory.js","sourceRoot":"","sources":["../../src/driver-registry/config-based-factory.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory-helper.d.ts","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAyD,MAAM,YAAY,CAAC;AACnG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsCpD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,GACA,IAAI,CAiHN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAGN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,GACrC,IAAI,CAGN"}
1
+ {"version":3,"file":"factory-helper.d.ts","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EAKV,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAI5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAsCpD;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAC7C,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE;IACP,SAAS,CAAC,EAAE,OAAO,SAAS,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,aAAa,CAAC;IACrC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,eAAe,CAAC,EAAE,OAAO,eAAe,CAAC;IACzC,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;IACvC,YAAY,CAAC,EAAE,OAAO,YAAY,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;CAChC,GACA,IAAI,CAuHN;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,IAAI,CAGN;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,QAAQ,GACrC,IAAI,CAGN"}
@@ -3,6 +3,7 @@
3
3
  * ドライバファクトリの登録を支援するヘルパー関数
4
4
  */
5
5
  import { logger } from '@modular-prompt/utils';
6
+ import { PyTorchCacheController } from '../pytorch/pytorch-cache-controller.js';
6
7
  /**
7
8
  * defaultOptionsのmaxTokensをModelSpec.maxOutputTokensで制限
8
9
  *
@@ -58,11 +59,17 @@ export function registerStandardDriverFactories(registry, drivers) {
58
59
  if (drivers.PyTorchDriver) {
59
60
  const Driver = drivers.PyTorchDriver;
60
61
  registry.registerFactory('pytorch', (spec) => {
62
+ const driverOpts = spec.driverOptions;
63
+ const cacheController = driverOpts?.cacheController
64
+ ?? (driverOpts?.cacheDir
65
+ ? new PyTorchCacheController({ cacheDir: driverOpts.cacheDir })
66
+ : undefined);
61
67
  return new Driver({
62
68
  model: spec.model,
63
69
  defaultOptions: validateAndClampMaxTokens(spec, spec.defaultOptions),
64
- venvPath: spec.metadata?.venvPath,
65
- device: spec.metadata?.device,
70
+ venvPath: driverOpts?.venvPath ?? spec.metadata?.venvPath,
71
+ device: driverOpts?.device ?? spec.metadata?.device,
72
+ cacheController,
66
73
  });
67
74
  });
68
75
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory-helper.js","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factory-helper.js","sourceRoot":"","sources":["../../src/driver-registry/factory-helper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAI/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAShF;;;;;;GAMG;AACH,SAAS,yBAAyB,CAChC,IAAe,EACf,cAAmD;IAEnD,IAAI,IAAI,CAAC,eAAe,IAAI,IAAI,IAAI,cAAc,EAAE,SAAS,IAAI,IAAI,EAAE,CAAC;QACtE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,SAAmB,CAAC;IACrD,IAAI,SAAS,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACrC,MAAM,CAAC,IAAI,CACT,cAAc,SAAS,wBAAwB;YAC/C,IAAI,IAAI,CAAC,eAAe,gBAAgB,IAAI,CAAC,KAAK,KAAK;YACvD,eAAe,IAAI,CAAC,eAAe,GAAG,CACvC,CAAC;QACF,OAAO;YACL,GAAG,cAAc;YACjB,SAAS,EAAE,IAAI,CAAC,eAAe;SAChC,CAAC;IACJ,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,MAAM,UAAU,GAAG,IAAI,CAAC,aAAkD,CAAC;IAC3E,OAAO,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,OAAO,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAC7C,QAAwB,EACxB,OASC;IAED,aAAa;IACb,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;QACjC,4CAA4C;QAC5C,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC,IAAe,EAAE,EAAE;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAkD,CAAC;YAC3E,OAAO,IAAI,MAAM,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CACvC,IAAI,EACJ,IAAI,CAAC,cAAc,CACpB;gBACD,OAAO,EAAE,iBAAiB,CAAC,IAAI,CAAC;gBAChC,QAAQ,EAAE,UAAU,EAAE,QAAQ,IAAK,IAAI,CAAC,QAAQ,EAAE,QAAgC;gBAClF,YAAY,EAAE,UAAU,EAAE,YAAY,IAAK,IAAI,CAAC,QAAQ,EAAE,YAAmC;gBAC7F,cAAc,EAAE,UAAU,EAAE,cAAc,IAAK,IAAI,CAAC,QAAQ,EAAE,cAAqC;gBACnG,eAAe,EAAE,UAAU,EAAE,eAAe;aAC7C,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iBAAiB;IACjB,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;QACrC,QAAQ,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,IAAe,EAAE,EAAE;YACtD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAsD,CAAC;YAC/E,MAAM,eAAe,GAAG,UAAU,EAAE,eAAe;mBAC9C,CAAC,UAAU,EAAE,QAAQ;oBACtB,CAAC,CAAC,IAAI,sBAAsB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,CAAC;oBAC/D,CAAC,CAAC,SAAS,CAAC,CAAC;YACjB,OAAO,IAAI,MAAM,CAAC;gBAChB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC;gBACpE,QAAQ,EAAE,UAAU,EAAE,QAAQ,IAAK,IAAI,CAAC,QAAQ,EAAE,QAA+B;gBACjF,MAAM,EAAE,UAAU,EAAE,MAAM,IAAK,IAAI,CAAC,QAAQ,EAAE,MAA6B;gBAC3E,eAAe;aAChB,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAe,EAAE,EAAE;YACrD,OAAO,IAAI,MAAM,CAAC;gBAChB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,EAAE;gBACxC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CACvC,IAAI,EACJ,IAAI,CAAC,QAAQ,CACa;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB;IACnB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;QACvC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAe,EAAE,EAAE;YACxD,OAAO,IAAI,MAAM,CAAC;gBAChB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;gBAC3C,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CACvC,IAAI,EACJ,IAAI,CAAC,QAAQ,CACa;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,kBAAkB;IAClB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;QACtC,QAAQ,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,IAAe,EAAE,EAAE;YACvD,OAAO,IAAI,MAAM,CAAC;gBAChB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB;gBACtC,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,aAAa;gBACzD,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CACvC,IAAI,EACJ,IAAI,CAAC,QAAQ,CACa;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;QACpC,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,IAAe,EAAE,EAAE;YACrD,OAAO,IAAI,MAAM,CAAC;gBAChB,OAAO,EAAE,wBAAwB;gBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,cAAc,EAAE,yBAAyB,CACvC,IAAI,EACJ,IAAI,CAAC,QAAQ,CACa;aAC7B,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,4BAA4B;IAC5B,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,QAAQ,CAAC,eAAe,CAAC,MAAM,EAAE,GAAG,EAAE;YACpC,OAAO,IAAI,MAAM,CAAC;gBAChB,MAAM,EAAE,MAAM;aACf,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACvB,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;QAClC,QAAQ,CAAC,eAAe,CAAC,MAAwB,EAAE,GAAG,EAAE;YACtD,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,QAAwB,EACxB,OAAgC;IAEhC,8DAA8D;IAC9D,+BAA+B,CAAC,QAAQ,EAAE,OAAc,CAAC,CAAC;AAC5D,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,qBAAqB,CACnC,QAAwB,EACxB,IAAY,EACZ,OAAsC;IAEtC,8DAA8D;IAC9D,QAAQ,CAAC,eAAe,CAAC,IAAW,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC"}
@@ -5,5 +5,5 @@
5
5
  export { DriverRegistry } from './registry.js';
6
6
  export { registerFactories, type ApplicationConfig } from './config-based-factory.js';
7
7
  export { AIService, type SelectionOptions, type AIServiceModelsOptions, } from './ai-service.js';
8
- export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, } from './types.js';
8
+ export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, PyTorchModelDriverOptions, } from './types.js';
9
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver-registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/driver-registry/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,iBAAiB,EACjB,KAAK,iBAAiB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,sBAAsB,GAC5B,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,cAAc,EACd,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,YAAY,CAAC"}
@@ -34,8 +34,22 @@ export interface MlxModelDriverOptions {
34
34
  /** 外部で生成した KV cache controller(runtime から driver と共有する場合。runtime-only) */
35
35
  cacheController?: PromptCacheController;
36
36
  }
37
+ /** PyTorch ドライバー固有オプション */
38
+ export interface PyTorchModelDriverOptions {
39
+ /** 外部 venv パス */
40
+ venvPath?: string;
41
+ /** PyTorch の実行デバイス(例: cpu, cuda) */
42
+ device?: string;
43
+ /**
44
+ * KV キャッシュディレクトリ。ディスク永続化は `cpu-minimal` runtime のみ。
45
+ * CUDA は process-local(再起動後は再利用されない)。CPU/CUDA や runtime variant/device 間で同じ `cacheDir` を共有しないこと。
46
+ */
47
+ cacheDir?: string;
48
+ /** 外部で生成した KV cache controller */
49
+ cacheController?: PromptCacheController;
50
+ }
37
51
  /** ドライバー固有オプションのunion(将来拡張) */
38
- export type ModelDriverOptions = MlxModelDriverOptions;
52
+ export type ModelDriverOptions = MlxModelDriverOptions | PyTorchModelDriverOptions;
39
53
  /**
40
54
  * モデル仕様(code-bugsのModelSpecと同等)
41
55
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver-registry/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/driver-registry/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAKlF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAGF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,EAAE,CAgFf"}
1
+ {"version":3,"file":"converter.d.ts","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAoB,MAAM,YAAY,CAAC;AAKlF,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;CAQjC,CAAC;AAGF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,gBAAqB,GAC7B,WAAW,EAAE,CAgFf"}
@@ -141,7 +141,6 @@ function elementToMessages(element, formatter) {
141
141
  }
142
142
  case 'material': {
143
143
  // Format material with clear structure
144
- const materialContent = contentToString(element.content);
145
144
  const materialLines = [`Material: ${element.title}`];
146
145
  if (element.id) {
147
146
  materialLines.push(`ID: ${element.id}`);
@@ -149,6 +148,23 @@ function elementToMessages(element, formatter) {
149
148
  if (element.usage != null) {
150
149
  materialLines.push(`Usage: ${element.usage} tokens`);
151
150
  }
151
+ // Keep image attachments on materials so VLM callers (including the
152
+ // extract runtime) can discover and pass them to mlx-vlm. Text-only
153
+ // material formatting remains byte-for-byte compatible.
154
+ if (hasImageAttachment(element.content)) {
155
+ const imageAttachments = element.content.filter((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
156
+ return [{
157
+ role: 'system',
158
+ content: [
159
+ {
160
+ type: 'text',
161
+ text: `${materialLines.join('\n')}\n\n${contentToString(element.content)}`,
162
+ },
163
+ ...imageAttachments,
164
+ ],
165
+ }];
166
+ }
167
+ const materialContent = contentToString(element.content);
152
168
  materialLines.push('', materialContent);
153
169
  return [{
154
170
  role: 'system',
@@ -157,7 +173,6 @@ function elementToMessages(element, formatter) {
157
173
  }
158
174
  case 'chunk': {
159
175
  // Format chunk with partOf, index, and total
160
- const chunkContent = contentToString(element.content);
161
176
  // Format header based on available information
162
177
  let chunkHeader;
163
178
  if (element.index !== undefined && element.total !== undefined) {
@@ -169,6 +184,17 @@ function elementToMessages(element, formatter) {
169
184
  else {
170
185
  chunkHeader = `Part of ${element.partOf}:`;
171
186
  }
187
+ if (hasImageAttachment(element.content)) {
188
+ const imageAttachments = element.content.filter((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
189
+ return [{
190
+ role: 'system',
191
+ content: [
192
+ { type: 'text', text: `${chunkHeader}\n\n${contentToString(element.content)}` },
193
+ ...imageAttachments,
194
+ ],
195
+ }];
196
+ }
197
+ const chunkContent = contentToString(element.content);
172
198
  return [{
173
199
  role: 'system',
174
200
  content: `${chunkHeader}\n\n${chunkContent}`
@@ -192,4 +218,7 @@ function elementToMessages(element, formatter) {
192
218
  }
193
219
  }
194
220
  }
221
+ function hasImageAttachment(content) {
222
+ return Array.isArray(content) && content.some((attachment) => attachment.type === 'image_url' && attachment.image_url?.url != null);
223
+ }
195
224
  //# sourceMappingURL=converter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,iCAAiC;AACjC,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAExF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ,EAAE,yJAAyJ;IACnK,mBAAmB,EAAE;QACnB,YAAY,EAAE,mFAAmF;QACjG,IAAI,EAAE,qGAAqG;QAC3G,MAAM,EAAE,gDAAgD;KACzD;IACD,iBAAiB,EAAE,kFAAkF;CACtG,CAAC;AAGF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAsB,EACtB,UAA4B,EAAE;IAE9B,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,EAAE,QAAQ,EAAE,mBAAmB,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAC9F,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAErE,4CAA4C;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;IACL,CAAC;IAED,+BAA+B;IAC/B,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,sCAAsC;QACtC,MAAM,kBAAkB,GAAG,mBAAmB,EAAE,YAAY;YAC1D,CAAC,CAAC,qBAAqB,mBAAmB,CAAC,YAAY,EAAE;YACzD,CAAC,CAAC,gBAAgB,CAAC;QACrB,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;QAEH,oCAAoC;QACpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YAC1C,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1D,CAAC;IAEH,CAAC;IAED,uBAAuB;IACvB,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1C,sCAAsC;QACtC,MAAM,UAAU,GAAG,mBAAmB,EAAE,IAAI;YAC1C,CAAC,CAAC,aAAa,mBAAmB,CAAC,IAAI,EAAE;YACzC,CAAC,CAAC,QAAQ,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,UAAU;SACpB,CAAC,CAAC;QAEH,oCAAoC;QACpC,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAClC,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,qEAAqE;IACrE,0EAA0E;IAC1E,+CAA+C;IAC/C,MAAM,YAAY,GAAG,OAAO,CAAC,yBAAyB,KAAK,KAAK,CAAC;IACjE,MAAM,iBAAiB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3D,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,YAAY,CAAC;IAExD,IAAI,YAAY,IAAI,iBAAiB,IAAI,eAAe,EAAE,CAAC;QACzD,MAAM,YAAY,GAAG,mBAAmB,EAAE,MAAM;YAC9C,CAAC,CAAC,eAAe,mBAAmB,CAAC,MAAM,EAAE;YAC7C,CAAC,CAAC,UAAU,CAAC;QACf,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,YAAY;SACtB,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7E,QAAQ,CAAC,IAAI,CAAC;gBACZ,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,wBAAwB,qBAAqB,CAAC,iBAAiB,gCAAgC,aAAa,UAAU;aAChI,CAAC,CAAC;QACL,CAAC;QAED,IAAI,iBAAiB,EAAE,CAAC;YACtB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAO,EAAE,CAAC;gBACrC,QAAQ,CAAC,IAAI,CAAC,GAAG,iBAAiB,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CAAC,OAAgB,EAAE,SAA2B;IACtE,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,OAAO,CAAC,OAAO;iBACzB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,2BAA2B;YAC3B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,OAAO,CAAC;wBACN,IAAI,EAAE,MAAe;wBACrB,UAAU,EAAE,OAAO,CAAC,UAAU;wBAC9B,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,IAAI,EAAE,OAAO,CAAC,IAAI;wBAClB,KAAK,EAAE,OAAO,CAAC,KAAK;qBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7D,uDAAuD;gBACvD,OAAO,CAAC;wBACN,IAAI,EAAE,WAAoB;wBAC1B,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC;wBACzC,SAAS,EAAE,OAAO,CAAC,SAAS;qBAC7B,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,2EAA2E;gBAC3E,OAAO,CAAC;wBACN,IAAI,EAAE,OAAO,CAAC,IAAuC;wBACrD,OAAO,EAAE,OAAO,CAAC,OAAO;qBACzB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,iDAAiD;YACjD,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,YAAY,CAAC,CAAC,CAAC;YAClB,oDAAoD;YACpD,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;iBACnC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,uCAAuC;YACvC,MAAM,eAAe,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACzD,MAAM,aAAa,GAAa,CAAC,aAAa,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;YAC/D,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;gBACf,aAAa,CAAC,IAAI,CAAC,OAAO,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,CAAC;YACD,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,EAAE,CAAC;gBAC1B,aAAa,CAAC,IAAI,CAAC,UAAU,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC;YACvD,CAAC;YACD,aAAa,CAAC,IAAI,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YAExC,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;iBAClC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,6CAA6C;YAC7C,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAEtD,+CAA+C;YAC/C,IAAI,WAAmB,CAAC;YACxB,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/D,WAAW,GAAG,SAAS,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;YAChF,CAAC;iBAAM,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBACvC,WAAW,GAAG,SAAS,OAAO,CAAC,KAAK,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,WAAW,OAAO,CAAC,MAAM,GAAG,CAAC;YAC7C,CAAC;YAED,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,GAAG,WAAW,OAAO,YAAY,EAAE;iBAC7C,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,0DAA0D;YAC1D,6FAA6F;YAC7F,MAAM,WAAW,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBACrD,CAAC,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7C,OAAO,CAAC;oBACN,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,wBAAwB,WAAW,EAAE;iBAC/C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,CAAC,CAAC,CAAC;YACR,8BAA8B;YAC9B,MAAM,WAAW,GAAU,OAAO,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,yBAA0B,WAA2C,CAAC,IAAI,EAAE,CAAC,CAAC;QAChG,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,7 @@ export declare class GoogleGenAIDriver implements AIDriver {
40
40
  set defaultOptions(value: Partial<GoogleGenAIQueryOptions>);
41
41
  constructor(config?: GoogleGenAIDriverConfig);
42
42
  private buildPromptPayload;
43
+ private buildCachedPromptPayload;
43
44
  private buildGenerationConfig;
44
45
  private chatMessageToContent;
45
46
  private convertJsonSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"google-genai-driver.d.ts","sourceRoot":"","sources":["../../src/google-genai/google-genai-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAqC,MAAM,aAAa,CAAC;AAIxH,OAAO,KAAK,EAAE,qBAAqB,EAAe,MAAM,wBAAwB,CAAC;AAIjF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAC3C,CAAC;CACH;AAmBD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,eAAe,CAAC,CAAwB;IAEhD,IAAI,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAErD;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,EAEzD;gBAEW,MAAM,GAAE,uBAA4B;YAclC,kBAAkB;IAmDhC,OAAO,CAAC,qBAAqB;IAoD7B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,WAAW,CAAC;IAsEvB;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,YAAY,CAAC;IA2HxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"google-genai-driver.d.ts","sourceRoot":"","sources":["../../src/google-genai/google-genai-driver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAqC,MAAM,aAAa,CAAC;AAIxH,OAAO,KAAK,EAAE,qBAAqB,EAAe,MAAM,wBAAwB,CAAC;AAIjF;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAClD,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;KAC3C,CAAC;CACH;AAmBD;;GAEG;AACH,qBAAa,iBAAkB,YAAW,QAAQ;IAChD,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,eAAe,CAAmC;IAC1D,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,eAAe,CAAC,CAAwB;IAEhD,IAAI,cAAc,IAAI,OAAO,CAAC,uBAAuB,CAAC,CAErD;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,uBAAuB,CAAC,EAEzD;gBAEW,MAAM,GAAE,uBAA4B;YAclC,kBAAkB;IA0ChC,OAAO,CAAC,wBAAwB;IA0BhC,OAAO,CAAC,qBAAqB;IAoD7B,OAAO,CAAC,oBAAoB;IAmC5B,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAoBxB;;OAEG;IACG,KAAK,CACT,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,WAAW,CAAC;IAsEvB;;OAEG;IACG,WAAW,CACf,MAAM,EAAE,cAAc,EACtB,OAAO,CAAC,EAAE,uBAAuB,GAChC,OAAO,CAAC,YAAY,CAAC;IA2HxB;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -48,35 +48,28 @@ export class GoogleGenAIDriver {
48
48
  this.cacheController = config.cacheController;
49
49
  }
50
50
  async buildPromptPayload(prompt, mergedOptions, model) {
51
- if (this.cacheController) {
52
- const partition = partitionPrompt(prompt);
53
- const hasCacheableContent = partition.cacheable.instructions.length > 0 ||
54
- partition.cacheable.data.length > 0 ||
55
- (mergedOptions.tools && mergedOptions.tools.length > 0);
56
- if (hasCacheableContent) {
57
- const handle = await this.cacheController.prepare({
58
- model,
59
- instructions: partition.cacheable.instructions,
60
- data: partition.cacheable.data,
61
- tools: mergedOptions.tools,
62
- readOnly: mergedOptions.cache === 'read-only',
63
- });
64
- const instructionsForRequest = handle.includes.instructions
65
- ? partition.volatile.instructions
66
- : [...partition.cacheable.instructions, ...partition.volatile.instructions];
67
- const uncachedInstructionParts = instructionsForRequest.length > 0
68
- ? instructionsForRequest.map(el => elementToPart(el))
69
- : undefined;
70
- const dataForRequest = handle.includes.dataElementCount >= partition.cacheable.data.length
71
- ? partition.volatile.data
72
- : [...partition.cacheable.data, ...partition.volatile.data];
73
- const volatileElements = [...dataForRequest, ...partition.volatile.output];
74
- const contents = volatileElements.length > 0
75
- ? mergeToolResultContents(volatileElements.map(el => elementToContent(el)))
76
- : [{ parts: [{ text: 'Please process according to the instructions.' }] }];
77
- return { systemInstructionParts: uncachedInstructionParts, contents, cacheHandle: handle };
51
+ const partition = partitionPrompt(prompt);
52
+ const hasCacheableContent = partition.cacheable.instructions.length > 0 ||
53
+ partition.cacheable.data.length > 0 ||
54
+ (mergedOptions.tools && mergedOptions.tools.length > 0);
55
+ // A handle prepared by a caller (for example, an extract session) is the
56
+ // source of truth. In particular, do not call prepare() again when the
57
+ // caller also sets cache: false to opt out of driver-side preparation.
58
+ if (mergedOptions.cacheHandle) {
59
+ if (mergedOptions.cacheHandle.ref) {
60
+ return this.buildCachedPromptPayload(partition, mergedOptions.cacheHandle);
78
61
  }
79
62
  }
63
+ else if (this.cacheController && mergedOptions.cache !== false && hasCacheableContent) {
64
+ const handle = await this.cacheController.prepare({
65
+ model,
66
+ instructions: partition.cacheable.instructions,
67
+ data: partition.cacheable.data,
68
+ tools: mergedOptions.tools,
69
+ readOnly: mergedOptions.cache === 'read-only',
70
+ });
71
+ return this.buildCachedPromptPayload(partition, handle);
72
+ }
80
73
  const systemInstructionParts = prompt.instructions?.map(el => elementToPart(el));
81
74
  const allDataElements = [...(prompt.data || []), ...(prompt.output || [])];
82
75
  const contents = allDataElements.length > 0
@@ -84,6 +77,22 @@ export class GoogleGenAIDriver {
84
77
  : [{ parts: [{ text: 'Please process according to the instructions.' }] }];
85
78
  return { systemInstructionParts, contents, cacheHandle: null };
86
79
  }
80
+ buildCachedPromptPayload(partition, handle) {
81
+ const instructionsForRequest = handle.includes.instructions
82
+ ? partition.volatile.instructions
83
+ : [...partition.cacheable.instructions, ...partition.volatile.instructions];
84
+ const uncachedInstructionParts = instructionsForRequest.length > 0
85
+ ? instructionsForRequest.map(el => elementToPart(el))
86
+ : undefined;
87
+ const dataForRequest = handle.includes.dataElementCount >= partition.cacheable.data.length
88
+ ? partition.volatile.data
89
+ : [...partition.cacheable.data, ...partition.volatile.data];
90
+ const volatileElements = [...dataForRequest, ...partition.volatile.output];
91
+ const contents = volatileElements.length > 0
92
+ ? mergeToolResultContents(volatileElements.map(el => elementToContent(el)))
93
+ : [{ parts: [{ text: 'Please process according to the instructions.' }] }];
94
+ return { systemInstructionParts: uncachedInstructionParts, contents, cacheHandle: handle };
95
+ }
87
96
  buildGenerationConfig(mergedOptions, cacheHandle, systemInstructionParts, prompt) {
88
97
  const config = {
89
98
  temperature: mergedOptions.temperature ?? this.defaultTemperature,