@modular-prompt/driver 0.16.0 → 0.17.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 (192) hide show
  1. package/README.md +93 -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.map +1 -1
  5. package/dist/driver-registry/config-based-factory.js +6 -0
  6. package/dist/driver-registry/config-based-factory.js.map +1 -1
  7. package/dist/driver-registry/factory-helper.d.ts.map +1 -1
  8. package/dist/driver-registry/factory-helper.js +9 -2
  9. package/dist/driver-registry/factory-helper.js.map +1 -1
  10. package/dist/driver-registry/index.d.ts +1 -1
  11. package/dist/driver-registry/index.d.ts.map +1 -1
  12. package/dist/driver-registry/types.d.ts +15 -1
  13. package/dist/driver-registry/types.d.ts.map +1 -1
  14. package/dist/formatter/converter.d.ts.map +1 -1
  15. package/dist/formatter/converter.js +31 -2
  16. package/dist/formatter/converter.js.map +1 -1
  17. package/dist/index.d.ts +5 -3
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +5 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/local-inference/adapters.d.ts +6 -0
  22. package/dist/local-inference/adapters.d.ts.map +1 -1
  23. package/dist/local-inference/driver.d.ts.map +1 -1
  24. package/dist/local-inference/driver.js +45 -24
  25. package/dist/local-inference/driver.js.map +1 -1
  26. package/dist/local-inference/process-client.d.ts +4 -2
  27. package/dist/local-inference/process-client.d.ts.map +1 -1
  28. package/dist/local-inference/process-client.js +24 -8
  29. package/dist/local-inference/process-client.js.map +1 -1
  30. package/dist/local-inference/process-communication.d.ts +9 -2
  31. package/dist/local-inference/process-communication.d.ts.map +1 -1
  32. package/dist/local-inference/process-communication.js +37 -5
  33. package/dist/local-inference/process-communication.js.map +1 -1
  34. package/dist/local-inference/protocol.d.ts +4 -0
  35. package/dist/local-inference/protocol.d.ts.map +1 -1
  36. package/dist/local-inference/request-queue.d.ts +1 -1
  37. package/dist/local-inference/request-queue.d.ts.map +1 -1
  38. package/dist/local-inference/request-queue.js +26 -7
  39. package/dist/local-inference/request-queue.js.map +1 -1
  40. package/dist/local-inference/stream-utils.d.ts +6 -0
  41. package/dist/local-inference/stream-utils.d.ts.map +1 -1
  42. package/dist/local-inference/stream-utils.js.map +1 -1
  43. package/dist/mlx-ml/mlx-cache-controller.d.ts +9 -0
  44. package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
  45. package/dist/mlx-ml/mlx-cache-controller.js +158 -33
  46. package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
  47. package/dist/mlx-ml/mlx-cache-support.d.ts +2 -2
  48. package/dist/mlx-ml/mlx-cache-support.d.ts.map +1 -1
  49. package/dist/mlx-ml/mlx-cache-support.js +8 -3
  50. package/dist/mlx-ml/mlx-cache-support.js.map +1 -1
  51. package/dist/mlx-ml/mlx-driver.d.ts +0 -1
  52. package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
  53. package/dist/mlx-ml/mlx-driver.js +1 -8
  54. package/dist/mlx-ml/mlx-driver.js.map +1 -1
  55. package/dist/mlx-ml/process/index.d.ts +1 -1
  56. package/dist/mlx-ml/process/index.d.ts.map +1 -1
  57. package/dist/mlx-ml/process/index.js +2 -2
  58. package/dist/mlx-ml/process/index.js.map +1 -1
  59. package/dist/models-config/index.d.ts +1 -1
  60. package/dist/models-config/index.d.ts.map +1 -1
  61. package/dist/models-config/index.js +1 -1
  62. package/dist/models-config/index.js.map +1 -1
  63. package/dist/models-config/resolve.d.ts +9 -1
  64. package/dist/models-config/resolve.d.ts.map +1 -1
  65. package/dist/models-config/resolve.js +94 -2
  66. package/dist/models-config/resolve.js.map +1 -1
  67. package/dist/models-config/types.d.ts +3 -1
  68. package/dist/models-config/types.d.ts.map +1 -1
  69. package/dist/pytorch/process/index.d.ts +4 -2
  70. package/dist/pytorch/process/index.d.ts.map +1 -1
  71. package/dist/pytorch/process/index.js +24 -7
  72. package/dist/pytorch/process/index.js.map +1 -1
  73. package/dist/pytorch/pytorch-cache-controller.d.ts +84 -0
  74. package/dist/pytorch/pytorch-cache-controller.d.ts.map +1 -0
  75. package/dist/pytorch/pytorch-cache-controller.js +742 -0
  76. package/dist/pytorch/pytorch-cache-controller.js.map +1 -0
  77. package/dist/pytorch/pytorch-cache-support.d.ts +23 -0
  78. package/dist/pytorch/pytorch-cache-support.d.ts.map +1 -0
  79. package/dist/pytorch/pytorch-cache-support.js +47 -0
  80. package/dist/pytorch/pytorch-cache-support.js.map +1 -0
  81. package/dist/pytorch/pytorch-driver.d.ts +8 -1
  82. package/dist/pytorch/pytorch-driver.d.ts.map +1 -1
  83. package/dist/pytorch/pytorch-driver.js +40 -0
  84. package/dist/pytorch/pytorch-driver.js.map +1 -1
  85. package/dist/runtime/check.d.ts.map +1 -1
  86. package/dist/runtime/check.js +8 -6
  87. package/dist/runtime/check.js.map +1 -1
  88. package/dist/runtime/index.d.ts +2 -2
  89. package/dist/runtime/index.d.ts.map +1 -1
  90. package/dist/runtime/index.js +2 -2
  91. package/dist/runtime/index.js.map +1 -1
  92. package/dist/runtime/manifest-core.d.mts +1 -0
  93. package/dist/runtime/manifest-core.mjs +1 -0
  94. package/dist/runtime/manifest-core.mjs.map +1 -1
  95. package/dist/runtime/manifest.d.ts +2 -0
  96. package/dist/runtime/manifest.d.ts.map +1 -1
  97. package/dist/runtime/manifest.js.map +1 -1
  98. package/dist/runtime/paths-core.d.mts +15 -1
  99. package/dist/runtime/paths-core.d.mts.map +1 -1
  100. package/dist/runtime/paths-core.mjs +50 -5
  101. package/dist/runtime/paths-core.mjs.map +1 -1
  102. package/dist/runtime/paths.d.ts +2 -2
  103. package/dist/runtime/paths.d.ts.map +1 -1
  104. package/dist/runtime/paths.js +2 -2
  105. package/dist/runtime/paths.js.map +1 -1
  106. package/dist/runtime/pytorch-template-core.d.mts +11 -0
  107. package/dist/runtime/pytorch-template-core.d.mts.map +1 -0
  108. package/dist/runtime/pytorch-template-core.mjs +54 -0
  109. package/dist/runtime/pytorch-template-core.mjs.map +1 -0
  110. package/dist/runtime/setup-commands-core.d.mts +3 -0
  111. package/dist/runtime/setup-commands-core.d.mts.map +1 -1
  112. package/dist/runtime/setup-commands-core.mjs +4 -0
  113. package/dist/runtime/setup-commands-core.mjs.map +1 -1
  114. package/dist/runtime/setup-commands.d.ts +1 -1
  115. package/dist/runtime/setup-commands.d.ts.map +1 -1
  116. package/dist/runtime/setup-commands.js +1 -1
  117. package/dist/runtime/setup-commands.js.map +1 -1
  118. package/docs/DRIVER_API.md +455 -0
  119. package/docs/LOCAL_MODEL_SETUP.md +765 -0
  120. package/docs/mlx-api-selection.md +301 -0
  121. package/package.json +9 -5
  122. package/scripts/runtime-cli.bin.test.ts +142 -0
  123. package/scripts/runtime-cli.js +305 -35
  124. package/scripts/runtime-cli.test.ts +163 -0
  125. package/src/mlx-ml/python/__main__.py +1 -1
  126. package/src/mlx-ml/python/backends/base.py +88 -18
  127. package/src/mlx-ml/python/backends/mlx_lm.py +28 -3
  128. package/src/mlx-ml/python/backends/mlx_vlm.py +679 -2
  129. package/src/mlx-ml/python/handlers/cache.py +4 -0
  130. package/src/mlx-ml/python/handlers/generate.py +33 -10
  131. package/src/mlx-ml/python/handlers/tokenize.py +1 -4
  132. package/src/mlx-ml/python/pyproject.toml +1 -1
  133. package/src/mlx-ml/python/server.py +2 -0
  134. package/src/mlx-ml/python/uv.lock +8 -8
  135. package/src/pytorch/templates/cpu-minimal/backends/base.py +139 -0
  136. package/src/pytorch/templates/cpu-minimal/backends/transformers_lm.py +1167 -0
  137. package/src/pytorch/{python → templates/cpu-minimal}/handlers/__init__.py +1 -0
  138. package/src/pytorch/templates/cpu-minimal/handlers/cache.py +88 -0
  139. package/src/pytorch/templates/cpu-minimal/handlers/generate.py +157 -0
  140. package/src/pytorch/{python → templates/cpu-minimal}/pyproject.toml +2 -2
  141. package/src/pytorch/{python → templates/cpu-minimal}/server.py +20 -2
  142. package/src/pytorch/templates/cpu-minimal/tests/test_cache_handler.py +284 -0
  143. package/src/pytorch/templates/cpu-minimal/tests/test_capabilities.py +14 -0
  144. package/src/pytorch/templates/cpu-minimal/tests/test_server.py +141 -0
  145. package/src/pytorch/templates/cpu-minimal/tests/test_transformers_errors.py +89 -0
  146. package/src/pytorch/templates/cpu-minimal/tests/test_transformers_lm_cache.py +554 -0
  147. package/src/pytorch/templates/cpu-minimal/utils/__init__.py +0 -0
  148. package/src/pytorch/{python → templates/cpu-minimal}/utils/token_utils.py +2 -2
  149. package/src/pytorch/templates/cpu-minimal/utils/transformers_errors.py +54 -0
  150. package/src/pytorch/{python → templates/cpu-minimal}/uv.lock +149 -109
  151. package/src/pytorch/templates/cuda/__main__.py +19 -0
  152. package/src/pytorch/templates/cuda/backends/__init__.py +3 -0
  153. package/src/pytorch/{python → templates/cuda}/backends/base.py +54 -6
  154. package/src/pytorch/templates/cuda/backends/transformers_lm.py +379 -0
  155. package/src/pytorch/templates/cuda/handlers/__init__.py +7 -0
  156. package/src/pytorch/templates/cuda/handlers/cache.py +93 -0
  157. package/src/pytorch/templates/cuda/handlers/cancel.py +53 -0
  158. package/src/pytorch/templates/cuda/handlers/capabilities.py +6 -0
  159. package/src/pytorch/templates/cuda/handlers/completion.py +15 -0
  160. package/src/pytorch/templates/cuda/handlers/format_test.py +70 -0
  161. package/src/pytorch/templates/cuda/handlers/generate.py +152 -0
  162. package/src/pytorch/templates/cuda/handlers/render.py +40 -0
  163. package/src/pytorch/templates/cuda/handlers/tokenize.py +63 -0
  164. package/src/pytorch/templates/cuda/pyproject.toml +37 -0
  165. package/src/pytorch/templates/cuda/server.py +158 -0
  166. package/src/pytorch/templates/cuda/tests/__init__.py +0 -0
  167. package/src/pytorch/templates/cuda/tests/test_cache_handler.py +207 -0
  168. package/src/pytorch/templates/cuda/tests/test_capabilities.py +14 -0
  169. package/src/pytorch/templates/cuda/tests/test_server.py +145 -0
  170. package/src/pytorch/templates/cuda/tests/test_transformers_errors.py +89 -0
  171. package/src/pytorch/templates/cuda/tests/test_transformers_lm_cache.py +288 -0
  172. package/src/pytorch/templates/cuda/utils/__init__.py +0 -0
  173. package/src/pytorch/templates/cuda/utils/chat_template_constraints.py +164 -0
  174. package/src/pytorch/templates/cuda/utils/prompt_builder.py +54 -0
  175. package/src/pytorch/templates/cuda/utils/template_render.py +80 -0
  176. package/src/pytorch/templates/cuda/utils/token_utils.py +376 -0
  177. package/src/pytorch/templates/cuda/utils/transformers_errors.py +54 -0
  178. package/src/pytorch/templates/cuda/uv.lock +734 -0
  179. package/src/pytorch/python/backends/transformers_lm.py +0 -127
  180. package/src/pytorch/python/handlers/generate.py +0 -68
  181. /package/src/pytorch/{python → templates/cpu-minimal}/__main__.py +0 -0
  182. /package/src/pytorch/{python → templates/cpu-minimal}/backends/__init__.py +0 -0
  183. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/cancel.py +0 -0
  184. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/capabilities.py +0 -0
  185. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/completion.py +0 -0
  186. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/format_test.py +0 -0
  187. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/render.py +0 -0
  188. /package/src/pytorch/{python → templates/cpu-minimal}/handlers/tokenize.py +0 -0
  189. /package/src/pytorch/{python/utils → templates/cpu-minimal/tests}/__init__.py +0 -0
  190. /package/src/pytorch/{python → templates/cpu-minimal}/utils/chat_template_constraints.py +0 -0
  191. /package/src/pytorch/{python → templates/cpu-minimal}/utils/prompt_builder.py +0 -0
  192. /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,71 @@ if (result.logEntries) {
71
71
 
72
72
  各ドライバーの詳細な設定・オプションは `skills/driver-usage/SKILL.md` を参照。
73
73
 
74
+ ### PyTorchProcess の KV キャッシュ
75
+
76
+ `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 ファイルを作成しません。
77
+
78
+ `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 は無効です。
79
+
80
+ ```typescript
81
+ import {
82
+ PyTorchCacheController,
83
+ PyTorchDriver,
84
+ } from '@modular-prompt/driver';
85
+
86
+ const driver = new PyTorchDriver({
87
+ model: 'your-transformers-model',
88
+ cacheController: new PyTorchCacheController({
89
+ cacheDir: '/path/to/pytorch-cache',
90
+ }),
91
+ });
92
+
93
+ const result = await driver.query(prompt, { cache: true });
94
+ console.log(result.usage?.cacheReadTokens);
95
+ console.log(result.usage?.cacheWriteTokens);
96
+ await driver.close();
97
+ ```
98
+
99
+ ```typescript
100
+ import { PyTorchProcess } from '@modular-prompt/driver';
101
+ import type { InferenceMessage } from '@modular-prompt/driver';
102
+
103
+ const process = new PyTorchProcess('your-transformers-model');
104
+ const prefixMessages: InferenceMessage[] = [
105
+ { role: 'system', content: 'You are a helpful assistant.' },
106
+ { role: 'user', content: 'Keep this conversation context.' },
107
+ ];
108
+ const queryMessages: InferenceMessage[] = [
109
+ ...prefixMessages,
110
+ { role: 'user', content: 'Answer the next question.' },
111
+ ];
112
+
113
+ try {
114
+ const cache = await process.cachePrefill('memory://conversation-prefix', prefixMessages);
115
+ const rendered = await process.render(queryMessages);
116
+ if (rendered.error || rendered.formatted_prompt == null) {
117
+ throw new Error(rendered.error ?? 'Failed to render the prompt');
118
+ }
119
+
120
+ const stream = await process.generate(
121
+ rendered.formatted_prompt,
122
+ { max_tokens: 64, temperature: 0 },
123
+ undefined,
124
+ undefined,
125
+ cache.cache_path,
126
+ );
127
+ for await (const chunk of stream) {
128
+ process.stdout.write(chunk.toString());
129
+ }
130
+ } finally {
131
+ await process.exit();
132
+ }
133
+ ```
134
+
135
+ `cachePrefill()` の結果には prefill した `token_count` と `cache_write_tokens` が含まれ、同じ参照を最初に使う `generate()` の LIP meta にも write 数が一度だけ通知されます。キャッシュを使った生成では `cache_read_tokens` と `cache_write_tokens`、実際に参照を読み込めたかどうかは `cache_loaded` で確認できます。
136
+
137
+ 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` として報告します。
138
+
74
139
  ## 主な機能
75
140
 
76
141
  - **統一インターフェース**: `query()` / `streamQuery()` / `close()` の3メソッド
@@ -117,7 +182,7 @@ const profileOverlay = {
117
182
  const ai = AIService.fromMergedConfig(bundled, profileOverlay);
118
183
  const models = ai.modelsConfig;
119
184
 
120
- const spec = resolveModelName('local-chat', models, () => 'mlx');
185
+ const spec = resolveModelName('local-chat', models);
121
186
  const fallback = resolveDefaultModelFromConfig(models);
122
187
  const driver = await ai.createDriver(spec);
123
188
  ```
@@ -126,7 +191,8 @@ const driver = await ai.createDriver(spec);
126
191
  - `AIService.fromModelsConfig({ source })` — `source: 'merge'`(デフォルト)で user yaml を読み込み、`source: 'overlay'` で無視
127
192
  - `mode: 'merge' | 'override'` — models セクションの浅いマージ / 置換
128
193
  - デフォルト model は `models.default` alias、なければ models の先頭エントリから導出
129
- - `defaults` / `runtime` による暗黙解決は廃止(YAML に残っていても警告のみ)
194
+ - `defaults` によるモデルの暗黙解決は廃止(YAML に残っていても警告のみ)。`runtime` はモデル決定後の provider 推論に限って利用する
195
+ - 生 model ID は `resolveModelName()` が merged models の model 完全一致エントリ、`runtime` / `metadata.runtime`、既知のモデル名パターンの順で provider を推論する。推論できない場合は `--provider <provider>` などで明示指定する
130
196
 
131
197
  simple-chat では profile の `modelsConfig` に inline の `models` / `drivers` を載せ、`workflow.models.default.ref` で alias 参照できます。`ref` に未知の alias を指定した場合は **エラーで停止**します。
132
198
 
@@ -137,7 +203,9 @@ simple-chat では profile の `modelsConfig` に inline の `models` / `drivers
137
203
  ローカル統合テストや手元試行で使うモデルは、通常設定と分けて
138
204
  `~/.modular-prompt/models.testing.yaml` に置けます。`MODULAR_PROMPT_HOME` を設定している場合は、そのディレクトリ配下を使用します。プロジェクト配下の設定ファイルは暗黙探索しません。
139
205
 
140
- `models.default` には cache 対応の text-only LM を指定してください。MLX VLM は prompt caching が無効になるため、cache 統合テストには使用できません。
206
+ `models.default` には cache 対応の text-only LM または cache を使う MLX VLM を指定できます。MLX VLM の cache は `backend: vlm`(または `auto`)で起動し、画像なしリクエストは `mlx-vlm==0.7.0` の `exact_cache_v1`、画像付きリクエストは専用の `vision_cache_v1` namespace としてディスクへ保存されます。画像付き cache は text-only VLM / LM の cache(LM の `.safetensors.zip` を含む)とは相互利用できません。
207
+
208
+ MLX VLM の画像入力は local file path のみ対応します。URL / data URI の loader は実装していないため、画像付き cache 経路でも利用できません。
141
209
 
142
210
  ```yaml
143
211
  models:
@@ -155,10 +223,10 @@ models:
155
223
  マージ順は **base → `models.yaml` → `models.testing.yaml` → overlay** です。Vitest 実行中または `NODE_ENV=test` では testing 設定が自動で追加されます。CLI などで明示的に使う場合は次の環境変数を指定します。
156
224
 
157
225
  ```bash
158
- MODULAR_PROMPT_MODELS_PROFILE=testing modular-extract create meeting -m default docs/notes.txt
226
+ MODULAR_PROMPT_MODELS_PROFILE=testing modular-prompt-extract create meeting -m default docs/notes.txt
159
227
  ```
160
228
 
161
- ライブラリからは `resolveModelsConfig({ profile: 'testing' })` または `AIService.fromModelsConfig({ profile: 'testing' })` を使用できます。統合テストはこの設定から MLX/API ドライバーを導出し、設定が無い場合は従来の `test-drivers.yaml` にフォールバックします。サンプルは [`models.testing.yaml.example`](./test/integration/models.testing.yaml.example) を参照してください。
229
+ ライブラリからは `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
230
 
163
231
 
164
232
  ```typescript
@@ -186,7 +254,7 @@ const final = await result;
186
254
  - キャンセル前の部分応答は `result.content` に残ります
187
255
  - 他ドライバーは `signal` を無視します(未実装)
188
256
 
189
- 詳細は [Driver APIリファレンス](../../docs/DRIVER_API.md#推論キャンセルabortsignal) を参照。
257
+ 詳細は [Driver APIリファレンス](./docs/DRIVER_API.md#推論キャンセルabortsignal) を参照。
190
258
 
191
259
  ## トークン使用量(usage)
192
260
 
@@ -197,7 +265,7 @@ for await (const _ of stream) { /* consume */ }
197
265
  const final = await result;
198
266
  if (final.usage) {
199
267
  console.log(final.usage.promptTokens, final.usage.completionTokens);
200
- console.log(final.usage.cacheReadTokens); // MLX + KV キャッシュ時
268
+ console.log(final.usage.cacheReadTokens); // MLX/PyTorch + KV キャッシュ時
201
269
  console.log(final.usage.cacheWriteTokens); // 同一クエリ内の新規 prefill 時
202
270
  }
203
271
  ```
@@ -262,7 +330,7 @@ modular-prompt-runtime setup mlx
262
330
  VLM(Vision Language Model)対応モデルを画像なしのテキストのみで使用する場合は、`textOnly`オプションを使用します。
263
331
 
264
332
  ```typescript
265
- import { MlxDriver } from '@modular-prompt/driver';
333
+ import { MlxDriver, MlxCacheController } from '@modular-prompt/driver';
266
334
 
267
335
  const driver = new MlxDriver({
268
336
  model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
@@ -281,6 +349,21 @@ await driver.close();
281
349
 
282
350
  `textOnly: true`を指定すると、VLM対応モデルを`mlx-lm`(高速起動)で起動し、画像処理なしのテキストのみで使用できます。
283
351
 
352
+ `textOnly: true` は互換性のために VLM モデルを LM backend として起動する指定です。VLM backend 自体を使用して text-only cache を永続化する場合は、`backend: 'vlm'`(省略時の `auto` でも可)を指定し、cache controller を共有します。
353
+
354
+ ```typescript
355
+ const cacheController = new MlxCacheController({
356
+ cacheDir: '/path/to/cache',
357
+ });
358
+ const driver = new MlxDriver({
359
+ model: 'mlx-community/Qwen2-VL-2B-Instruct-4bit',
360
+ backend: 'vlm',
361
+ cacheController,
362
+ });
363
+ ```
364
+
365
+ 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 も記録します。VLM の incremental prefill と LM archive との互換性は提供しません。画像 feature tensor 自体は process-local の `VisionFeatureCache` に保持し、再起動後は再構築します。Pinned `mlx-vlm==0.7.0` の PIL key は bytes のみですが、MLX backend は mode・寸法・bytes・画像列を含む wrapper key を upstream cache に渡して衝突を防ぎます。
366
+
284
367
  #### 特殊トークンの確認
285
368
 
286
369
  モデルがサポートする特殊トークンを確認できます:
@@ -334,7 +417,7 @@ uv --project . run python __main__.py \
334
417
 
335
418
  前提条件: Python 3.10以上、CUDA対応GPU、Linux。
336
419
 
337
- 詳細は [ローカルモデルセットアップガイド](../../docs/LOCAL_MODEL_SETUP.md) を参照してください。
420
+ 詳細は [ローカルモデルセットアップガイド](./docs/LOCAL_MODEL_SETUP.md) を参照してください。
338
421
 
339
422
  ## Skills(Claude Code向け)
340
423
 
@@ -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"}
@@ -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;AAqBpB;;;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,CAsHN"}
@@ -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
@@ -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":"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"}
@@ -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":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../src/formatter/converter.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -3,6 +3,7 @@ export type { AIDriver, ChatMessage, StandardChatMessage, AssistantToolCallMessa
3
3
  export { hasToolCalls, isToolResult } from './types.js';
4
4
  export type { PromptCacheController, CachePrepareParams, CacheHandle } from './cache-controller.js';
5
5
  export { isElementCacheable, partitionPrompt, type PromptPartition } from './cache-utils.js';
6
+ export { extractImagePaths } from './content-utils.js';
6
7
  export { QueryLogger } from './query-logger.js';
7
8
  export { TestDriver, type TestDriverOptions, type ResponseProvider } from './test-driver.js';
8
9
  export { EchoDriver, type EchoDriverConfig } from './echo-driver.js';
@@ -18,10 +19,11 @@ export type { MlxMessage, MlxContentPart } from './mlx-ml/types.js';
18
19
  export type { MlxQueryOptions } from './mlx-ml/mlx-options.js';
19
20
  export { PyTorchDriver, type PyTorchDriverConfig, type PyTorchModelCapabilities, } from './pytorch/pytorch-driver.js';
20
21
  export { PyTorchProcess, } from './pytorch/process/index.js';
22
+ export { PyTorchCacheController, } from './pytorch/pytorch-cache-controller.js';
21
23
  export type { PyTorchQueryOptions } from './pytorch/pytorch-options.js';
22
24
  export type { InferenceMethod, InferenceMessage, InferenceCapabilities, InferenceRequest, InferenceChatRequest, InferenceRenderRequest, InferenceRenderResult, InferenceCompletionRequest, InferenceGenerateRequest, InferenceToolDefinition, InferenceFormatTestResult, InferenceTokenizeResult, InferenceCachePrefillResult, } from './local-inference/index.js';
23
25
  export { InferenceProcessClient, type InferenceProcessClientConfig, LocalInferenceDriver, type LocalInferenceDriverConfig, type InferenceProcessPort, type LocalInferenceAdapters, type LocalInferenceCacheSupport, createStreamIterable, extractStreamMeta, META_MARKER, hasMessageElement, } from './local-inference/index.js';
24
- export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, type RuntimeProfile, type RuntimeManifest, } from './runtime/index.js';
26
+ export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchRuntimePythonDir, getPytorchPythonDir, getPytorchTemplateDir, PYTORCH_DEFAULT_VARIANT, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, SYNC_PYTORCH_MONOREPO, SYNC_PYTORCH_CLI, type RuntimeProfile, type RuntimeManifest, } from './runtime/index.js';
25
27
  export { VertexAIDriver, type VertexAIDriverConfig, type VertexAIQueryOptions } from './vertexai/vertexai-driver.js';
26
28
  export { GoogleGenAIDriver, type GoogleGenAIDriverConfig, type GoogleGenAIQueryOptions } from './google-genai/google-genai-driver.js';
27
29
  export { GoogleGenAICacheController, type GoogleGenAICacheControllerConfig } from './google-genai/google-genai-cache-controller.js';
@@ -29,6 +31,6 @@ export type { FormatterOptions, ElementFormatter } from './formatter/types.js';
29
31
  export { DefaultFormatter } from './formatter/formatter.js';
30
32
  export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts, ECHO_SPECIAL_TOKENS } from './formatter/converter.js';
31
33
  export { AIService, DriverRegistry, registerFactories, type SelectionOptions, type ApplicationConfig, type AIServiceModelsOptions, } from './driver-registry/index.js';
32
- export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, } from './driver-registry/index.js';
33
- export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, type ModelsMergeMode, type ModelsConfigSource, type ModelsConfigOptions, type ModelSpecEntry, type ModelsConfig, type ModelReferenceInput, } from './models-config/index.js';
34
+ export type { DriverProvider, DriverCapability, ModelSpec, DriverFactory, MlxBackendMode, MlxModelDriverOptions, PyTorchModelDriverOptions, } from './driver-registry/index.js';
35
+ export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, inferProvider, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, type ModelsMergeMode, type ModelsConfigSource, type ModelsConfigOptions, type ModelSpecEntry, type ModelsConfig, type ModelReferenceInput, } from './models-config/index.js';
34
36
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -2,6 +2,7 @@
2
2
  export { buildQueryUsage, createAbortedStreamResult, isAborted, watchAbortSignal, } from './query-utils.js';
