@modular-prompt/driver 0.14.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -5
- package/dist/driver-registry/ai-service.d.ts +23 -1
- package/dist/driver-registry/ai-service.d.ts.map +1 -1
- package/dist/driver-registry/ai-service.js +44 -10
- package/dist/driver-registry/ai-service.js.map +1 -1
- package/dist/driver-registry/config-based-factory.d.ts.map +1 -1
- package/dist/driver-registry/config-based-factory.js +20 -3
- package/dist/driver-registry/config-based-factory.js.map +1 -1
- package/dist/driver-registry/factory-helper.d.ts +2 -0
- package/dist/driver-registry/factory-helper.d.ts.map +1 -1
- package/dist/driver-registry/factory-helper.js +22 -3
- package/dist/driver-registry/factory-helper.js.map +1 -1
- package/dist/driver-registry/index.d.ts +2 -2
- package/dist/driver-registry/index.d.ts.map +1 -1
- package/dist/driver-registry/index.js +1 -1
- package/dist/driver-registry/index.js.map +1 -1
- package/dist/driver-registry/registry.d.ts.map +1 -1
- package/dist/driver-registry/registry.js +3 -1
- package/dist/driver-registry/registry.js.map +1 -1
- package/dist/driver-registry/types.d.ts +11 -2
- package/dist/driver-registry/types.d.ts.map +1 -1
- package/dist/index.d.ts +10 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/local-inference/adapters.d.ts +66 -0
- package/dist/local-inference/adapters.d.ts.map +1 -0
- package/dist/local-inference/adapters.js +2 -0
- package/dist/local-inference/adapters.js.map +1 -0
- package/dist/local-inference/driver.d.ts +51 -0
- package/dist/local-inference/driver.d.ts.map +1 -0
- package/dist/local-inference/driver.js +309 -0
- package/dist/local-inference/driver.js.map +1 -0
- package/dist/local-inference/index.d.ts +22 -0
- package/dist/local-inference/index.d.ts.map +1 -0
- package/dist/local-inference/index.js +17 -0
- package/dist/local-inference/index.js.map +1 -0
- package/dist/local-inference/process-client.d.ts +50 -0
- package/dist/local-inference/process-client.d.ts.map +1 -0
- package/dist/local-inference/process-client.js +92 -0
- package/dist/local-inference/process-client.js.map +1 -0
- package/dist/local-inference/process-communication.d.ts +41 -0
- package/dist/local-inference/process-communication.d.ts.map +1 -0
- package/dist/{mlx-ml/process → local-inference}/process-communication.js +25 -61
- package/dist/local-inference/process-communication.js.map +1 -0
- package/dist/local-inference/process-port.d.ts +12 -0
- package/dist/local-inference/process-port.d.ts.map +1 -0
- package/dist/local-inference/process-port.js +2 -0
- package/dist/local-inference/process-port.js.map +1 -0
- package/dist/local-inference/prompt-utils.d.ts +6 -0
- package/dist/local-inference/prompt-utils.d.ts.map +1 -0
- package/dist/local-inference/prompt-utils.js +17 -0
- package/dist/local-inference/prompt-utils.js.map +1 -0
- package/dist/local-inference/protocol.d.ts +192 -0
- package/dist/local-inference/protocol.d.ts.map +1 -0
- package/dist/local-inference/protocol.js +2 -0
- package/dist/local-inference/protocol.js.map +1 -0
- package/dist/local-inference/queue-types.d.ts +54 -0
- package/dist/local-inference/queue-types.d.ts.map +1 -0
- package/dist/local-inference/queue-types.js +2 -0
- package/dist/local-inference/queue-types.js.map +1 -0
- package/dist/local-inference/request-queue.d.ts +36 -0
- package/dist/local-inference/request-queue.d.ts.map +1 -0
- package/dist/{mlx-ml/process/queue.js → local-inference/request-queue.js} +83 -56
- package/dist/local-inference/request-queue.js.map +1 -0
- package/dist/local-inference/stream-utils.d.ts +19 -0
- package/dist/local-inference/stream-utils.d.ts.map +1 -0
- package/dist/local-inference/stream-utils.js +76 -0
- package/dist/local-inference/stream-utils.js.map +1 -0
- package/dist/mlx-ml/mlx-cache-controller.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-cache-controller.js +2 -1
- package/dist/mlx-ml/mlx-cache-controller.js.map +1 -1
- package/dist/mlx-ml/mlx-cache-support.d.ts +23 -0
- package/dist/mlx-ml/mlx-cache-support.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-cache-support.js +45 -0
- package/dist/mlx-ml/mlx-cache-support.js.map +1 -0
- package/dist/mlx-ml/mlx-driver.d.ts +20 -59
- package/dist/mlx-ml/mlx-driver.d.ts.map +1 -1
- package/dist/mlx-ml/mlx-driver.js +86 -460
- package/dist/mlx-ml/mlx-driver.js.map +1 -1
- package/dist/mlx-ml/mlx-local-inference-adapters.d.ts +3 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.js +19 -0
- package/dist/mlx-ml/mlx-local-inference-adapters.js.map +1 -0
- package/dist/mlx-ml/mlx-options.d.ts +19 -0
- package/dist/mlx-ml/mlx-options.d.ts.map +1 -0
- package/dist/mlx-ml/mlx-options.js +30 -0
- package/dist/mlx-ml/mlx-options.js.map +1 -0
- package/dist/mlx-ml/process/index.d.ts +10 -8
- package/dist/mlx-ml/process/index.d.ts.map +1 -1
- package/dist/mlx-ml/process/index.js +73 -54
- package/dist/mlx-ml/process/index.js.map +1 -1
- package/dist/mlx-ml/process/model-specific.d.ts +2 -1
- package/dist/mlx-ml/process/model-specific.d.ts.map +1 -1
- package/dist/mlx-ml/process/model-specific.js.map +1 -1
- package/dist/mlx-ml/process/prompt-builder.d.ts +11 -0
- package/dist/mlx-ml/process/prompt-builder.d.ts.map +1 -0
- package/dist/mlx-ml/process/prompt-builder.js +51 -0
- package/dist/mlx-ml/process/prompt-builder.js.map +1 -0
- package/dist/mlx-ml/process/types.d.ts +15 -183
- package/dist/mlx-ml/process/types.d.ts.map +1 -1
- package/dist/mlx-ml/types.d.ts +2 -45
- package/dist/mlx-ml/types.d.ts.map +1 -1
- package/dist/models-config/index.d.ts +8 -0
- package/dist/models-config/index.d.ts.map +1 -0
- package/dist/models-config/index.js +7 -0
- package/dist/models-config/index.js.map +1 -0
- package/dist/models-config/loader.d.ts +20 -0
- package/dist/models-config/loader.d.ts.map +1 -0
- package/dist/models-config/loader.js +85 -0
- package/dist/models-config/loader.js.map +1 -0
- package/dist/models-config/paths.d.ts +15 -0
- package/dist/models-config/paths.d.ts.map +1 -0
- package/dist/models-config/paths.js +26 -0
- package/dist/models-config/paths.js.map +1 -0
- package/dist/models-config/resolve.d.ts +57 -0
- package/dist/models-config/resolve.d.ts.map +1 -0
- package/dist/models-config/resolve.js +208 -0
- package/dist/models-config/resolve.js.map +1 -0
- package/dist/models-config/types.d.ts +62 -0
- package/dist/models-config/types.d.ts.map +1 -0
- package/dist/models-config/types.js +5 -0
- package/dist/models-config/types.js.map +1 -0
- package/dist/pytorch/process/index.d.ts +35 -0
- package/dist/pytorch/process/index.d.ts.map +1 -0
- package/dist/pytorch/process/index.js +69 -0
- package/dist/pytorch/process/index.js.map +1 -0
- package/dist/pytorch/pytorch-driver.d.ts +35 -0
- package/dist/pytorch/pytorch-driver.d.ts.map +1 -0
- package/dist/pytorch/pytorch-driver.js +48 -0
- package/dist/pytorch/pytorch-driver.js.map +1 -0
- package/dist/pytorch/pytorch-local-inference-adapters.d.ts +3 -0
- package/dist/pytorch/pytorch-local-inference-adapters.d.ts.map +1 -0
- package/dist/pytorch/pytorch-local-inference-adapters.js +19 -0
- package/dist/pytorch/pytorch-local-inference-adapters.js.map +1 -0
- package/dist/pytorch/pytorch-options.d.ts +8 -0
- package/dist/pytorch/pytorch-options.d.ts.map +1 -0
- package/dist/pytorch/pytorch-options.js +21 -0
- package/dist/pytorch/pytorch-options.js.map +1 -0
- package/dist/query-logger.js +1 -1
- package/dist/query-logger.js.map +1 -1
- package/dist/runtime/check.d.ts +10 -0
- package/dist/runtime/check.d.ts.map +1 -0
- package/dist/runtime/check.js +25 -0
- package/dist/runtime/check.js.map +1 -0
- package/dist/runtime/index.d.ts +5 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +5 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/manifest-core.d.mts +27 -0
- package/dist/runtime/manifest-core.d.mts.map +1 -0
- package/dist/runtime/manifest-core.mjs +68 -0
- package/dist/runtime/manifest-core.mjs.map +1 -0
- package/dist/runtime/manifest.d.ts +18 -0
- package/dist/runtime/manifest.d.ts.map +1 -0
- package/dist/runtime/manifest.js +9 -0
- package/dist/runtime/manifest.js.map +1 -0
- package/dist/runtime/paths-core.d.mts +17 -0
- package/dist/runtime/paths-core.d.mts.map +1 -0
- package/dist/runtime/paths-core.mjs +67 -0
- package/dist/runtime/paths-core.mjs.map +1 -0
- package/dist/runtime/paths.d.ts +12 -0
- package/dist/runtime/paths.d.ts.map +1 -0
- package/dist/runtime/paths.js +17 -0
- package/dist/runtime/paths.js.map +1 -0
- package/dist/runtime/setup-commands-core.d.mts +13 -0
- package/dist/runtime/setup-commands-core.d.mts.map +1 -0
- package/dist/runtime/setup-commands-core.mjs +14 -0
- package/dist/runtime/setup-commands-core.mjs.map +1 -0
- package/dist/runtime/setup-commands.d.ts +2 -0
- package/dist/runtime/setup-commands.d.ts.map +1 -0
- package/dist/runtime/setup-commands.js +2 -0
- package/dist/runtime/setup-commands.js.map +1 -0
- package/dist/types.d.ts +11 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +13 -7
- package/scripts/download-model.js +26 -9
- package/scripts/runtime-cli.js +320 -0
- package/src/mlx-ml/python/__main__.py +43 -4
- package/src/mlx-ml/python/backends/cache_archive.py +41 -0
- package/src/mlx-ml/python/backends/mlx_lm.py +17 -1
- package/src/mlx-ml/python/handlers/__init__.py +2 -1
- package/src/mlx-ml/python/handlers/completion.py +3 -27
- package/src/mlx-ml/python/handlers/{chat.py → generate.py} +33 -106
- package/src/mlx-ml/python/handlers/render.py +40 -0
- package/src/mlx-ml/python/pyproject.toml +11 -4
- package/src/mlx-ml/python/server.py +28 -8
- package/src/mlx-ml/python/utils/template_render.py +80 -0
- package/src/mlx-ml/python/utils/token_utils.py +2 -2
- package/src/mlx-ml/python/uv.lock +544 -689
- package/src/pytorch/python/__main__.py +19 -0
- package/src/pytorch/python/backends/__init__.py +3 -0
- package/src/pytorch/python/backends/base.py +84 -0
- package/src/pytorch/python/backends/transformers_lm.py +127 -0
- package/src/pytorch/python/handlers/__init__.py +6 -0
- package/src/pytorch/python/handlers/cancel.py +53 -0
- package/src/pytorch/python/handlers/capabilities.py +6 -0
- package/src/pytorch/python/handlers/completion.py +15 -0
- package/src/pytorch/python/handlers/format_test.py +70 -0
- package/src/pytorch/python/handlers/generate.py +68 -0
- package/src/pytorch/python/handlers/render.py +40 -0
- package/src/pytorch/python/handlers/tokenize.py +63 -0
- package/src/pytorch/python/pyproject.toml +36 -0
- package/src/pytorch/python/server.py +140 -0
- package/src/pytorch/python/utils/__init__.py +0 -0
- package/src/pytorch/python/utils/chat_template_constraints.py +164 -0
- package/src/pytorch/python/utils/prompt_builder.py +54 -0
- package/src/pytorch/python/utils/template_render.py +80 -0
- package/src/pytorch/python/utils/token_utils.py +376 -0
- package/src/pytorch/python/uv.lock +694 -0
- package/dist/mlx-ml/process/process-communication.d.ts +0 -45
- package/dist/mlx-ml/process/process-communication.d.ts.map +0 -1
- package/dist/mlx-ml/process/process-communication.js.map +0 -1
- package/dist/mlx-ml/process/queue.d.ts +0 -35
- package/dist/mlx-ml/process/queue.d.ts.map +0 -1
- package/dist/mlx-ml/process/queue.js.map +0 -1
- package/scripts/setup-mlx.js +0 -53
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/runtime/check.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAE7B,MAAM,OAAO,oBAAqB,SAAQ,KAAK;IACpC,OAAO,CAAiB;IACxB,YAAY,CAAS;IAE9B,YAAY,OAAuB;QACjC,MAAM,YAAY,GAChB,OAAO,KAAK,KAAK;YACf,CAAC,CAAC,kBAAkB;YACpB,CAAC,CAAC,OAAO,KAAK,SAAS;gBACrB,CAAC,CAAC,sBAAsB;gBACxB,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,OAAO,EAAE,CAAC,CAAC;QACjE,KAAK,CACH,GAAG,OAAO,6BAA6B,WAAW,CAAC,OAAO,CAAC,IAAI;YAC/D,QAAQ,YAAY,EAAE,CACvB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAED,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,MAAM,UAAU,kBAAkB,CAAC,OAAuB;IACxD,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, type RuntimeProfile, } from './paths.js';
|
|
2
|
+
export { readManifest, writeManifest, collectInstalledPackages, type RuntimeManifest, } from './manifest.js';
|
|
3
|
+
export { RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, } from './check.js';
|
|
4
|
+
export { SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, } from './setup-commands.js';
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,EACnC,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,EACxB,KAAK,eAAe,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { MODULAR_PROMPT_DIR, RUNTIME_PROFILES, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, resolvePackageRoot, resolvePackageRootFromProcessModule, } from './paths.js';
|
|
2
|
+
export { readManifest, writeManifest, collectInstalledPackages, } from './manifest.js';
|
|
3
|
+
export { RuntimeNotReadyError, isRuntimeReady, assertRuntimeReady, } from './check.js';
|
|
4
|
+
export { SETUP_MLX_MONOREPO, SETUP_PYTORCH_MONOREPO, SETUP_MLX_CLI, SETUP_PYTORCH_CLI, } from './setup-commands.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,mCAAmC,GAEpC,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,YAAY,EACZ,aAAa,EACb,wBAAwB,GAEzB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAClB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} pythonDir
|
|
3
|
+
* @param {string} venvPath
|
|
4
|
+
* @returns {Record<string, string> | undefined}
|
|
5
|
+
*/
|
|
6
|
+
export function collectInstalledPackages(pythonDir: string, venvPath: string): Record<string, string> | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* @param {string} profile
|
|
9
|
+
* @returns {import('./manifest-core.mjs').RuntimeManifest | null}
|
|
10
|
+
*/
|
|
11
|
+
export function readManifest(profile: string): import("./manifest-core.mjs").RuntimeManifest | null;
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} profile
|
|
14
|
+
* @param {import('./manifest-core.mjs').RuntimeManifest} manifest
|
|
15
|
+
*/
|
|
16
|
+
export function writeManifest(profile: string, manifest: import("./manifest-core.mjs").RuntimeManifest): void;
|
|
17
|
+
export type RuntimeManifest = {
|
|
18
|
+
profile: string;
|
|
19
|
+
driverVersion: string;
|
|
20
|
+
platform: string;
|
|
21
|
+
pythonVersion: string;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
variant?: string | undefined;
|
|
24
|
+
torchVersion?: string | undefined;
|
|
25
|
+
packages?: Record<string, string> | undefined;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=manifest-core.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-core.d.mts","sourceRoot":"","sources":["../../src/runtime/manifest-core.mjs"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,oDAJW,MAAM,YACN,MAAM,GACJ,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAmB9C;AAED;;;GAGG;AACH,sCAHW,MAAM,GACJ,OAAO,qBAAqB,EAAE,eAAe,GAAG,IAAI,CAShE;AAED;;;GAGG;AACH,uCAHW,MAAM,YACN,OAAO,qBAAqB,EAAE,eAAe,QAKvD;;aAIa,MAAM;mBACN,MAAM;cACN,MAAM;mBACN,MAAM;eACN,MAAM"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { execSync } from 'child_process';
|
|
2
|
+
import { mkdirSync, readFileSync, writeFileSync } from 'fs';
|
|
3
|
+
import { join } from 'path';
|
|
4
|
+
import { getManifestPath, getRuntimeDir } from './paths-core.mjs';
|
|
5
|
+
|
|
6
|
+
function resolveVenvPython(venvPath) {
|
|
7
|
+
return process.platform === 'win32'
|
|
8
|
+
? join(venvPath, 'Scripts', 'python.exe')
|
|
9
|
+
: join(venvPath, 'bin', 'python');
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} pythonDir
|
|
14
|
+
* @param {string} venvPath
|
|
15
|
+
* @returns {Record<string, string> | undefined}
|
|
16
|
+
*/
|
|
17
|
+
export function collectInstalledPackages(pythonDir, venvPath) {
|
|
18
|
+
try {
|
|
19
|
+
const venvPython = resolveVenvPython(venvPath);
|
|
20
|
+
const output = execSync(`uv pip list --format=json --python "${venvPython}"`, {
|
|
21
|
+
cwd: pythonDir,
|
|
22
|
+
encoding: 'utf8',
|
|
23
|
+
});
|
|
24
|
+
const list = JSON.parse(output);
|
|
25
|
+
/** @type {Record<string, string>} */
|
|
26
|
+
const packages = {};
|
|
27
|
+
for (const pkg of list) {
|
|
28
|
+
packages[pkg.name] = pkg.version;
|
|
29
|
+
}
|
|
30
|
+
return packages;
|
|
31
|
+
} catch {
|
|
32
|
+
return undefined;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @param {string} profile
|
|
38
|
+
* @returns {import('./manifest-core.mjs').RuntimeManifest | null}
|
|
39
|
+
*/
|
|
40
|
+
export function readManifest(profile) {
|
|
41
|
+
try {
|
|
42
|
+
const raw = readFileSync(getManifestPath(profile), 'utf8');
|
|
43
|
+
return JSON.parse(raw);
|
|
44
|
+
} catch {
|
|
45
|
+
return null;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* @param {string} profile
|
|
51
|
+
* @param {import('./manifest-core.mjs').RuntimeManifest} manifest
|
|
52
|
+
*/
|
|
53
|
+
export function writeManifest(profile, manifest) {
|
|
54
|
+
mkdirSync(getRuntimeDir(profile), { recursive: true });
|
|
55
|
+
writeFileSync(getManifestPath(profile), JSON.stringify(manifest, null, 2) + '\n', 'utf8');
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* @typedef {Object} RuntimeManifest
|
|
60
|
+
* @property {string} profile
|
|
61
|
+
* @property {string} driverVersion
|
|
62
|
+
* @property {string} platform
|
|
63
|
+
* @property {string} pythonVersion
|
|
64
|
+
* @property {string} createdAt
|
|
65
|
+
* @property {string} [variant]
|
|
66
|
+
* @property {string} [torchVersion]
|
|
67
|
+
* @property {Record<string, string>} [packages]
|
|
68
|
+
*/
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest-core.mjs","sourceRoot":"","sources":["../../src/runtime/manifest-core.mjs"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAC5D,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,SAAS,iBAAiB,CAAC,QAAQ;IACjC,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO;QACjC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC;QACzC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CAAC,SAAS,EAAE,QAAQ;IAC1D,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,uCAAuC,UAAU,GAAG,EAAE;YAC5E,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,MAAM;SACjB,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAChC,qCAAqC;QACrC,MAAM,QAAQ,GAAG,EAAE,CAAC;QACpB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC;QACnC,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,OAAO;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAO,EAAE,QAAQ;IAC7C,SAAS,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC,CAAC;AAC5F,CAAC;AAED;;;;;;;;;;GAUG"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RuntimeProfile } from './paths.js';
|
|
2
|
+
import { collectInstalledPackages } from './manifest-core.mjs';
|
|
3
|
+
export interface RuntimeManifest {
|
|
4
|
+
profile: RuntimeProfile;
|
|
5
|
+
driverVersion: string;
|
|
6
|
+
platform: string;
|
|
7
|
+
pythonVersion: string;
|
|
8
|
+
createdAt: string;
|
|
9
|
+
/** PyTorch 等の runtime variant(例: cpu-minimal) */
|
|
10
|
+
variant?: string;
|
|
11
|
+
/** セットアップ時に記録した torch バージョン */
|
|
12
|
+
torchVersion?: string;
|
|
13
|
+
packages?: Record<string, string>;
|
|
14
|
+
}
|
|
15
|
+
export declare function readManifest(profile: RuntimeProfile): RuntimeManifest | null;
|
|
16
|
+
export declare function writeManifest(profile: RuntimeProfile, manifest: RuntimeManifest): void;
|
|
17
|
+
export { collectInstalledPackages };
|
|
18
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/runtime/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EACL,wBAAwB,EAGzB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,cAAc,CAAC;IACxB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,GAAG,eAAe,GAAG,IAAI,CAE5E;AAED,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI,CAEtF;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { collectInstalledPackages, readManifest as readManifestCore, writeManifest as writeManifestCore, } from './manifest-core.mjs';
|
|
2
|
+
export function readManifest(profile) {
|
|
3
|
+
return readManifestCore(profile);
|
|
4
|
+
}
|
|
5
|
+
export function writeManifest(profile, manifest) {
|
|
6
|
+
writeManifestCore(profile, manifest);
|
|
7
|
+
}
|
|
8
|
+
export { collectInstalledPackages };
|
|
9
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/runtime/manifest.ts"],"names":[],"mappings":"AACA,OAAO,EACL,wBAAwB,EACxB,YAAY,IAAI,gBAAgB,EAChC,aAAa,IAAI,iBAAiB,GACnC,MAAM,qBAAqB,CAAC;AAe7B,MAAM,UAAU,YAAY,CAAC,OAAuB;IAClD,OAAO,gBAAgB,CAAC,OAAO,CAA2B,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAuB,EAAE,QAAyB;IAC9E,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ~/.modular-prompt のルートパス
|
|
3
|
+
* MODULAR_PROMPT_HOME 環境変数で上書き可能(テスト用)
|
|
4
|
+
*/
|
|
5
|
+
export function getModularPromptHome(): string;
|
|
6
|
+
export function getRuntimesRoot(): string;
|
|
7
|
+
export function getRuntimeDir(profile: any): string;
|
|
8
|
+
export function getVenvPath(profile: any): string;
|
|
9
|
+
export function getManifestPath(profile: any): string;
|
|
10
|
+
export function getMlxPythonDir(packageRoot: any): string;
|
|
11
|
+
export function getPytorchPythonDir(packageRoot: any): string;
|
|
12
|
+
export function isRuntimeReady(profile: any): boolean;
|
|
13
|
+
/** ホーム配下の設定ディレクトリ名 */
|
|
14
|
+
export const MODULAR_PROMPT_DIR: ".modular-prompt";
|
|
15
|
+
/** サポートする runtime profile */
|
|
16
|
+
export const RUNTIME_PROFILES: string[];
|
|
17
|
+
//# sourceMappingURL=paths-core.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths-core.d.mts","sourceRoot":"","sources":["../../src/runtime/paths-core.mjs"],"names":[],"mappings":"AAUA;;;GAGG;AACH,+CAKC;AAED,0CAEC;AAED,oDAEC;AAED,kDAEC;AAED,sDAEC;AAiBD,0DAEC;AAED,8DAEC;AAED,sDAMC;AA9DD,sBAAsB;AACtB,iCAAkC,iBAAiB,CAAC;AAEpD,6BAA6B;AAC7B,wCAAmD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import os from 'os';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
/** ホーム配下の設定ディレクトリ名 */
|
|
6
|
+
export const MODULAR_PROMPT_DIR = '.modular-prompt';
|
|
7
|
+
|
|
8
|
+
/** サポートする runtime profile */
|
|
9
|
+
export const RUNTIME_PROFILES = ['mlx', 'pytorch'];
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* ~/.modular-prompt のルートパス
|
|
13
|
+
* MODULAR_PROMPT_HOME 環境変数で上書き可能(テスト用)
|
|
14
|
+
*/
|
|
15
|
+
export function getModularPromptHome() {
|
|
16
|
+
if (process.env.MODULAR_PROMPT_HOME) {
|
|
17
|
+
return process.env.MODULAR_PROMPT_HOME;
|
|
18
|
+
}
|
|
19
|
+
return path.join(os.homedir(), MODULAR_PROMPT_DIR);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function getRuntimesRoot() {
|
|
23
|
+
return path.join(getModularPromptHome(), 'runtimes');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function getRuntimeDir(profile) {
|
|
27
|
+
return path.join(getRuntimesRoot(), profile);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export function getVenvPath(profile) {
|
|
31
|
+
return path.join(getRuntimeDir(profile), '.venv');
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function getManifestPath(profile) {
|
|
35
|
+
return path.join(getRuntimeDir(profile), 'manifest.json');
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* @modular-prompt/driver パッケージルートから MLX Python プロジェクトを解決
|
|
40
|
+
*/
|
|
41
|
+
function resolvePythonProjectDir(packageRoot, segment) {
|
|
42
|
+
const distPython = path.join(packageRoot, 'dist', segment, 'python');
|
|
43
|
+
const srcPython = path.join(packageRoot, 'src', segment, 'python');
|
|
44
|
+
if (existsSync(distPython)) {
|
|
45
|
+
return distPython;
|
|
46
|
+
}
|
|
47
|
+
if (existsSync(srcPython)) {
|
|
48
|
+
return srcPython;
|
|
49
|
+
}
|
|
50
|
+
return srcPython;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export function getMlxPythonDir(packageRoot) {
|
|
54
|
+
return resolvePythonProjectDir(packageRoot, 'mlx-ml');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export function getPytorchPythonDir(packageRoot) {
|
|
58
|
+
return resolvePythonProjectDir(packageRoot, 'pytorch');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
export function isRuntimeReady(profile) {
|
|
62
|
+
const venv = getVenvPath(profile);
|
|
63
|
+
return (
|
|
64
|
+
existsSync(path.join(venv, 'bin', 'python')) ||
|
|
65
|
+
existsSync(path.join(venv, 'Scripts', 'python.exe'))
|
|
66
|
+
);
|
|
67
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths-core.mjs","sourceRoot":"","sources":["../../src/runtime/paths-core.mjs"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,sBAAsB;AACtB,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEpD,6BAA6B;AAC7B,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;AAEnD;;;GAGG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QACpC,OAAO,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,UAAU,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAAO;IACnC,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,OAAO,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAO;IACjC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,OAAO;IACrC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,eAAe,CAAC,CAAC;AAC5D,CAAC;AAED;;GAEG;AACH,SAAS,uBAAuB,CAAC,WAAW,EAAE,OAAO;IACnD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IACnE,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAAW;IACzC,OAAO,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,WAAW;IAC7C,OAAO,uBAAuB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAO;IACpC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;IAClC,OAAO,CACL,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;QAC5C,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CACrD,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { MODULAR_PROMPT_DIR, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, isRuntimeReady } from './paths-core.mjs';
|
|
2
|
+
export { MODULAR_PROMPT_DIR, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, isRuntimeReady, };
|
|
3
|
+
/** サポートする runtime profile */
|
|
4
|
+
export type RuntimeProfile = 'mlx' | 'pytorch';
|
|
5
|
+
export declare const RUNTIME_PROFILES: RuntimeProfile[];
|
|
6
|
+
/**
|
|
7
|
+
* @modular-prompt/driver パッケージルート(dist/ または packages/driver/)
|
|
8
|
+
*/
|
|
9
|
+
export declare function resolvePackageRoot(fromDir: string): string;
|
|
10
|
+
/** dist/mlx-ml/process からパッケージルートを解決 */
|
|
11
|
+
export declare function resolvePackageRootFromProcessModule(importMetaUrl: string): string;
|
|
12
|
+
//# sourceMappingURL=paths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kBAAkB,EAElB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,EACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,SAAS,CAAC;AAE/C,eAAO,MAAM,gBAAgB,EAAE,cAAc,EAA8C,CAAC;AAE5F;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,wCAAwC;AACxC,wBAAgB,mCAAmC,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAGjF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { fileURLToPath } from 'url';
|
|
3
|
+
import { MODULAR_PROMPT_DIR, RUNTIME_PROFILES as RUNTIME_PROFILES_CORE, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, isRuntimeReady, } from './paths-core.mjs';
|
|
4
|
+
export { MODULAR_PROMPT_DIR, getModularPromptHome, getRuntimesRoot, getRuntimeDir, getVenvPath, getManifestPath, getMlxPythonDir, getPytorchPythonDir, isRuntimeReady, };
|
|
5
|
+
export const RUNTIME_PROFILES = RUNTIME_PROFILES_CORE;
|
|
6
|
+
/**
|
|
7
|
+
* @modular-prompt/driver パッケージルート(dist/ または packages/driver/)
|
|
8
|
+
*/
|
|
9
|
+
export function resolvePackageRoot(fromDir) {
|
|
10
|
+
return path.resolve(fromDir, '..', '..', '..');
|
|
11
|
+
}
|
|
12
|
+
/** dist/mlx-ml/process からパッケージルートを解決 */
|
|
13
|
+
export function resolvePackageRootFromProcessModule(importMetaUrl) {
|
|
14
|
+
const moduleDir = path.dirname(fileURLToPath(importMetaUrl));
|
|
15
|
+
return resolvePackageRoot(moduleDir);
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=paths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/runtime/paths.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EACL,kBAAkB,EAClB,gBAAgB,IAAI,qBAAqB,EACzC,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,oBAAoB,EACpB,eAAe,EACf,aAAa,EACb,WAAW,EACX,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,cAAc,GACf,CAAC;AAKF,MAAM,CAAC,MAAM,gBAAgB,GAAqB,qBAAyC,CAAC;AAE5F;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACjD,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,mCAAmC,CAAC,aAAqB;IACvE,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAC7D,OAAO,kBAAkB,CAAC,SAAS,CAAC,CAAC;AACvC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python runtime セットアップコマンド(CLI・エラーメッセージ・ドキュメントで共通)
|
|
3
|
+
*
|
|
4
|
+
* monorepo: ルート package.json が driver へ委譲する `pnpm run setup-*`
|
|
5
|
+
* published: `modular-prompt-runtime` bin(@modular-prompt/driver インストール後)
|
|
6
|
+
*/
|
|
7
|
+
/** monorepo ルート(pnpm)— ルート package.json 経由で driver の setup を実行 */
|
|
8
|
+
export const SETUP_MLX_MONOREPO: "pnpm run setup-mlx";
|
|
9
|
+
export const SETUP_PYTORCH_MONOREPO: "pnpm run setup-pytorch";
|
|
10
|
+
/** @modular-prompt/driver を npm インストールした環境向け */
|
|
11
|
+
export const SETUP_MLX_CLI: "modular-prompt-runtime setup mlx";
|
|
12
|
+
export const SETUP_PYTORCH_CLI: "modular-prompt-runtime setup pytorch";
|
|
13
|
+
//# sourceMappingURL=setup-commands-core.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-commands-core.d.mts","sourceRoot":"","sources":["../../src/runtime/setup-commands-core.mjs"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kEAAkE;AAClE,iCAAkC,oBAAoB,CAAC;AACvD,qCAAsC,wBAAwB,CAAC;AAE/D,gDAAgD;AAChD,4BAA6B,kCAAkC,CAAC;AAChE,gCAAiC,sCAAsC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Python runtime セットアップコマンド(CLI・エラーメッセージ・ドキュメントで共通)
|
|
3
|
+
*
|
|
4
|
+
* monorepo: ルート package.json が driver へ委譲する `pnpm run setup-*`
|
|
5
|
+
* published: `modular-prompt-runtime` bin(@modular-prompt/driver インストール後)
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/** monorepo ルート(pnpm)— ルート package.json 経由で driver の setup を実行 */
|
|
9
|
+
export const SETUP_MLX_MONOREPO = 'pnpm run setup-mlx';
|
|
10
|
+
export const SETUP_PYTORCH_MONOREPO = 'pnpm run setup-pytorch';
|
|
11
|
+
|
|
12
|
+
/** @modular-prompt/driver を npm インストールした環境向け */
|
|
13
|
+
export const SETUP_MLX_CLI = 'modular-prompt-runtime setup mlx';
|
|
14
|
+
export const SETUP_PYTORCH_CLI = 'modular-prompt-runtime setup pytorch';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-commands-core.mjs","sourceRoot":"","sources":["../../src/runtime/setup-commands-core.mjs"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,kEAAkE;AAClE,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,CAAC;AACvD,MAAM,CAAC,MAAM,sBAAsB,GAAG,wBAAwB,CAAC;AAE/D,gDAAgD;AAChD,MAAM,CAAC,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,sCAAsC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-commands.d.ts","sourceRoot":"","sources":["../../src/runtime/setup-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-commands.js","sourceRoot":"","sources":["../../src/runtime/setup-commands.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,iBAAiB,GAClB,MAAM,2BAA2B,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { Attachment, ToolCall, ToolResultKind } from '@modular-prompt/core';
|
|
2
2
|
import type { LogEntry } from '@modular-prompt/utils';
|
|
3
|
+
import type { CacheHandle } from './cache-controller.js';
|
|
3
4
|
export type { Attachment, CompiledPrompt, ToolCall, ToolResultKind } from '@modular-prompt/core';
|
|
4
5
|
/**
|
|
5
6
|
* Chat message role
|
|
@@ -113,6 +114,10 @@ export type FinishReason = 'stop' | 'length' | 'error' | 'tool_calls';
|
|
|
113
114
|
* - 'chat': Conversational chat mode
|
|
114
115
|
*/
|
|
115
116
|
export type QueryMode = 'default' | 'thinking' | 'instruct' | 'chat';
|
|
117
|
+
/**
|
|
118
|
+
* API selection strategy (MLX / LocalInference drivers)
|
|
119
|
+
*/
|
|
120
|
+
export type ApiStrategy = 'auto' | 'force-chat' | 'force-completion';
|
|
116
121
|
/**
|
|
117
122
|
* Options for querying AI model
|
|
118
123
|
*/
|
|
@@ -130,7 +135,7 @@ export interface QueryOptions {
|
|
|
130
135
|
* - 'force-chat': Force chat API
|
|
131
136
|
* - 'force-completion': Force completion API
|
|
132
137
|
*/
|
|
133
|
-
apiStrategy?:
|
|
138
|
+
apiStrategy?: ApiStrategy;
|
|
134
139
|
/** Available tool definitions */
|
|
135
140
|
tools?: ToolDefinition[];
|
|
136
141
|
/** Tool usage strategy */
|
|
@@ -145,6 +150,11 @@ export interface QueryOptions {
|
|
|
145
150
|
* - undefined: driver default behavior
|
|
146
151
|
*/
|
|
147
152
|
cache?: boolean | 'read-only';
|
|
153
|
+
/**
|
|
154
|
+
* Externally prepared cache handle. When set, drivers that support KV caching
|
|
155
|
+
* skip internal prepare() and use this handle for generation.
|
|
156
|
+
*/
|
|
157
|
+
cacheHandle?: CacheHandle;
|
|
148
158
|
/**
|
|
149
159
|
* Abort signal for cancelling in-flight inference.
|
|
150
160
|
* Unsupported drivers ignore this option.
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAiDA;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,OAAO,OAAO,CAAC,IAAI,KAAK,WAAW,IAAI,WAAW,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAE,OAAoC,CAAC,SAAS,CAAC,CAAC;AAClI,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAoB;IAC/C,OAAO,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC;AACjC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@modular-prompt/driver",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.16.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -14,8 +14,12 @@
|
|
|
14
14
|
"dist",
|
|
15
15
|
"scripts",
|
|
16
16
|
"skills",
|
|
17
|
-
"src/mlx-ml/python"
|
|
17
|
+
"src/mlx-ml/python",
|
|
18
|
+
"src/pytorch/python"
|
|
18
19
|
],
|
|
20
|
+
"bin": {
|
|
21
|
+
"modular-runtime": "./scripts/runtime-cli.js"
|
|
22
|
+
},
|
|
19
23
|
"dependencies": {
|
|
20
24
|
"@anthropic-ai/sdk": "0.61.0",
|
|
21
25
|
"@anthropic-ai/vertex-sdk": "0.14.4",
|
|
@@ -26,8 +30,8 @@
|
|
|
26
30
|
"js-yaml": "4.1.1",
|
|
27
31
|
"openai": "5.23.2",
|
|
28
32
|
"proper-lockfile": "4.1.2",
|
|
29
|
-
"@modular-prompt/
|
|
30
|
-
"@modular-prompt/
|
|
33
|
+
"@modular-prompt/core": "0.3.0",
|
|
34
|
+
"@modular-prompt/utils": "0.3.5"
|
|
31
35
|
},
|
|
32
36
|
"devDependencies": {
|
|
33
37
|
"@eslint/js": "9.39.2",
|
|
@@ -53,7 +57,7 @@
|
|
|
53
57
|
"directory": "packages/driver"
|
|
54
58
|
},
|
|
55
59
|
"scripts": {
|
|
56
|
-
"build": "tsc -b --force",
|
|
60
|
+
"build": "tsc -b --force && cp src/runtime/paths-core.mjs src/runtime/manifest-core.mjs src/runtime/setup-commands-core.mjs dist/runtime/",
|
|
57
61
|
"test": "vitest",
|
|
58
62
|
"test:run": "vitest run",
|
|
59
63
|
"test:system": "vitest run --config vitest.config.system.ts",
|
|
@@ -63,7 +67,9 @@
|
|
|
63
67
|
"typecheck": "tsc --noEmit",
|
|
64
68
|
"copy-skills": "mkdir -p skills/driver-usage && cp ../../skills/driver-usage/SKILL.md skills/driver-usage/SKILL.md",
|
|
65
69
|
"clean": "rm -rf dist skills tsconfig.tsbuildinfo",
|
|
66
|
-
"
|
|
67
|
-
"setup-
|
|
70
|
+
"setup-mlx": "node scripts/runtime-cli.js setup mlx",
|
|
71
|
+
"setup-pytorch": "node scripts/runtime-cli.js setup pytorch",
|
|
72
|
+
"runtime:status": "node scripts/runtime-cli.js setup --status",
|
|
73
|
+
"runtime:cleanup": "node scripts/runtime-cli.js cleanup"
|
|
68
74
|
}
|
|
69
75
|
}
|
|
@@ -2,26 +2,39 @@
|
|
|
2
2
|
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
4
|
import { existsSync } from 'fs';
|
|
5
|
-
import {
|
|
6
|
-
import { fileURLToPath } from 'url';
|
|
5
|
+
import { dirname, join } from 'path';
|
|
6
|
+
import { fileURLToPath, pathToFileURL } from 'url';
|
|
7
7
|
|
|
8
8
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
-
const
|
|
10
|
-
const distPythonDir = join(__dirname, '..', 'dist', 'mlx-ml', 'python');
|
|
9
|
+
const packageRoot = join(__dirname, '..');
|
|
11
10
|
|
|
12
|
-
|
|
13
|
-
const
|
|
11
|
+
function runtimeModuleUrl(name) {
|
|
12
|
+
const distPath = join(packageRoot, 'dist', 'runtime', name);
|
|
13
|
+
const srcPath = join(packageRoot, 'src', 'runtime', name);
|
|
14
|
+
return pathToFileURL(existsSync(distPath) ? distPath : srcPath).href;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const { getMlxPythonDir, getVenvPath } = await import(runtimeModuleUrl('paths-core.mjs'));
|
|
18
|
+
const { SETUP_MLX_MONOREPO } = await import(runtimeModuleUrl('setup-commands-core.mjs'));
|
|
19
|
+
|
|
20
|
+
const targetDir = getMlxPythonDir(packageRoot);
|
|
21
|
+
const venvPath = getVenvPath('mlx');
|
|
14
22
|
|
|
15
23
|
if (!existsSync(targetDir)) {
|
|
16
24
|
console.error('❌ MLX Python directory not found.');
|
|
17
|
-
console.error(
|
|
25
|
+
console.error(` Please run "${SETUP_MLX_MONOREPO}" first.`);
|
|
26
|
+
process.exit(1);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
if (!existsSync(join(venvPath, 'bin', 'python'))) {
|
|
30
|
+
console.error('❌ MLX runtime is not set up.');
|
|
31
|
+
console.error(` Please run "${SETUP_MLX_MONOREPO}" first.`);
|
|
18
32
|
process.exit(1);
|
|
19
33
|
}
|
|
20
34
|
|
|
21
35
|
console.log('📦 Downloading test model...');
|
|
22
36
|
console.log(`📁 Working directory: ${targetDir}\n`);
|
|
23
37
|
|
|
24
|
-
// Get model name from command line arguments or use default
|
|
25
38
|
const modelName = process.argv[2] || 'mlx-community/gemma-3-270m-it-4bit';
|
|
26
39
|
|
|
27
40
|
try {
|
|
@@ -29,7 +42,11 @@ try {
|
|
|
29
42
|
`uv run mlx_lm.generate --model ${modelName} --prompt 'test' --max-tokens 1`,
|
|
30
43
|
{
|
|
31
44
|
cwd: targetDir,
|
|
32
|
-
stdio: 'inherit'
|
|
45
|
+
stdio: 'inherit',
|
|
46
|
+
env: {
|
|
47
|
+
...process.env,
|
|
48
|
+
UV_PROJECT_ENVIRONMENT: venvPath,
|
|
49
|
+
},
|
|
33
50
|
}
|
|
34
51
|
);
|
|
35
52
|
console.log('\n✅ Model downloaded successfully!');
|