@modular-prompt/extract 0.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/LICENSE +21 -0
- package/README.md +300 -0
- package/bin/modular-extract.js +3 -0
- package/dist/build-modules.d.ts +5 -0
- package/dist/build-modules.d.ts.map +1 -0
- package/dist/build-modules.js +41 -0
- package/dist/build-modules.js.map +1 -0
- package/dist/cache-lifecycle.d.ts +12 -0
- package/dist/cache-lifecycle.d.ts.map +1 -0
- package/dist/cache-lifecycle.js +44 -0
- package/dist/cache-lifecycle.js.map +1 -0
- package/dist/cli/constants.d.ts +11 -0
- package/dist/cli/constants.d.ts.map +1 -0
- package/dist/cli/constants.js +11 -0
- package/dist/cli/constants.js.map +1 -0
- package/dist/cli/create-command.d.ts +8 -0
- package/dist/cli/create-command.d.ts.map +1 -0
- package/dist/cli/create-command.js +48 -0
- package/dist/cli/create-command.js.map +1 -0
- package/dist/cli/extract-command.d.ts +8 -0
- package/dist/cli/extract-command.d.ts.map +1 -0
- package/dist/cli/extract-command.js +42 -0
- package/dist/cli/extract-command.js.map +1 -0
- package/dist/cli/load-materials.d.ts +3 -0
- package/dist/cli/load-materials.d.ts.map +1 -0
- package/dist/cli/load-materials.js +20 -0
- package/dist/cli/load-materials.js.map +1 -0
- package/dist/cli/manifest.d.ts +12 -0
- package/dist/cli/manifest.d.ts.map +1 -0
- package/dist/cli/manifest.js +27 -0
- package/dist/cli/manifest.js.map +1 -0
- package/dist/cli/render-prompt.d.ts +6 -0
- package/dist/cli/render-prompt.d.ts.map +1 -0
- package/dist/cli/render-prompt.js +11 -0
- package/dist/cli/render-prompt.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +127 -0
- package/dist/cli.js.map +1 -0
- package/dist/compile-extract-prompt.d.ts +6 -0
- package/dist/compile-extract-prompt.d.ts.map +1 -0
- package/dist/compile-extract-prompt.js +18 -0
- package/dist/compile-extract-prompt.js.map +1 -0
- package/dist/create-extract-session.d.ts +4 -0
- package/dist/create-extract-session.d.ts.map +1 -0
- package/dist/create-extract-session.js +63 -0
- package/dist/create-extract-session.js.map +1 -0
- package/dist/create-mlx-extract-runtime.d.ts +20 -0
- package/dist/create-mlx-extract-runtime.d.ts.map +1 -0
- package/dist/create-mlx-extract-runtime.js +22 -0
- package/dist/create-mlx-extract-runtime.js.map +1 -0
- package/dist/extract-context.d.ts +15 -0
- package/dist/extract-context.d.ts.map +1 -0
- package/dist/extract-context.js +39 -0
- package/dist/extract-context.js.map +1 -0
- package/dist/extract-elements.d.ts +48 -0
- package/dist/extract-elements.d.ts.map +1 -0
- package/dist/extract-elements.js +87 -0
- package/dist/extract-elements.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/modules/default-base-module.d.ts +15 -0
- package/dist/modules/default-base-module.d.ts.map +1 -0
- package/dist/modules/default-base-module.js +69 -0
- package/dist/modules/default-base-module.js.map +1 -0
- package/dist/modules/index.d.ts +2 -0
- package/dist/modules/index.d.ts.map +1 -0
- package/dist/modules/index.js +2 -0
- package/dist/modules/index.js.map +1 -0
- package/dist/previous-extractions.d.ts +12 -0
- package/dist/previous-extractions.d.ts.map +1 -0
- package/dist/previous-extractions.js +40 -0
- package/dist/previous-extractions.js.map +1 -0
- package/dist/resolve-session-modules.d.ts +9 -0
- package/dist/resolve-session-modules.d.ts.map +1 -0
- package/dist/resolve-session-modules.js +14 -0
- package/dist/resolve-session-modules.js.map +1 -0
- package/dist/section-templates.d.ts +9 -0
- package/dist/section-templates.d.ts.map +1 -0
- package/dist/section-templates.js +41 -0
- package/dist/section-templates.js.map +1 -0
- package/dist/test-helpers.d.ts +7 -0
- package/dist/test-helpers.d.ts.map +1 -0
- package/dist/test-helpers.js +28 -0
- package/dist/test-helpers.js.map +1 -0
- package/dist/types.d.ts +60 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +67 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { MaterialInput } from '../extract-elements.js';
|
|
2
|
+
export interface ExtractCacheManifest {
|
|
3
|
+
version: 1;
|
|
4
|
+
model: string;
|
|
5
|
+
materials: MaterialInput[];
|
|
6
|
+
createdAt: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function manifestPath(cacheDir: string): string;
|
|
9
|
+
export declare function manifestExists(cacheDir: string): Promise<boolean>;
|
|
10
|
+
export declare function readManifest(cacheDir: string): Promise<ExtractCacheManifest>;
|
|
11
|
+
export declare function writeManifest(cacheDir: string, manifest: ExtractCacheManifest): Promise<void>;
|
|
12
|
+
//# sourceMappingURL=manifest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAG5D,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAOlF;AAED,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { readFile, writeFile, access } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { MANIFEST_FILENAME } from './constants.js';
|
|
4
|
+
export function manifestPath(cacheDir) {
|
|
5
|
+
return join(cacheDir, MANIFEST_FILENAME);
|
|
6
|
+
}
|
|
7
|
+
export async function manifestExists(cacheDir) {
|
|
8
|
+
try {
|
|
9
|
+
await access(manifestPath(cacheDir));
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export async function readManifest(cacheDir) {
|
|
17
|
+
const raw = await readFile(manifestPath(cacheDir), 'utf-8');
|
|
18
|
+
const parsed = JSON.parse(raw);
|
|
19
|
+
if (parsed.version !== 1 || !parsed.model || !Array.isArray(parsed.materials)) {
|
|
20
|
+
throw new Error(`Invalid manifest: ${manifestPath(cacheDir)}`);
|
|
21
|
+
}
|
|
22
|
+
return parsed;
|
|
23
|
+
}
|
|
24
|
+
export async function writeManifest(cacheDir, manifest) {
|
|
25
|
+
await writeFile(manifestPath(cacheDir), `${JSON.stringify(manifest, null, 2)}\n`, 'utf-8');
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=manifest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/cli/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AASnD,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAyB,CAAC;IACvD,IAAI,MAAM,CAAC,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9E,MAAM,IAAI,KAAK,CAAC,qBAAqB,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjE,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,QAAgB,EAChB,QAA8B;IAE9B,MAAM,SAAS,CACb,YAAY,CAAC,QAAQ,CAAC,EACtB,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EACxC,OAAO,CACR,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ExtractCorpus, ExtractRequest } from '../types.js';
|
|
2
|
+
/**
|
|
3
|
+
* compile + completion 形式で抽出プロンプト全文をレンダリングする(MLX 不要)。
|
|
4
|
+
*/
|
|
5
|
+
export declare function renderExtractPrompt(corpus: ExtractCorpus, request: ExtractRequest): string;
|
|
6
|
+
//# sourceMappingURL=render-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-prompt.d.ts","sourceRoot":"","sources":["../../src/cli/render-prompt.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAEjE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GACtB,MAAM,CAQR"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { formatCompletionPrompt } from '@modular-prompt/driver';
|
|
2
|
+
import { compileExtractPrompt } from '../compile-extract-prompt.js';
|
|
3
|
+
import { defaultExtractBaseModule } from '../modules/default-base-module.js';
|
|
4
|
+
/**
|
|
5
|
+
* compile + completion 形式で抽出プロンプト全文をレンダリングする(MLX 不要)。
|
|
6
|
+
*/
|
|
7
|
+
export function renderExtractPrompt(corpus, request) {
|
|
8
|
+
const compiled = compileExtractPrompt(defaultExtractBaseModule, corpus, request, undefined);
|
|
9
|
+
return formatCompletionPrompt(compiled);
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=render-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"render-prompt.js","sourceRoot":"","sources":["../../src/cli/render-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,MAAM,mCAAmC,CAAC;AAG7E;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,OAAuB;IAEvB,MAAM,QAAQ,GAAG,oBAAoB,CACnC,wBAAwB,EACxB,MAAM,EACN,OAAO,EACP,SAAS,CACV,CAAC;IACF,OAAO,sBAAsB,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC"}
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":""}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { readFileSync } from 'node:fs';
|
|
3
|
+
import { dirname, join } from 'node:path';
|
|
4
|
+
import { fileURLToPath } from 'node:url';
|
|
5
|
+
import { DEFAULT_CACHE_DIR, DEFAULT_MAX_TOKENS, DEFAULT_MODEL } from './cli/constants.js';
|
|
6
|
+
import { runCreateCommand } from './cli/create-command.js';
|
|
7
|
+
import { runExtractCommand } from './cli/extract-command.js';
|
|
8
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const packageJson = JSON.parse(readFileSync(join(__dirname, '../package.json'), 'utf-8'));
|
|
10
|
+
function printHelp() {
|
|
11
|
+
console.log(`modular-extract v${packageJson.version}
|
|
12
|
+
|
|
13
|
+
Usage:
|
|
14
|
+
modular-extract create [-d <cache-dir>] [-m <model>] [--dry-run] <files...>
|
|
15
|
+
modular-extract extract -d <cache-dir> [--max-tokens <n>] [--dry-run] <query...>
|
|
16
|
+
|
|
17
|
+
Commands:
|
|
18
|
+
create Load input files and prepare KV cache in <cache-dir>
|
|
19
|
+
extract Run extraction query against a prepared cache directory
|
|
20
|
+
|
|
21
|
+
Options:
|
|
22
|
+
-d, --cache-dir <path> Cache directory (create default: ${DEFAULT_CACHE_DIR})
|
|
23
|
+
-m, --model <model> MLX model id (create default: ${DEFAULT_MODEL})
|
|
24
|
+
--max-tokens <n> Max tokens for extract (default: ${DEFAULT_MAX_TOKENS})
|
|
25
|
+
--dry-run Compile and print full prompt text (no MLX / no cache write)
|
|
26
|
+
-h, --help Show help
|
|
27
|
+
|
|
28
|
+
Cache cleanup:
|
|
29
|
+
rm -rf <cache-dir>
|
|
30
|
+
|
|
31
|
+
Note:
|
|
32
|
+
MLX backend is fixed to mlx-lm (backend: lm) for prompt cache support.
|
|
33
|
+
`);
|
|
34
|
+
}
|
|
35
|
+
function parseArgs(argv) {
|
|
36
|
+
const result = { positional: [] };
|
|
37
|
+
let index = 0;
|
|
38
|
+
while (index < argv.length) {
|
|
39
|
+
const arg = argv[index];
|
|
40
|
+
if (arg === '-h' || arg === '--help') {
|
|
41
|
+
result.command = 'help';
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
if (!result.command && !arg.startsWith('-')) {
|
|
45
|
+
if (arg === 'create' || arg === 'extract') {
|
|
46
|
+
result.command = arg;
|
|
47
|
+
index += 1;
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (arg === '-d' || arg === '--cache-dir') {
|
|
52
|
+
result.cacheDir = argv[index + 1];
|
|
53
|
+
if (!result.cacheDir) {
|
|
54
|
+
throw new Error(`${arg} requires a path`);
|
|
55
|
+
}
|
|
56
|
+
index += 2;
|
|
57
|
+
continue;
|
|
58
|
+
}
|
|
59
|
+
if (arg === '-m' || arg === '--model') {
|
|
60
|
+
result.model = argv[index + 1];
|
|
61
|
+
if (!result.model) {
|
|
62
|
+
throw new Error(`${arg} requires a model id`);
|
|
63
|
+
}
|
|
64
|
+
index += 2;
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (arg === '--dry-run') {
|
|
68
|
+
result.dryRun = true;
|
|
69
|
+
index += 1;
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
72
|
+
if (arg === '--max-tokens') {
|
|
73
|
+
const value = argv[index + 1];
|
|
74
|
+
const parsed = Number.parseInt(value ?? '', 10);
|
|
75
|
+
if (!Number.isFinite(parsed) || parsed < 1) {
|
|
76
|
+
throw new Error('--max-tokens must be a positive integer');
|
|
77
|
+
}
|
|
78
|
+
result.maxTokens = parsed;
|
|
79
|
+
index += 2;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (arg.startsWith('-')) {
|
|
83
|
+
throw new Error(`Unknown option: ${arg}`);
|
|
84
|
+
}
|
|
85
|
+
result.positional.push(arg);
|
|
86
|
+
index += 1;
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
async function main() {
|
|
91
|
+
const parsed = parseArgs(process.argv.slice(2));
|
|
92
|
+
if (!parsed.command || parsed.command === 'help') {
|
|
93
|
+
printHelp();
|
|
94
|
+
if (!parsed.command) {
|
|
95
|
+
process.exitCode = 1;
|
|
96
|
+
}
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (parsed.command === 'create') {
|
|
100
|
+
const output = await runCreateCommand({
|
|
101
|
+
cacheDir: parsed.cacheDir ?? DEFAULT_CACHE_DIR,
|
|
102
|
+
model: parsed.model ?? DEFAULT_MODEL,
|
|
103
|
+
files: parsed.positional,
|
|
104
|
+
dryRun: parsed.dryRun,
|
|
105
|
+
});
|
|
106
|
+
if (typeof output === 'string') {
|
|
107
|
+
process.stdout.write(`${output}\n`);
|
|
108
|
+
}
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!parsed.cacheDir) {
|
|
112
|
+
throw new Error('extract requires -d <cache-dir>');
|
|
113
|
+
}
|
|
114
|
+
const text = await runExtractCommand({
|
|
115
|
+
cacheDir: parsed.cacheDir,
|
|
116
|
+
query: parsed.positional.join(' '),
|
|
117
|
+
maxTokens: parsed.maxTokens,
|
|
118
|
+
dryRun: parsed.dryRun,
|
|
119
|
+
});
|
|
120
|
+
process.stdout.write(`${text}\n`);
|
|
121
|
+
}
|
|
122
|
+
main().catch((error) => {
|
|
123
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
124
|
+
console.error(message);
|
|
125
|
+
process.exit(1);
|
|
126
|
+
});
|
|
127
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { PromptModule } from '@modular-prompt/core';
|
|
2
|
+
import type { ExtractCorpus, ExtractRequest } from './types.js';
|
|
3
|
+
export declare function usesDefaultDataTemplates(baseModule?: PromptModule): boolean;
|
|
4
|
+
export declare function buildCompileModule<TContext>(sessionBaseModule: PromptModule<TContext>, corpus: ExtractCorpus, request: ExtractRequest, baseModule?: PromptModule<TContext>): PromptModule<TContext>;
|
|
5
|
+
export declare function compileExtractPrompt<TContext>(sessionBaseModule: PromptModule<TContext>, corpus: ExtractCorpus, request: ExtractRequest, baseModule?: PromptModule<TContext>): import("@modular-prompt/core").CompiledPrompt;
|
|
6
|
+
//# sourceMappingURL=compile-extract-prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-extract-prompt.d.ts","sourceRoot":"","sources":["../src/compile-extract-prompt.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAGhE,wBAAgB,wBAAwB,CACtC,UAAU,CAAC,EAAE,YAAY,GACxB,OAAO,CAET;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EACzC,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC,EACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,GAClC,YAAY,CAAC,QAAQ,CAAC,CAUxB;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAC3C,iBAAiB,EAAE,YAAY,CAAC,QAAQ,CAAC,EACzC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,UAAU,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,iDAKpC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { merge, compile } from '@modular-prompt/core';
|
|
2
|
+
import { buildCorpusModule, buildRequestModule } from './build-modules.js';
|
|
3
|
+
import { buildExtractContext } from './extract-context.js';
|
|
4
|
+
export function usesDefaultDataTemplates(baseModule) {
|
|
5
|
+
return baseModule === undefined;
|
|
6
|
+
}
|
|
7
|
+
export function buildCompileModule(sessionBaseModule, corpus, request, baseModule) {
|
|
8
|
+
if (usesDefaultDataTemplates(baseModule)) {
|
|
9
|
+
return sessionBaseModule;
|
|
10
|
+
}
|
|
11
|
+
return merge(sessionBaseModule, buildCorpusModule(corpus), buildRequestModule(request));
|
|
12
|
+
}
|
|
13
|
+
export function compileExtractPrompt(sessionBaseModule, corpus, request, baseModule) {
|
|
14
|
+
const context = buildExtractContext(corpus, request);
|
|
15
|
+
const module = buildCompileModule(sessionBaseModule, corpus, request, baseModule);
|
|
16
|
+
return compile(module, context);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=compile-extract-prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compile-extract-prompt.js","sourceRoot":"","sources":["../src/compile-extract-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,MAAM,UAAU,wBAAwB,CACtC,UAAyB;IAEzB,OAAO,UAAU,KAAK,SAAS,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,iBAAyC,EACzC,MAAqB,EACrB,OAAuB,EACvB,UAAmC;IAEnC,IAAI,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;QACzC,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CACV,iBAAiB,EACjB,iBAAiB,CAAC,MAAM,CAAC,EACzB,kBAAkB,CAAC,OAAO,CAAC,CACF,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,oBAAoB,CAClC,iBAAyC,EACzC,MAAqB,EACrB,OAAuB,EACvB,UAAmC;IAEnC,MAAM,OAAO,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAa,CAAC;IACjE,MAAM,MAAM,GAAG,kBAAkB,CAAC,iBAAiB,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;IAClF,OAAO,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { ExtractContext } from './extract-context.js';
|
|
2
|
+
import type { ExtractSession, ExtractSessionOptions } from './types.js';
|
|
3
|
+
export declare function createExtractSession<TContext = ExtractContext>(options: ExtractSessionOptions<TContext>): ExtractSession;
|
|
4
|
+
//# sourceMappingURL=create-extract-session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-extract-session.d.ts","sourceRoot":"","sources":["../src/create-extract-session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAiC,cAAc,EAA8B,qBAAqB,EAAE,MAAM,YAAY,CAAC;AA0BnI,wBAAgB,oBAAoB,CAAC,QAAQ,GAAG,cAAc,EAC5D,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC,GACvC,cAAc,CA0EhB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { merge } from '@modular-prompt/core';
|
|
2
|
+
import { resolveSessionModules } from './resolve-session-modules.js';
|
|
3
|
+
import { compileExtractPrompt } from './compile-extract-prompt.js';
|
|
4
|
+
import { ensureCacheControllerReady, prepareSessionCache, releaseSessionCache, resolveModelName, } from './cache-lifecycle.js';
|
|
5
|
+
function buildSessionBaseModule(baseModule, schema) {
|
|
6
|
+
if (!schema) {
|
|
7
|
+
return baseModule;
|
|
8
|
+
}
|
|
9
|
+
const schemaModule = {
|
|
10
|
+
schema: [{ type: 'json', content: schema }],
|
|
11
|
+
};
|
|
12
|
+
return merge(baseModule, schemaModule);
|
|
13
|
+
}
|
|
14
|
+
export function createExtractSession(options) {
|
|
15
|
+
const { driver, corpus, schema, cacheController, baseModule } = options;
|
|
16
|
+
const model = resolveModelName(options.model);
|
|
17
|
+
const sessionBaseModule = buildSessionBaseModule(resolveSessionModules(options), schema);
|
|
18
|
+
const history = [];
|
|
19
|
+
const cacheState = {
|
|
20
|
+
handle: null,
|
|
21
|
+
controllerReady: false,
|
|
22
|
+
};
|
|
23
|
+
let closed = false;
|
|
24
|
+
return {
|
|
25
|
+
async extract(request) {
|
|
26
|
+
if (closed) {
|
|
27
|
+
throw new Error('ExtractSession is closed');
|
|
28
|
+
}
|
|
29
|
+
await ensureCacheControllerReady(driver, cacheState);
|
|
30
|
+
await prepareSessionCache(cacheController, model, sessionBaseModule, corpus, request, baseModule, cacheState);
|
|
31
|
+
const compiled = compileExtractPrompt(sessionBaseModule, corpus, request, baseModule);
|
|
32
|
+
const queryOptions = cacheState.handle
|
|
33
|
+
? {
|
|
34
|
+
...request.options,
|
|
35
|
+
cache: false,
|
|
36
|
+
cacheHandle: cacheState.handle,
|
|
37
|
+
}
|
|
38
|
+
: request.options;
|
|
39
|
+
const queryResult = await driver.query(compiled, queryOptions);
|
|
40
|
+
const result = {
|
|
41
|
+
text: queryResult.content,
|
|
42
|
+
structured: queryResult.structuredOutput,
|
|
43
|
+
usage: queryResult.usage,
|
|
44
|
+
index: history.length,
|
|
45
|
+
};
|
|
46
|
+
history.push(result);
|
|
47
|
+
return result;
|
|
48
|
+
},
|
|
49
|
+
getHistory() {
|
|
50
|
+
return [...history];
|
|
51
|
+
},
|
|
52
|
+
async close(options) {
|
|
53
|
+
if (closed) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
closed = true;
|
|
57
|
+
if (options?.releaseCache !== false) {
|
|
58
|
+
releaseSessionCache(cacheController, cacheState);
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=create-extract-session.js.map
|
|
@@ -0,0 +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,EACnB,gBAAgB,GAEjB,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,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAE9C,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,CACX,CAAC;YAEF,MAAM,QAAQ,GAAG,oBAAoB,CACnC,iBAAiB,EACjB,MAAM,EACN,OAAO,EACP,UAAU,CACX,CAAC;YACF,MAAM,YAAY,GAAG,UAAU,CAAC,MAAM;gBACpC,CAAC,CAAC;oBACE,GAAG,OAAO,CAAC,OAAO;oBAClB,KAAK,EAAE,KAAc;oBACrB,WAAW,EAAE,UAAU,CAAC,MAAM;iBAC/B;gBACH,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;YAEpB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAkB;gBAC5B,IAAI,EAAE,WAAW,CAAC,OAAO;gBACzB,UAAU,EAAE,WAAW,CAAC,gBAAgB;gBACxC,KAAK,EAAE,WAAW,CAAC,KAAK;gBACxB,KAAK,EAAE,OAAO,CAAC,MAAM;aACtB,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,UAAU;YACR,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;QACtB,CAAC;QAED,KAAK,CAAC,KAAK,CAAC,OAAoC;YAC9C,IAAI,MAAM,EAAE,CAAC;gBACX,OAAO;YACT,CAAC;YACD,MAAM,GAAG,IAAI,CAAC;YAEd,IAAI,OAAO,EAAE,YAAY,KAAK,KAAK,EAAE,CAAC;gBACpC,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type AIDriver, type PromptCacheController } from '@modular-prompt/driver';
|
|
2
|
+
export interface MlxExtractRuntimeOptions {
|
|
3
|
+
model: string;
|
|
4
|
+
/** Fixed cache directory. When omitted, a managed temp directory is used. */
|
|
5
|
+
cacheDir?: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* MLX driver + cache controller bundle for extract sessions.
|
|
9
|
+
* Always uses mlx-lm backend (`backend: 'lm'`) — VLM auto-selection disables prompt cache.
|
|
10
|
+
* Lifecycle (close) is owned by the caller — not by ExtractSession.
|
|
11
|
+
*/
|
|
12
|
+
export interface MlxExtractRuntime {
|
|
13
|
+
driver: AIDriver;
|
|
14
|
+
cacheController: PromptCacheController;
|
|
15
|
+
model: string;
|
|
16
|
+
/** Release driver and cache controller when all sessions using this runtime are done. */
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export declare function createMlxExtractRuntime(options: MlxExtractRuntimeOptions): Promise<MlxExtractRuntime>;
|
|
20
|
+
//# sourceMappingURL=create-mlx-extract-runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mlx-extract-runtime.d.ts","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC3B,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,QAAQ,CAAC;IACjB,eAAe,EAAE,qBAAqB,CAAC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,iBAAiB,CAAC,CAuB5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { MlxCacheController, MlxDriver, } from '@modular-prompt/driver';
|
|
2
|
+
export async function createMlxExtractRuntime(options) {
|
|
3
|
+
const cacheController = new MlxCacheController(options.cacheDir ? { cacheDir: options.cacheDir } : undefined);
|
|
4
|
+
const driver = new MlxDriver({
|
|
5
|
+
model: options.model,
|
|
6
|
+
backend: 'lm',
|
|
7
|
+
cacheController,
|
|
8
|
+
});
|
|
9
|
+
if ('getCapabilities' in driver && typeof driver.getCapabilities === 'function') {
|
|
10
|
+
await driver.getCapabilities();
|
|
11
|
+
}
|
|
12
|
+
return {
|
|
13
|
+
driver,
|
|
14
|
+
cacheController,
|
|
15
|
+
model: options.model,
|
|
16
|
+
async close() {
|
|
17
|
+
await driver.close();
|
|
18
|
+
await cacheController.close();
|
|
19
|
+
},
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=create-mlx-extract-runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-mlx-extract-runtime.js","sourceRoot":"","sources":["../src/create-mlx-extract-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,SAAS,GAGV,MAAM,wBAAwB,CAAC;AAqBhC,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,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;QAC3B,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,OAAO,EAAE,IAAI;QACb,eAAe;KAChB,CAAC,CAAC;IAEH,IAAI,iBAAiB,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,eAAe,KAAK,UAAU,EAAE,CAAC;QAChF,MAAM,MAAM,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC;IAED,OAAO;QACL,MAAM;QACN,eAAe;QACf,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,CAAC,KAAK;YACT,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;YACrB,MAAM,eAAe,CAAC,KAAK,EAAE,CAAC;QAChC,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ChunkElement, MaterialElement, MessageElement, SectionContent, TextElement } from '@modular-prompt/core';
|
|
2
|
+
import type { ExtractCorpus, ExtractRequest } from './types.js';
|
|
3
|
+
/** compile() に渡す抽出セッションのコンテキスト。 */
|
|
4
|
+
export interface ExtractContext {
|
|
5
|
+
materials?: readonly MaterialElement[];
|
|
6
|
+
messages?: readonly MessageElement[];
|
|
7
|
+
inputs?: readonly ChunkElement[];
|
|
8
|
+
cue: string | SectionContent;
|
|
9
|
+
}
|
|
10
|
+
export declare function normalizeCue(cue: string | SectionContent): SectionContent;
|
|
11
|
+
export declare function buildExtractContext(corpus: ExtractCorpus, request: ExtractRequest): ExtractContext;
|
|
12
|
+
export declare function sectionHasContent<T>(content?: readonly T[]): content is readonly T[];
|
|
13
|
+
export declare function expandCueContent(cue: string | SectionContent): TextElement[];
|
|
14
|
+
export declare function sectionTemplateHeader(content: string): TextElement;
|
|
15
|
+
//# sourceMappingURL=extract-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-context.d.ts","sourceRoot":"","sources":["../src/extract-context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,cAAc,EACd,WAAW,EACZ,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOhE,mCAAmC;AACnC,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,QAAQ,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IACrC,MAAM,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,GAAG,EAAE,MAAM,GAAG,cAAc,CAAC;CAC9B;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,cAAc,CAEzE;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,GACtB,cAAc,CAOhB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,IAAI,SAAS,CAAC,EAAE,CAEpF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,WAAW,EAAE,CAqB5E;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW,CAElE"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { normalizeInputs, normalizeMaterials, normalizeMessages, } from './extract-elements.js';
|
|
2
|
+
export function normalizeCue(cue) {
|
|
3
|
+
return typeof cue === 'string' ? [cue] : cue;
|
|
4
|
+
}
|
|
5
|
+
export function buildExtractContext(corpus, request) {
|
|
6
|
+
return {
|
|
7
|
+
materials: normalizeMaterials(corpus.materials),
|
|
8
|
+
messages: normalizeMessages(corpus.messages),
|
|
9
|
+
inputs: normalizeInputs(request.inputs),
|
|
10
|
+
cue: request.cue,
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
export function sectionHasContent(content) {
|
|
14
|
+
return content != null && content.length > 0;
|
|
15
|
+
}
|
|
16
|
+
export function expandCueContent(cue) {
|
|
17
|
+
const content = normalizeCue(cue);
|
|
18
|
+
const result = [];
|
|
19
|
+
for (const item of content) {
|
|
20
|
+
if (typeof item === 'string') {
|
|
21
|
+
result.push({ type: 'text', content: item, cacheHint: 'contextual' });
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (typeof item === 'function') {
|
|
25
|
+
continue;
|
|
26
|
+
}
|
|
27
|
+
if (item && typeof item === 'object' && item.type === 'text') {
|
|
28
|
+
result.push({
|
|
29
|
+
...item,
|
|
30
|
+
cacheHint: item.cacheHint ?? 'contextual',
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
export function sectionTemplateHeader(content) {
|
|
37
|
+
return { type: 'text', content, cacheHint: 'static' };
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=extract-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-context.js","sourceRoot":"","sources":["../src/extract-context.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAU/B,MAAM,UAAU,YAAY,CAAC,GAA4B;IACvD,OAAO,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,MAAqB,EACrB,OAAuB;IAEvB,OAAO;QACL,SAAS,EAAE,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC;QAC/C,QAAQ,EAAE,iBAAiB,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5C,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC;QACvC,GAAG,EAAE,OAAO,CAAC,GAAG;KACjB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAI,OAAsB;IACzD,OAAO,OAAO,IAAI,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAA4B;IAC3D,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;IAClC,MAAM,MAAM,GAAkB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC,CAAC;YACtE,SAAS;QACX,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE,CAAC;YAC/B,SAAS;QACX,CAAC;QACD,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC7D,MAAM,CAAC,IAAI,CAAC;gBACV,GAAG,IAAI;gBACP,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,YAAY;aAC1C,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { Attachment, ChunkElement, MaterialElement, MessageElement, ToolCall, ToolResultKind } from '@modular-prompt/core';
|
|
2
|
+
/** 資料の最小入力。`id` 省略時は `title` を使用する。 */
|
|
3
|
+
export interface MaterialInput {
|
|
4
|
+
title: string;
|
|
5
|
+
content: string | Attachment[];
|
|
6
|
+
id?: string;
|
|
7
|
+
usage?: number;
|
|
8
|
+
}
|
|
9
|
+
/** 標準メッセージの最小入力。 */
|
|
10
|
+
export interface StandardMessageInput {
|
|
11
|
+
role: 'system' | 'assistant' | 'user';
|
|
12
|
+
content: string | Attachment[];
|
|
13
|
+
name?: string;
|
|
14
|
+
toolCalls?: ToolCall[];
|
|
15
|
+
}
|
|
16
|
+
/** ツール結果メッセージの最小入力。 */
|
|
17
|
+
export interface ToolResultMessageInput {
|
|
18
|
+
role: 'tool';
|
|
19
|
+
toolCallId: string;
|
|
20
|
+
name: string;
|
|
21
|
+
kind: ToolResultKind;
|
|
22
|
+
value: unknown;
|
|
23
|
+
}
|
|
24
|
+
export type MessageInput = StandardMessageInput | ToolResultMessageInput;
|
|
25
|
+
/** 補強情報(chunk)の最小入力。`partOf` 省略時は `inputs`。 */
|
|
26
|
+
export interface ChunkInput {
|
|
27
|
+
content: string | Attachment[];
|
|
28
|
+
partOf?: string;
|
|
29
|
+
index?: number;
|
|
30
|
+
total?: number;
|
|
31
|
+
usage?: number;
|
|
32
|
+
}
|
|
33
|
+
/** 文字列は `content` の省略記法。 */
|
|
34
|
+
export type ChunkInputValue = string | ChunkInput;
|
|
35
|
+
export type MaterialsInput = MaterialInput | readonly MaterialInput[];
|
|
36
|
+
export type MessagesInput = MessageInput | readonly MessageInput[];
|
|
37
|
+
export type InputsInput = ChunkInputValue | readonly ChunkInputValue[];
|
|
38
|
+
export declare function normalizeMaterial(input: MaterialInput, _index: number): MaterialElement;
|
|
39
|
+
export declare function normalizeMessage(input: MessageInput): MessageElement;
|
|
40
|
+
export declare function normalizeChunkInput(input: ChunkInputValue, _index: number): ChunkElement;
|
|
41
|
+
export declare function normalizeMaterials(materials?: MaterialsInput): readonly MaterialElement[] | undefined;
|
|
42
|
+
export declare function normalizeMessages(messages?: MessagesInput): readonly MessageElement[] | undefined;
|
|
43
|
+
export declare function normalizeInputs(inputs?: InputsInput): readonly ChunkElement[] | undefined;
|
|
44
|
+
/** 補強情報の単一 chunk 入力ヘルパー。 */
|
|
45
|
+
export declare function inputChunk(content: ChunkInput['content'], options?: Pick<ChunkInput, 'partOf' | 'index' | 'total' | 'usage'>): ChunkInput;
|
|
46
|
+
/** JSON オブジェクトを chunk 入力に変換するヘルパー。 */
|
|
47
|
+
export declare function inputChunksFromJson(data: unknown, partOf?: string): ChunkInput[];
|
|
48
|
+
//# sourceMappingURL=extract-elements.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-elements.d.ts","sourceRoot":"","sources":["../src/extract-elements.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,QAAQ,EACR,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,oBAAoB;AACpB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,QAAQ,GAAG,WAAW,GAAG,MAAM,CAAC;IACtC,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;CACxB;AAED,uBAAuB;AACvB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,MAAM,YAAY,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAEzE,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,GAAG,UAAU,EAAE,CAAC;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,4BAA4B;AAC5B,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,CAAC;AAElD,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,SAAS,aAAa,EAAE,CAAC;AACtE,MAAM,MAAM,aAAa,GAAG,YAAY,GAAG,SAAS,YAAY,EAAE,CAAC;AACnE,MAAM,MAAM,WAAW,GAAG,eAAe,GAAG,SAAS,eAAe,EAAE,CAAC;AAgBvE,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,MAAM,GACb,eAAe,CASjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG,cAAc,CAqBpE;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,MAAM,GACb,YAAY,CAcd;AAED,wBAAgB,kBAAkB,CAChC,SAAS,CAAC,EAAE,cAAc,GACzB,SAAS,eAAe,EAAE,GAAG,SAAS,CAKxC;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,CAAC,EAAE,aAAa,GACvB,SAAS,cAAc,EAAE,GAAG,SAAS,CAKvC;AAED,wBAAgB,eAAe,CAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,SAAS,YAAY,EAAE,GAAG,SAAS,CAKrC;AAED,4BAA4B;AAC5B,wBAAgB,UAAU,CACxB,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,EAC9B,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC,GACjE,UAAU,CAQZ;AAED,sCAAsC;AACtC,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,OAAO,EACb,MAAM,SAAW,GAChB,UAAU,EAAE,CAEd"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
function toInputArray(value) {
|
|
2
|
+
return (Array.isArray(value) ? value : [value]);
|
|
3
|
+
}
|
|
4
|
+
function withCacheHint(element, defaultHint) {
|
|
5
|
+
return {
|
|
6
|
+
...element,
|
|
7
|
+
cacheHint: defaultHint,
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export function normalizeMaterial(input, _index) {
|
|
11
|
+
const element = {
|
|
12
|
+
type: 'material',
|
|
13
|
+
id: input.id ?? input.title,
|
|
14
|
+
title: input.title,
|
|
15
|
+
content: input.content,
|
|
16
|
+
...(input.usage !== undefined ? { usage: input.usage } : {}),
|
|
17
|
+
};
|
|
18
|
+
return withCacheHint(element, 'immutable');
|
|
19
|
+
}
|
|
20
|
+
export function normalizeMessage(input) {
|
|
21
|
+
if (input.role === 'tool') {
|
|
22
|
+
const element = {
|
|
23
|
+
type: 'message',
|
|
24
|
+
role: 'tool',
|
|
25
|
+
toolCallId: input.toolCallId,
|
|
26
|
+
name: input.name,
|
|
27
|
+
kind: input.kind,
|
|
28
|
+
value: input.value,
|
|
29
|
+
};
|
|
30
|
+
return withCacheHint(element, 'contextual');
|
|
31
|
+
}
|
|
32
|
+
const element = {
|
|
33
|
+
type: 'message',
|
|
34
|
+
role: input.role,
|
|
35
|
+
content: input.content,
|
|
36
|
+
...(input.name !== undefined ? { name: input.name } : {}),
|
|
37
|
+
...(input.toolCalls !== undefined ? { toolCalls: input.toolCalls } : {}),
|
|
38
|
+
};
|
|
39
|
+
return withCacheHint(element, 'immutable');
|
|
40
|
+
}
|
|
41
|
+
export function normalizeChunkInput(input, _index) {
|
|
42
|
+
const chunk = typeof input === 'string'
|
|
43
|
+
? { content: input }
|
|
44
|
+
: input;
|
|
45
|
+
const element = {
|
|
46
|
+
type: 'chunk',
|
|
47
|
+
partOf: chunk.partOf ?? 'inputs',
|
|
48
|
+
content: chunk.content,
|
|
49
|
+
...(chunk.index !== undefined ? { index: chunk.index } : {}),
|
|
50
|
+
...(chunk.total !== undefined ? { total: chunk.total } : {}),
|
|
51
|
+
...(chunk.usage !== undefined ? { usage: chunk.usage } : {}),
|
|
52
|
+
};
|
|
53
|
+
return withCacheHint(element, 'contextual');
|
|
54
|
+
}
|
|
55
|
+
export function normalizeMaterials(materials) {
|
|
56
|
+
if (materials === undefined) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
return toInputArray(materials).map((input, index) => normalizeMaterial(input, index));
|
|
60
|
+
}
|
|
61
|
+
export function normalizeMessages(messages) {
|
|
62
|
+
if (messages === undefined) {
|
|
63
|
+
return undefined;
|
|
64
|
+
}
|
|
65
|
+
return toInputArray(messages).map((input) => normalizeMessage(input));
|
|
66
|
+
}
|
|
67
|
+
export function normalizeInputs(inputs) {
|
|
68
|
+
if (inputs === undefined) {
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
return toInputArray(inputs).map((input, index) => normalizeChunkInput(input, index));
|
|
72
|
+
}
|
|
73
|
+
/** 補強情報の単一 chunk 入力ヘルパー。 */
|
|
74
|
+
export function inputChunk(content, options) {
|
|
75
|
+
return {
|
|
76
|
+
content,
|
|
77
|
+
partOf: options?.partOf ?? 'inputs',
|
|
78
|
+
...(options?.index !== undefined ? { index: options.index } : {}),
|
|
79
|
+
...(options?.total !== undefined ? { total: options.total } : {}),
|
|
80
|
+
...(options?.usage !== undefined ? { usage: options.usage } : {}),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
/** JSON オブジェクトを chunk 入力に変換するヘルパー。 */
|
|
84
|
+
export function inputChunksFromJson(data, partOf = 'inputs') {
|
|
85
|
+
return [inputChunk(JSON.stringify(data, null, 2), { partOf })];
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=extract-elements.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extract-elements.js","sourceRoot":"","sources":["../src/extract-elements.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { createExtractSession } from './create-extract-session.js';
|
|
2
|
+
export { createMlxExtractRuntime } from './create-mlx-extract-runtime.js';
|
|
3
|
+
export { resolveSessionModules } from './resolve-session-modules.js';
|
|
4
|
+
export { compileExtractPrompt } from './compile-extract-prompt.js';
|
|
5
|
+
export { buildExtractContext } from './extract-context.js';
|
|
6
|
+
export { inputChunk, inputChunksFromJson, normalizeChunkInput, normalizeInputs, normalizeMaterial, normalizeMaterials, normalizeMessage, normalizeMessages, } from './extract-elements.js';
|
|
7
|
+
export { defaultExtractBaseModule, mergeExtractBaseModule } from './modules/index.js';
|
|
8
|
+
export { buildPreviousExtractionsInputs, formatPreviousExtractions, } from './previous-extractions.js';
|
|
9
|
+
export type { ExtractContext } from './extract-context.js';
|
|
10
|
+
export type { ChunkInput, ChunkInputValue, InputsInput, MaterialInput, MaterialsInput, MessageInput, MessagesInput, StandardMessageInput, ToolResultMessageInput, } from './extract-elements.js';
|
|
11
|
+
export type { ExtractCorpus, ExtractRequest, ExtractResult, ExtractSession, ExtractSessionCloseOptions, ExtractSessionOptions, } from './types.js';
|
|
12
|
+
export type { MlxExtractRuntime, MlxExtractRuntimeOptions, } from './create-mlx-extract-runtime.js';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EACL,8BAA8B,EAC9B,yBAAyB,GAC1B,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,YAAY,EACV,UAAU,EACV,eAAe,EACf,WAAW,EACX,aAAa,EACb,cAAc,EACd,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,sBAAsB,GACvB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,cAAc,EACd,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,iCAAiC,CAAC"}
|