3
3
  export { hasToolCalls, isToolResult } from './types.js';
4
4
  export { isElementCacheable, partitionPrompt } from './cache-utils.js';
5
+ export { extractImagePaths } from './content-utils.js';
5
6
  // Query Logger
6
7
  export { QueryLogger } from './query-logger.js';
7
8
  // Test driver
@@ -25,9 +26,10 @@ export { MlxCacheController, } from './mlx-ml/mlx-cache-controller.js';
25
26
  // PyTorch driver
26
27
  export { PyTorchDriver, } from './pytorch/pytorch-driver.js';
27
28
  export { PyTorchProcess, } from './pytorch/process/index.js';
29
+ export { PyTorchCacheController, } from './pytorch/pytorch-cache-controller.js';
28
30
  export { InferenceProcessClient, LocalInferenceDriver, createStreamIterable, extractStreamMeta, META_MARKER, hasMessageElement, } from './local-inference/index.js';
29
- // Python runtime (MLX venv under ~/.modular-prompt)
30
- export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, } from './runtime/index.js';
31
+ // Python runtimes under ~/.modular-prompt
32
+ export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchRuntimePythonDir, getPytorchPythonDir, getPytorchTemplateDir, PYTORCH_DEFAULT_VARIANT, resolvePackageRoot, resolvePackageRootFromProcessModule, readManifest, writeManifest, RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, SYNC_PYTORCH_MONOREPO, SYNC_PYTORCH_CLI, } from './runtime/index.js';
31
33
  // VertexAI driver
