@modular-prompt/extract 1.0.0 → 1.2.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 +83 -24
- package/dist/cache-lifecycle.d.ts +5 -1
- package/dist/cache-lifecycle.d.ts.map +1 -1
- package/dist/cache-lifecycle.js +22 -0
- package/dist/cache-lifecycle.js.map +1 -1
- package/dist/cli/add-command.d.ts +2 -0
- package/dist/cli/add-command.d.ts.map +1 -1
- package/dist/cli/add-command.js +9 -3
- package/dist/cli/add-command.js.map +1 -1
- package/dist/cli/args.d.ts +3 -0
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +29 -0
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/constants.d.ts +4 -0
- package/dist/cli/constants.d.ts.map +1 -1
- package/dist/cli/constants.js +19 -0
- package/dist/cli/constants.js.map +1 -1
- package/dist/cli/create-command.d.ts +2 -0
- package/dist/cli/create-command.d.ts.map +1 -1
- package/dist/cli/create-command.js +11 -4
- package/dist/cli/create-command.js.map +1 -1
- package/dist/cli/extract-command.d.ts +2 -0
- package/dist/cli/extract-command.d.ts.map +1 -1
- package/dist/cli/extract-command.js +22 -5
- package/dist/cli/extract-command.js.map +1 -1
- package/dist/cli/list-command.d.ts +1 -0
- package/dist/cli/list-command.d.ts.map +1 -1
- package/dist/cli/list-command.js +6 -7
- package/dist/cli/list-command.js.map +1 -1
- package/dist/cli/manifest.d.ts +11 -0
- package/dist/cli/manifest.d.ts.map +1 -1
- package/dist/cli/manifest.js +16 -0
- package/dist/cli/manifest.js.map +1 -1
- package/dist/cli/store.d.ts +21 -1
- package/dist/cli/store.d.ts.map +1 -1
- package/dist/cli/store.js +189 -4
- package/dist/cli/store.js.map +1 -1
- package/dist/cli.js +18 -10
- package/dist/cli.js.map +1 -1
- package/dist/create-extract-runtime.d.ts +22 -0
- package/dist/create-extract-runtime.d.ts.map +1 -0
- package/dist/create-extract-runtime.js +27 -0
- package/dist/create-extract-runtime.js.map +1 -0
- package/dist/create-extract-session.d.ts.map +1 -1
- package/dist/create-extract-session.js +8 -2
- package/dist/create-extract-session.js.map +1 -1
- package/dist/create-mlx-extract-runtime.d.ts +18 -7
- package/dist/create-mlx-extract-runtime.d.ts.map +1 -1
- package/dist/create-mlx-extract-runtime.js +11 -1
- package/dist/create-mlx-extract-runtime.js.map +1 -1
- package/dist/create-pytorch-extract-runtime.d.ts +13 -0
- package/dist/create-pytorch-extract-runtime.d.ts.map +1 -0
- package/dist/create-pytorch-extract-runtime.js +52 -0
- package/dist/create-pytorch-extract-runtime.js.map +1 -0
- package/dist/default-models.d.ts +3 -8
- package/dist/default-models.d.ts.map +1 -1
- package/dist/default-models.js +4 -16
- package/dist/default-models.js.map +1 -1
- package/dist/extract-runtime-types.d.ts +16 -0
- package/dist/extract-runtime-types.d.ts.map +1 -0
- package/dist/extract-runtime-types.js +2 -0
- package/dist/extract-runtime-types.js.map +1 -0
- package/dist/extract-store.d.ts +48 -2
- package/dist/extract-store.d.ts.map +1 -1
- package/dist/extract-store.js +108 -10
- package/dist/extract-store.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/model-resolution.d.ts +15 -5
- package/dist/model-resolution.d.ts.map +1 -1
- package/dist/model-resolution.js +87 -27
- package/dist/model-resolution.js.map +1 -1
- package/dist/types.d.ts +12 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/API.md +320 -0
- package/docs/CACHE_DESIGN.md +557 -0
- package/docs/LOCAL_MODEL_SETUP.md +765 -0
- package/docs/PROMPT_MODULE_SPEC.md +482 -0
- package/package.json +6 -4
|
@@ -27,7 +27,11 @@ export function createExtractSession(options) {
|
|
|
27
27
|
throw new Error('ExtractSession is closed');
|
|
28
28
|
}
|
|
29
29
|
await ensureCacheControllerReady(driver, cacheState);
|
|
30
|
-
await prepareSessionCache(cacheController, model, sessionBaseModule, corpus, request, baseModule, cacheState, {
|
|
30
|
+
await prepareSessionCache(cacheController, model, sessionBaseModule, corpus, request, baseModule, cacheState, {
|
|
31
|
+
required: options.cachePreparation === 'required',
|
|
32
|
+
...(options.autoRebuildCache === false ? { readOnly: true } : {}),
|
|
33
|
+
maxImageSize: options.maxImageSize,
|
|
34
|
+
});
|
|
31
35
|
const compiled = compileExtractPrompt(sessionBaseModule, corpus, request, baseModule);
|
|
32
36
|
const queryOptions = cacheState.handle
|
|
33
37
|
? {
|
|
@@ -35,7 +39,9 @@ export function createExtractSession(options) {
|
|
|
35
39
|
cache: false,
|
|
36
40
|
cacheHandle: cacheState.handle,
|
|
37
41
|
}
|
|
38
|
-
:
|
|
42
|
+
: options.autoRebuildCache === false
|
|
43
|
+
? { ...request.options, cache: 'read-only' }
|
|
44
|
+
: request.options;
|
|
39
45
|
const queryResult = await driver.query(compiled, queryOptions);
|
|
40
46
|
const result = {
|
|
41
47
|
text: queryResult.content,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-extract-session.js","sourceRoot":"","sources":["../src/create-extract-session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAI7C,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EACL,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAE9B,SAAS,sBAAsB,CAC7B,UAAkC,EAClC,MAAe;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,YAAY,GAAiB;QACjC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;KAC5C,CAAC;IAEF,OAAO,KAAK,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,OAAwC;IAExC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;IACxE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAE5B,MAAM,iBAAiB,GAAG,sBAAsB,CAC9C,qBAAqB,CAAC,OAAO,CAAC,EAC9B,MAAM,CACP,CAAC;IACF,MAAM,OAAO,GAAoB,EAAE,CAAC;IACpC,MAAM,UAAU,GAAwB;QACtC,MAAM,EAAE,IAAI;QACZ,eAAe,EAAE,KAAK;KACvB,CAAC;IACF,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,OAAO;QACL,KAAK,CAAC,OAAO,CAAC,OAAuB;YACnC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YAED,MAAM,0BAA0B,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,mBAAmB,CACvB,eAAe,EACf,KAAK,EACL,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,
|
|
1
|
+
{"version":3,"file":"create-extract-session.js","sourceRoot":"","sources":["../src/create-extract-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,30 @@
|
|
|
1
|
-
import { type
|
|
1
|
+
import { type MlxBackendMode } from '@modular-prompt/driver';
|
|
2
|
+
import type { ExtractRuntime } from './extract-runtime-types.js';
|
|
2
3
|
export interface MlxExtractRuntimeOptions {
|
|
3
|
-
/** MLX model ID or alias in models.yaml. Omitted uses
|
|
4
|
+
/** MLX model ID or alias in models.yaml. Omitted uses user-configured models.default. */
|
|
4
5
|
model?: string;
|
|
6
|
+
/** Explicit MLX backend. Omitted preserves model config and defaults to `auto`. */
|
|
7
|
+
backend?: MlxBackendMode;
|
|
5
8
|
/** Fixed cache directory. When omitted, a managed temp directory is used. */
|
|
6
9
|
cacheDir?: string;
|
|
10
|
+
/** VLM image resize limit. Omitted uses the model configuration or 768. */
|
|
11
|
+
maxImageSize?: number;
|
|
7
12
|
}
|
|
8
13
|
/**
|
|
9
14
|
* MLX driver + cache controller bundle for extract sessions.
|
|
10
|
-
*
|
|
15
|
+
* Preserves the configured MLX backend and defaults to `auto`, so text-only
|
|
16
|
+
* VLM classification models can use the same disk-backed cache path as LM
|
|
17
|
+
* models. Image-bearing materials use the VLM vision-cache namespace and
|
|
18
|
+
* sidecar when the resolved backend is VLM; VLM incremental prefill remains
|
|
19
|
+
* unsupported.
|
|
11
20
|
* Lifecycle (close) is owned by the caller — not by ExtractSession.
|
|
12
21
|
*/
|
|
13
|
-
export interface MlxExtractRuntime {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
22
|
+
export interface MlxExtractRuntime extends ExtractRuntime {
|
|
23
|
+
provider: 'mlx';
|
|
24
|
+
/** Backend selected for this runtime; persisted by extract stores. */
|
|
25
|
+
backend: MlxBackendMode;
|
|
26
|
+
/** VLM image resize limit used by the driver and cache prefill. */
|
|
27
|
+
maxImageSize: number;
|
|
17
28
|
/** Release driver and cache controller when all sessions using this runtime are done. */
|
|
18
29
|
close(): Promise<void>;
|
|
19
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-mlx-extract-runtime.d.ts","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"create-mlx-extract-runtime.d.ts","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,yFAAyF;IACzF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mFAAmF;IACnF,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,QAAQ,EAAE,KAAK,CAAC;IAChB,sEAAsE;IACtE,OAAO,EAAE,cAAc,CAAC;IACxB,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAyBD,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAwC5B"}
|
|
@@ -24,9 +24,16 @@ export async function createMlxExtractRuntime(options) {
|
|
|
24
24
|
const cacheController = new MlxCacheController(options.cacheDir ? { cacheDir: options.cacheDir } : undefined);
|
|
25
25
|
let driverForCleanup;
|
|
26
26
|
try {
|
|
27
|
-
const resolved = await createDriver(options.model, {
|
|
27
|
+
const resolved = await createDriver(options.model, {
|
|
28
|
+
cacheController,
|
|
29
|
+
provider: 'mlx',
|
|
30
|
+
backend: options.backend,
|
|
31
|
+
maxImageSize: options.maxImageSize,
|
|
32
|
+
});
|
|
28
33
|
const driver = resolved.driver;
|
|
29
34
|
driverForCleanup = driver;
|
|
35
|
+
const driverOptions = resolved.spec.driverOptions;
|
|
36
|
+
const maxImageSize = options.maxImageSize ?? driverOptions?.maxImageSize ?? 768;
|
|
30
37
|
if ('getCapabilities' in driver && typeof driver.getCapabilities === 'function') {
|
|
31
38
|
await driver.getCapabilities();
|
|
32
39
|
}
|
|
@@ -34,6 +41,9 @@ export async function createMlxExtractRuntime(options) {
|
|
|
34
41
|
driver,
|
|
35
42
|
cacheController,
|
|
36
43
|
model: resolved.spec.model,
|
|
44
|
+
provider: 'mlx',
|
|
45
|
+
backend: resolved.spec.backend ?? 'auto',
|
|
46
|
+
maxImageSize,
|
|
37
47
|
async close() {
|
|
38
48
|
try {
|
|
39
49
|
await driver.close();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-mlx-extract-runtime.js","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,
|
|
1
|
+
{"version":3,"file":"create-mlx-extract-runtime.js","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,GAKnB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAiCrD;;;GAGG;AACH,KAAK,UAAU,kBAAkB,CAC/B,MAA4B,EAC5B,eAAsC;IAEtC,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAiC;IAEjC,MAAM,eAAe,GAAG,IAAI,kBAAkB,CAC5C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;IACF,IAAI,gBAAsC,CAAC;IAC3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;YACjD,eAAe;YACf,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,EAAE,OAAO,CAAC,YAAY;SACnC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,gBAAgB,GAAG,MAAM,CAAC;QAC1B,MAAM,aAAa,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAkD,CAAC;QACvF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,aAAa,EAAE,YAAY,IAAI,GAAG,CAAC;QAEhF,IAAI,iBAAiB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAChF,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QACjC,CAAC;QAED,OAAO;YACL,MAAM;YACN,eAAe;YACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,QAAQ,EAAE,KAAK;YACf,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,IAAI,MAAM;YACxC,YAAY;YACZ,KAAK,CAAC,KAAK;gBACT,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACT,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ExtractRuntime } from './extract-runtime-types.js';
|
|
2
|
+
export interface PyTorchExtractRuntimeOptions {
|
|
3
|
+
/** PyTorch model ID or alias in models.yaml. */
|
|
4
|
+
model?: string;
|
|
5
|
+
/** Fixed cache directory. When omitted, a managed temp directory is used. */
|
|
6
|
+
cacheDir?: string;
|
|
7
|
+
}
|
|
8
|
+
/** PyTorch driver + persistent cache controller bundle for extract sessions. */
|
|
9
|
+
export interface PyTorchExtractRuntime extends ExtractRuntime {
|
|
10
|
+
provider: 'pytorch';
|
|
11
|
+
}
|
|
12
|
+
export declare function createPytorchExtractRuntime(options: PyTorchExtractRuntimeOptions): Promise<PyTorchExtractRuntime>;
|
|
13
|
+
//# sourceMappingURL=create-pytorch-extract-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-pytorch-extract-runtime.d.ts","sourceRoot":"","sources":["../src/create-pytorch-extract-runtime.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,WAAW,4BAA4B;IAC3C,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,QAAQ,EAAE,SAAS,CAAC;CACrB;AAqBD,wBAAsB,2BAA2B,CAC/C,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,qBAAqB,CAAC,CAmChC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { PyTorchCacheController, } from '@modular-prompt/driver';
|
|
2
|
+
import { createDriver } from './model-resolution.js';
|
|
3
|
+
async function closeFailedRuntime(driver, cacheController) {
|
|
4
|
+
try {
|
|
5
|
+
if (driver) {
|
|
6
|
+
await driver.close();
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
catch {
|
|
10
|
+
// Preserve the original runtime construction/capabilities error.
|
|
11
|
+
}
|
|
12
|
+
try {
|
|
13
|
+
await cacheController.close();
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
// Preserve the original runtime construction/capabilities error.
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export async function createPytorchExtractRuntime(options) {
|
|
20
|
+
const cacheController = new PyTorchCacheController(options.cacheDir ? { cacheDir: options.cacheDir } : undefined);
|
|
21
|
+
let driverForCleanup;
|
|
22
|
+
try {
|
|
23
|
+
const resolved = await createDriver(options.model, {
|
|
24
|
+
provider: 'pytorch',
|
|
25
|
+
cacheController,
|
|
26
|
+
});
|
|
27
|
+
const driver = resolved.driver;
|
|
28
|
+
driverForCleanup = driver;
|
|
29
|
+
if ('getCapabilities' in driver && typeof driver.getCapabilities === 'function') {
|
|
30
|
+
await driver.getCapabilities();
|
|
31
|
+
}
|
|
32
|
+
return {
|
|
33
|
+
driver,
|
|
34
|
+
cacheController,
|
|
35
|
+
model: resolved.spec.model,
|
|
36
|
+
provider: 'pytorch',
|
|
37
|
+
async close() {
|
|
38
|
+
try {
|
|
39
|
+
await driver.close();
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
await cacheController.close();
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
await closeFailedRuntime(driverForCleanup, cacheController);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=create-pytorch-extract-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-pytorch-extract-runtime.js","sourceRoot":"","sources":["../src/create-pytorch-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAerD,KAAK,UAAU,kBAAkB,CAC/B,MAA4B,EAC5B,eAAsC;IAEtC,IAAI,CAAC;QACH,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,iEAAiE;IACnE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,OAAqC;IAErC,MAAM,eAAe,GAAG,IAAI,sBAAsB,CAChD,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,SAAS,CAC9D,CAAC;IACF,IAAI,gBAAsC,CAAC;IAE3C,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE;YACjD,QAAQ,EAAE,SAAS;YACnB,eAAe;SAChB,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC/B,gBAAgB,GAAG,MAAM,CAAC;QAE1B,IAAI,iBAAiB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;YAChF,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;QACjC,CAAC;QAED,OAAO;YACL,MAAM;YACN,eAAe;YACf,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;YAC1B,QAAQ,EAAE,SAAS;YACnB,KAAK,CAAC,KAAK;gBACT,IAAI,CAAC;oBACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;gBACvB,CAAC;wBAAS,CAAC;oBACT,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;gBAChC,CAAC;YACH,CAAC;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,kBAAkB,CAAC,gBAAgB,EAAE,eAAe,CAAC,CAAC;QAC5D,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
package/dist/default-models.d.ts
CHANGED
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* extract
|
|
2
|
+
* extract の base models 設定。
|
|
3
3
|
*
|
|
4
|
-
* user の ~/.modular-prompt/models.yaml
|
|
4
|
+
* モデルは同梱せず、user の ~/.modular-prompt/models.yaml から解決する。
|
|
5
5
|
*/
|
|
6
6
|
import type { ModelsConfig } from '@modular-prompt/driver';
|
|
7
|
-
/**
|
|
8
|
-
* extract が -m なしで使用する同梱デフォルトモデル。
|
|
9
|
-
* MLX_MODEL は既存利用者向けに後方互換でサポートし、user yaml が優先される。
|
|
10
|
-
*/
|
|
11
|
-
export declare const BUNDLED_DEFAULT_MODEL: string;
|
|
12
|
-
/** 同梱モデル設定(user models.yaml より低い優先度) */
|
|
7
|
+
/** 同梱モデルを持たない base config(user models.yaml より低い優先度) */
|
|
13
8
|
export declare const BUNDLED_MODELS_CONFIG: ModelsConfig;
|
|
14
9
|
//# sourceMappingURL=default-models.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-models.d.ts","sourceRoot":"","sources":["../src/default-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D
|
|
1
|
+
{"version":3,"file":"default-models.d.ts","sourceRoot":"","sources":["../src/default-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,uDAAuD;AACvD,eAAO,MAAM,qBAAqB,EAAE,YAAiB,CAAC"}
|
package/dist/default-models.js
CHANGED
|
@@ -1,20 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* extract
|
|
2
|
+
* extract の base models 設定。
|
|
3
3
|
*
|
|
4
|
-
* user の ~/.modular-prompt/models.yaml
|
|
4
|
+
* モデルは同梱せず、user の ~/.modular-prompt/models.yaml から解決する。
|
|
5
5
|
*/
|
|
6
|
-
/**
|
|
7
|
-
|
|
8
|
-
* MLX_MODEL は既存利用者向けに後方互換でサポートし、user yaml が優先される。
|
|
9
|
-
*/
|
|
10
|
-
export const BUNDLED_DEFAULT_MODEL = process.env.MLX_MODEL ?? 'prism-ml/Ternary-Bonsai-1.7B-mlx-2bit';
|
|
11
|
-
/** 同梱モデル設定(user models.yaml より低い優先度) */
|
|
12
|
-
export const BUNDLED_MODELS_CONFIG = {
|
|
13
|
-
models: {
|
|
14
|
-
default: {
|
|
15
|
-
provider: 'mlx',
|
|
16
|
-
model: BUNDLED_DEFAULT_MODEL,
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
};
|
|
6
|
+
/** 同梱モデルを持たない base config(user models.yaml より低い優先度) */
|
|
7
|
+
export const BUNDLED_MODELS_CONFIG = {};
|
|
20
8
|
//# sourceMappingURL=default-models.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-models.js","sourceRoot":"","sources":["../src/default-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH
|
|
1
|
+
{"version":3,"file":"default-models.js","sourceRoot":"","sources":["../src/default-models.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,uDAAuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAiB,EAAE,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AIDriver, MlxBackendMode, PromptCacheController } from '@modular-prompt/driver';
|
|
2
|
+
/** Providers that can persist the cache format used by extract stores. */
|
|
3
|
+
export type ExtractProvider = 'mlx' | 'pytorch';
|
|
4
|
+
/** Common driver/cache bundle consumed by an extract session or store. */
|
|
5
|
+
export interface ExtractRuntime {
|
|
6
|
+
driver: AIDriver;
|
|
7
|
+
cacheController: PromptCacheController;
|
|
8
|
+
model: string;
|
|
9
|
+
provider: ExtractProvider;
|
|
10
|
+
/** MLX backend selected for this runtime; undefined for PyTorch. */
|
|
11
|
+
backend?: MlxBackendMode;
|
|
12
|
+
/** VLM image resize limit; undefined for text-only PyTorch. */
|
|
13
|
+
maxImageSize?: number;
|
|
14
|
+
close(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=extract-runtime-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-runtime-types.d.ts","sourceRoot":"","sources":["../src/extract-runtime-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAEhC,0EAA0E;AAC1E,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,SAAS,CAAC;AAEhD,0EAA0E;AAC1E,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,eAAe,EAAE,qBAAqB,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,eAAe,CAAC;IAC1B,oEAAoE;IACpE,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-runtime-types.js","sourceRoot":"","sources":["../src/extract-runtime-types.ts"],"names":[],"mappings":""}
|
package/dist/extract-store.d.ts
CHANGED
|
@@ -1,20 +1,37 @@
|
|
|
1
|
+
import type { MlxBackendMode } from '@modular-prompt/driver';
|
|
1
2
|
import type { MaterialInput } from './extract-elements.js';
|
|
3
|
+
import type { ExtractProvider, ExtractRuntime } from './extract-runtime-types.js';
|
|
2
4
|
import { type ExtractCacheManifest } from './cli/manifest.js';
|
|
5
|
+
import { type StoreKvCacheStatus } from './cli/store.js';
|
|
3
6
|
export interface PrepareExtractCacheOptions {
|
|
4
7
|
/** Directory containing the persistent cache files. */
|
|
5
8
|
cacheDir: string;
|
|
6
9
|
/** MLX model alias or resolved model ID. */
|
|
7
10
|
model?: string;
|
|
11
|
+
/** Extract provider. Missing lets model resolution select it. */
|
|
12
|
+
provider?: ExtractProvider;
|
|
13
|
+
/** Persisted/configured MLX backend. Missing preserves the `auto` fallback. */
|
|
14
|
+
backend?: MlxBackendMode;
|
|
15
|
+
/** VLM image resize limit; omitted uses the model configuration or 768. */
|
|
16
|
+
maxImageSize?: number;
|
|
8
17
|
/** Corpus to prefill into the cache. */
|
|
9
18
|
materials: readonly MaterialInput[];
|
|
10
19
|
}
|
|
20
|
+
export interface PreparedExtractCache {
|
|
21
|
+
model: string;
|
|
22
|
+
provider: ExtractProvider;
|
|
23
|
+
backend?: MlxBackendMode;
|
|
24
|
+
/** VLM image resize limit used during preparation, when available. */
|
|
25
|
+
maxImageSize?: number;
|
|
26
|
+
}
|
|
11
27
|
/**
|
|
12
28
|
* Prepare the persistent corpus cache and release all runtime resources.
|
|
13
29
|
*
|
|
14
30
|
* The caller owns the manifest transaction. This operation only creates or
|
|
15
|
-
* extends the cache in `cacheDir` and returns the
|
|
31
|
+
* extends the cache in `cacheDir` and returns the resolved model/provider
|
|
32
|
+
* (plus MLX-only backend/image settings when applicable).
|
|
16
33
|
*/
|
|
17
|
-
export declare function prepareExtractCache(options: PrepareExtractCacheOptions): Promise<
|
|
34
|
+
export declare function prepareExtractCache(options: PrepareExtractCacheOptions): Promise<PreparedExtractCache>;
|
|
18
35
|
/**
|
|
19
36
|
* Merge newly loaded materials into an existing corpus.
|
|
20
37
|
*
|
|
@@ -25,6 +42,28 @@ export declare function prepareExtractCache(options: PrepareExtractCacheOptions)
|
|
|
25
42
|
export declare function mergeMaterials(existing: readonly MaterialInput[], incoming: readonly MaterialInput[]): MaterialInput[];
|
|
26
43
|
/** Read and validate a named store manifest with a user-facing missing-store error. */
|
|
27
44
|
export declare function readExtractStoreManifest(storeDir: string, storename: string): Promise<ExtractCacheManifest>;
|
|
45
|
+
export interface EnsureStoreKvCacheOptions {
|
|
46
|
+
/** Existing named store directory. */
|
|
47
|
+
storeDir: string;
|
|
48
|
+
/** Store name used in actionable error messages. */
|
|
49
|
+
storename: string;
|
|
50
|
+
/** Manifest already read by the caller, when available. */
|
|
51
|
+
manifest?: ExtractCacheManifest;
|
|
52
|
+
/** Automatically recreate a missing/inconsistent cache. Defaults to true. */
|
|
53
|
+
autoRebuildCache?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface EnsureStoreKvCacheResult {
|
|
56
|
+
status: StoreKvCacheStatus;
|
|
57
|
+
rebuilt: boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Ensure that a named store has a usable persistent cache before extraction.
|
|
61
|
+
*
|
|
62
|
+
* The operation intentionally does not modify the manifest. The manifest is
|
|
63
|
+
* the corpus source of truth and a successful prefill only restores its
|
|
64
|
+
* transparent cache layer.
|
|
65
|
+
*/
|
|
66
|
+
export declare function ensureStoreKvCache(options: EnsureStoreKvCacheOptions): Promise<EnsureStoreKvCacheResult>;
|
|
28
67
|
export interface AppendToExtractStoreOptions {
|
|
29
68
|
/** Existing named store directory. */
|
|
30
69
|
storeDir: string;
|
|
@@ -36,12 +75,19 @@ export interface AppendToExtractStoreOptions {
|
|
|
36
75
|
existingManifest?: ExtractCacheManifest;
|
|
37
76
|
/** Injectable clock for deterministic callers and tests. */
|
|
38
77
|
now?: () => string;
|
|
78
|
+
/** Automatically rebuild a missing incremental base. Defaults to true. */
|
|
79
|
+
autoRebuildCache?: boolean;
|
|
39
80
|
}
|
|
40
81
|
export interface AppendToExtractStoreResult {
|
|
41
82
|
manifest: ExtractCacheManifest;
|
|
42
83
|
model: string;
|
|
84
|
+
provider: ExtractProvider;
|
|
85
|
+
backend?: MlxBackendMode;
|
|
43
86
|
addedMaterials: number;
|
|
87
|
+
/** Whether the append used a full prefill because no incremental base existed. */
|
|
88
|
+
cacheRebuilt: boolean;
|
|
44
89
|
}
|
|
90
|
+
export declare function assertExtractRuntimeMatchesManifest(runtime: Pick<ExtractRuntime, 'model' | 'provider'>, manifest: ExtractCacheManifest): void;
|
|
45
91
|
/**
|
|
46
92
|
* Append materials to a persistent extract store transactionally.
|
|
47
93
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-store.d.ts","sourceRoot":"","sources":["../src/extract-store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"extract-store.d.ts","sourceRoot":"","sources":["../src/extract-store.ts"],"names":[],"mappings":"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"}
|
package/dist/extract-store.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
|
-
import { cp, mkdtemp, rename, rm } from 'node:fs/promises';
|
|
2
|
+
import { cp, mkdtemp, readdir, rename, rm } from 'node:fs/promises';
|
|
3
3
|
import { basename, dirname, join, resolve } from 'node:path';
|
|
4
4
|
import { isDeepStrictEqual } from 'node:util';
|
|
5
5
|
import { createExtractSession } from './create-extract-session.js';
|
|
6
|
-
import {
|
|
6
|
+
import { createExtractRuntime } from './create-extract-runtime.js';
|
|
7
7
|
import { CACHE_PREPARE_CUE } from './cli/constants.js';
|
|
8
|
-
import { manifestExists, readManifest, writeManifest, } from './cli/manifest.js';
|
|
9
|
-
import { storeExists } from './cli/store.js';
|
|
8
|
+
import { getManifestProvider, manifestExists, readManifest, writeManifest, } from './cli/manifest.js';
|
|
9
|
+
import { inspectStoreKvCache, isKvCacheFile, storeExists, } from './cli/store.js';
|
|
10
10
|
async function closeRuntimePreservingError(runtime, operationError) {
|
|
11
11
|
try {
|
|
12
12
|
await runtime.close();
|
|
@@ -21,12 +21,16 @@ async function closeRuntimePreservingError(runtime, operationError) {
|
|
|
21
21
|
* Prepare the persistent corpus cache and release all runtime resources.
|
|
22
22
|
*
|
|
23
23
|
* The caller owns the manifest transaction. This operation only creates or
|
|
24
|
-
* extends the cache in `cacheDir` and returns the
|
|
24
|
+
* extends the cache in `cacheDir` and returns the resolved model/provider
|
|
25
|
+
* (plus MLX-only backend/image settings when applicable).
|
|
25
26
|
*/
|
|
26
27
|
export async function prepareExtractCache(options) {
|
|
27
|
-
const runtime = await
|
|
28
|
+
const runtime = await createExtractRuntime({
|
|
28
29
|
model: options.model,
|
|
30
|
+
...(options.provider !== undefined ? { provider: options.provider } : {}),
|
|
31
|
+
...(options.backend !== undefined ? { backend: options.backend } : {}),
|
|
29
32
|
cacheDir: options.cacheDir,
|
|
33
|
+
...(options.maxImageSize !== undefined ? { maxImageSize: options.maxImageSize } : {}),
|
|
30
34
|
});
|
|
31
35
|
let operationError;
|
|
32
36
|
try {
|
|
@@ -34,6 +38,7 @@ export async function prepareExtractCache(options) {
|
|
|
34
38
|
driver: runtime.driver,
|
|
35
39
|
cacheController: runtime.cacheController,
|
|
36
40
|
model: runtime.model,
|
|
41
|
+
maxImageSize: runtime.maxImageSize,
|
|
37
42
|
corpus: { materials: options.materials },
|
|
38
43
|
cachePreparation: 'required',
|
|
39
44
|
});
|
|
@@ -42,7 +47,12 @@ export async function prepareExtractCache(options) {
|
|
|
42
47
|
options: { maxTokens: 1, temperature: 0 },
|
|
43
48
|
});
|
|
44
49
|
await session.close({ releaseCache: false });
|
|
45
|
-
return
|
|
50
|
+
return {
|
|
51
|
+
model: runtime.model,
|
|
52
|
+
provider: runtime.provider ?? 'mlx',
|
|
53
|
+
...(runtime.backend !== undefined ? { backend: runtime.backend } : {}),
|
|
54
|
+
...(runtime.maxImageSize !== undefined ? { maxImageSize: runtime.maxImageSize } : {}),
|
|
55
|
+
};
|
|
46
56
|
}
|
|
47
57
|
catch (error) {
|
|
48
58
|
operationError = error;
|
|
@@ -108,6 +118,70 @@ export async function readExtractStoreManifest(storeDir, storename) {
|
|
|
108
118
|
}
|
|
109
119
|
return readManifest(resolvedStoreDir);
|
|
110
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Ensure that a named store has a usable persistent cache before extraction.
|
|
123
|
+
*
|
|
124
|
+
* The operation intentionally does not modify the manifest. The manifest is
|
|
125
|
+
* the corpus source of truth and a successful prefill only restores its
|
|
126
|
+
* transparent cache layer.
|
|
127
|
+
*/
|
|
128
|
+
export async function ensureStoreKvCache(options) {
|
|
129
|
+
const storeDir = resolve(options.storeDir);
|
|
130
|
+
const status = await inspectStoreKvCache(storeDir);
|
|
131
|
+
if (!status.needsRebuild || options.autoRebuildCache === false) {
|
|
132
|
+
return { status, rebuilt: false };
|
|
133
|
+
}
|
|
134
|
+
const manifest = options.manifest
|
|
135
|
+
?? await readExtractStoreManifest(storeDir, options.storename);
|
|
136
|
+
const stagingDir = await mkdtemp(join(dirname(storeDir), `.${basename(storeDir)}.rebuild-`));
|
|
137
|
+
let committed = false;
|
|
138
|
+
try {
|
|
139
|
+
await cp(storeDir, stagingDir, { recursive: true, force: true });
|
|
140
|
+
const stagedEntries = await readdir(stagingDir, { withFileTypes: true });
|
|
141
|
+
await Promise.all(stagedEntries
|
|
142
|
+
.filter((entry) => entry.name === 'cache-index.json' || isKvCacheFile(entry.name))
|
|
143
|
+
.map((entry) => rm(join(stagingDir, entry.name), { recursive: true, force: true })));
|
|
144
|
+
const prepared = await prepareExtractCache({
|
|
145
|
+
cacheDir: stagingDir,
|
|
146
|
+
model: manifest.model,
|
|
147
|
+
provider: getManifestProvider(manifest),
|
|
148
|
+
...(manifest.backend !== undefined ? { backend: manifest.backend } : {}),
|
|
149
|
+
...(manifest.maxImageSize !== undefined ? { maxImageSize: manifest.maxImageSize } : {}),
|
|
150
|
+
materials: manifest.materials,
|
|
151
|
+
});
|
|
152
|
+
assertExtractRuntimeMatchesManifest(prepared, manifest);
|
|
153
|
+
await replaceStoreWithStaging(storeDir, stagingDir);
|
|
154
|
+
committed = true;
|
|
155
|
+
return { status: await inspectStoreKvCache(storeDir), rebuilt: true };
|
|
156
|
+
}
|
|
157
|
+
finally {
|
|
158
|
+
if (!committed) {
|
|
159
|
+
await rm(stagingDir, { recursive: true, force: true });
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
function automaticRebuildDisabledError(storename, status) {
|
|
164
|
+
const detail = status.hasKvCache && !status.hasIncrementalBase
|
|
165
|
+
? 'the persisted cache does not provide an incremental base'
|
|
166
|
+
: status.issue === 'index-entry-missing'
|
|
167
|
+
? 'the cache index does not reference a usable cache'
|
|
168
|
+
: status.issue === 'index-invalid'
|
|
169
|
+
? 'the cache index is invalid'
|
|
170
|
+
: 'the persisted KV cache is missing or invalid';
|
|
171
|
+
return new Error(`Automatic KV cache rebuild is disabled for store '${storename}': ${detail}. `
|
|
172
|
+
+ 'Run create again or enable autoRebuildCache to add materials.');
|
|
173
|
+
}
|
|
174
|
+
export function assertExtractRuntimeMatchesManifest(runtime, manifest) {
|
|
175
|
+
const expectedProvider = getManifestProvider(manifest);
|
|
176
|
+
if (runtime.provider !== expectedProvider) {
|
|
177
|
+
throw new Error(`Extract store provider mismatch: manifest has '${expectedProvider}', `
|
|
178
|
+
+ `runtime resolved '${runtime.provider}'`);
|
|
179
|
+
}
|
|
180
|
+
if (runtime.model !== manifest.model) {
|
|
181
|
+
throw new Error(`Extract store model mismatch: manifest has '${manifest.model}', `
|
|
182
|
+
+ `runtime resolved '${runtime.model}'`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
111
185
|
async function replaceStoreWithStaging(storeDir, stagingDir) {
|
|
112
186
|
const backupDir = join(dirname(storeDir), `.${basename(storeDir)}.backup-${randomUUID()}`);
|
|
113
187
|
await rename(storeDir, backupDir);
|
|
@@ -141,19 +215,40 @@ export async function appendToExtractStore(options) {
|
|
|
141
215
|
}
|
|
142
216
|
const previousManifest = options.existingManifest
|
|
143
217
|
?? await readExtractStoreManifest(storeDir, options.storename);
|
|
218
|
+
const cacheStatus = await inspectStoreKvCache(storeDir);
|
|
219
|
+
const cacheRebuilt = !cacheStatus.hasIncrementalBase;
|
|
220
|
+
if (cacheRebuilt && options.autoRebuildCache === false) {
|
|
221
|
+
throw automaticRebuildDisabledError(options.storename, cacheStatus);
|
|
222
|
+
}
|
|
144
223
|
const materials = mergeMaterials(previousManifest.materials, options.incomingMaterials);
|
|
145
224
|
const stagingDir = await mkdtemp(join(dirname(storeDir), `.${basename(storeDir)}.add-`));
|
|
146
225
|
let committed = false;
|
|
147
226
|
try {
|
|
148
227
|
await cp(storeDir, stagingDir, { recursive: true, force: true });
|
|
149
|
-
const
|
|
228
|
+
const prepared = await prepareExtractCache({
|
|
150
229
|
cacheDir: stagingDir,
|
|
151
230
|
model: previousManifest.model,
|
|
231
|
+
provider: getManifestProvider(previousManifest),
|
|
232
|
+
...(previousManifest.backend !== undefined
|
|
233
|
+
? { backend: previousManifest.backend }
|
|
234
|
+
: {}),
|
|
235
|
+
...(previousManifest.maxImageSize !== undefined
|
|
236
|
+
? { maxImageSize: previousManifest.maxImageSize }
|
|
237
|
+
: {}),
|
|
152
238
|
materials,
|
|
153
239
|
});
|
|
240
|
+
assertExtractRuntimeMatchesManifest(prepared, previousManifest);
|
|
241
|
+
const manifestWithoutBackend = { ...previousManifest };
|
|
242
|
+
delete manifestWithoutBackend.backend;
|
|
154
243
|
const nextManifest = {
|
|
155
|
-
...
|
|
244
|
+
...manifestWithoutBackend,
|
|
245
|
+
model: prepared.model,
|
|
246
|
+
provider: prepared.provider,
|
|
156
247
|
materials,
|
|
248
|
+
...(prepared.backend !== undefined ? { backend: prepared.backend } : {}),
|
|
249
|
+
...(prepared.maxImageSize !== undefined
|
|
250
|
+
? { maxImageSize: prepared.maxImageSize }
|
|
251
|
+
: {}),
|
|
157
252
|
updatedAt: (options.now ?? (() => new Date().toISOString()))(),
|
|
158
253
|
};
|
|
159
254
|
await writeManifest(stagingDir, nextManifest);
|
|
@@ -161,8 +256,11 @@ export async function appendToExtractStore(options) {
|
|
|
161
256
|
committed = true;
|
|
162
257
|
return {
|
|
163
258
|
manifest: nextManifest,
|
|
164
|
-
model,
|
|
259
|
+
model: prepared.model,
|
|
260
|
+
provider: prepared.provider,
|
|
261
|
+
backend: prepared.backend,
|
|
165
262
|
addedMaterials: materials.length - previousManifest.materials.length,
|
|
263
|
+
cacheRebuilt,
|
|
166
264
|
};
|
|
167
265
|
}
|
|
168
266
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extract-store.js","sourceRoot":"","sources":["../src/extract-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"extract-store.js","sourceRoot":"","sources":["../src/extract-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { createExtractSession } from './create-extract-session.js';
|
|
2
2
|
export { createMlxExtractRuntime } from './create-mlx-extract-runtime.js';
|
|
3
|
+
export { createPytorchExtractRuntime } from './create-pytorch-extract-runtime.js';
|
|
4
|
+
export { createExtractRuntime } from './create-extract-runtime.js';
|
|
3
5
|
export { createDriver, resolveMergedModels, resolveModelSpec, } from './model-resolution.js';
|
|
4
6
|
export { resolveSessionModules } from './resolve-session-modules.js';
|
|
5
7
|
export { resolveDefaultContainerDir, } from './cli/constants.js';
|
|
@@ -13,5 +15,8 @@ export type { ExtractContext } from './extract-context.js';
|
|
|
13
15
|
export type { ChunkInput, ChunkInputValue, InputsInput, MaterialInput, MaterialsInput, MessageInput, MessagesInput, StandardMessageInput, ToolResultMessageInput, } from './extract-elements.js';
|
|
14
16
|
export type { ExtractCorpus, ExtractRequest, ExtractResult, ExtractSession, ExtractSessionCloseOptions, ExtractSessionOptions, } from './types.js';
|
|
15
17
|
export type { MlxExtractRuntime, MlxExtractRuntimeOptions, } from './create-mlx-extract-runtime.js';
|
|
18
|
+
export type { PyTorchExtractRuntime, PyTorchExtractRuntimeOptions, } from './create-pytorch-extract-runtime.js';
|
|
19
|
+
export type { ExtractRuntime, ExtractProvider, } from './extract-runtime-types.js';
|
|
20
|
+
export type { ExtractRuntimeOptions } from './create-extract-runtime.js';
|
|
16
21
|
export type { ExtractDriverOptions, ExtractDriverResult, } from './model-resolution.js';
|
|
17
22
|
//# sourceMappingURL=index.d.ts.map
|