32
34
  export { VertexAIDriver } from './vertexai/vertexai-driver.js';
33
35
  // GoogleGenAI driver
@@ -38,5 +40,5 @@ export { formatPromptAsMessages, formatCompletionPrompt, defaultFormatterTexts,
38
40
  // Driver Registry and AI Service exports
39
41
  export { AIService, DriverRegistry, registerFactories, } from './driver-registry/index.js';
40
42
  // User models.yaml (+ overlay via models-config API)
41
- export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, } from './models-config/index.js';
43
+ export { loadModelsConfigFile, loadUserModelsConfig, resolveModelsConfig, mergeModelsConfig, toApplicationConfig, entryToModelSpec, resolveModelAlias, inferProvider, resolveModelName, resolveDefaultModelFromConfig, resolveModelReference, buildApplicationConfig, registerModelsFromConfig, getModelsConfigPath, getUserModelsConfigPath, getTestingModelsConfigPath, MODELS_CONFIG_FILENAME, TESTING_MODELS_CONFIG_PROFILE, } from './models-config/index.js';
42
44
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,yBAAyB,EACzB,SAAS,EACT,gBAAgB,GAEjB,MAAM,kBAAkB,CAAC;AAoB1B,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AASxD,OAAO,EACL,kBAAkB,EAClB,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAE1B,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,cAAc;AACd,OAAO,EACL,UAAU,EAGX,MAAM,kBAAkB,CAAC;AAE1B,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,kBAAkB,CAAC;AAE1B,gBAAgB;AAChB,OAAO,EACL,YAAY,EAGb,MAAM,2BAA2B,CAAC;AAEnC,gBAAgB;AAChB,OAAO,EACL,YAAY,EAEb,MAAM,2BAA2B,CAAC;AAEnC,cAAc;AACd,OAAO,EACL,UAAU,EAEX,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,WAAW,EACZ,MAAM,wBAAwB,CAAC;AAEhC,mBAAmB;AACnB,OAAO,EACL,eAAe,EAIhB,MAAM,iCAAiC,CAAC;AAEzC,gBAAgB;AAChB,OAAO,EACL,SAAS,EAEV,MAAM,wBAAwB,CAAC;AAEhC,+BAA+B;AAC/B,OAAO,EACL,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EACL,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAW1C,iBAAiB;AACjB,OAAO,EACL,aAAa,GAGd,MAAM,6BAA6B,CAAC;AAErC,OAAO,EACL,cAAc,GACf,MAAM,4BAA4B,CAAC;AAqBpC,OAAO,EACL,sBAAsB,EAEtB,oBAAoB,EAKpB,oBAAoB,EACpB,iBAAiB,EACjB,WAAW,EACX,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAEpC,oDAAoD;AACpD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,EACnC,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAGlB,MAAM,oBAAoB,CAAC;AAE5B,kBAAkB;AAClB,OAAO,EACL,cAAc,EAGf,MAAM,+BAA+B,CAAC;AAEvC,qBAAqB;AACrB,OAAO,EACL,iBAAiB,EAGlB,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACL,0BAA0B,EAE3B,MAAM,iDAAiD,CAAC;AAQzD,OAAO,EACL,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,yCAAyC;AACzC,OAAO,EACL,SAAS,EACT,cAAc,EACd,iBAAiB,GAIlB,MAAM,4BAA4B,CAAC;AAWpC,qDAAqD;AACrD,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,6BAA6B,EAC7B,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,0BAA0B,EAC1B,sBAAsB,EACtB,6BAA6B,GAO9B,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,10 @@ export interface CachePrepareParams {
39
39
  data: CompiledPrompt['data'];
40
40
  tools?: ToolDefinition[];
41
41
  reasoningEffort?: 'low' | 'medium' | 'high';
42
+ /** Image sources belonging to a VLM cacheable prefix. */
43
+ images?: string[];
44
+ /** Image resize limit used when constructing a VLM cache. */
45
+ maxImageSize?: number;
42
46
  readOnly?: boolean;
43
47
  }
44
48
  export interface CachePrepareHandle {
@@ -47,6 +51,8 @@ export interface CachePrepareHandle {
47
51
  }
48
52
  export interface LocalInferenceCacheSupport {
49
53
  bind(process: InferenceProcessPort, formatterOptions: FormatterOptions, preprocess: (messages: InferenceMessage[]) => InferenceMessage[]): Promise<void>;
54
+ /** Configure backend-specific cache storage before bind() is called. */
55
+ setModelKind?(modelKind?: 'lm' | 'vlm'): void;
50
56
  shouldDisableForVlm(modelKind?: 'lm' | 'vlm'): boolean;
51
57
  recordQuery(): void;
52
58
  getGrowthBefore(): number;