@stacklink/sdk 0.3.10 → 0.3.14
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/compatibility.json +1 -1
- package/dist/src/domain/bot-contract.d.ts +671 -312
- package/dist/src/domain/bot-contract.d.ts.map +1 -1
- package/dist/src/domain/bot-contract.js +69 -1
- package/dist/src/domain/bot-contract.js.map +1 -1
- package/dist/src/domain/memory-contract.d.ts +117 -117
- package/dist/src/domain/platform-approval-contract.d.ts +119 -1
- package/dist/src/domain/platform-approval-contract.d.ts.map +1 -1
- package/dist/src/domain/platform-approval-contract.js +8 -0
- package/dist/src/domain/platform-approval-contract.js.map +1 -1
- package/dist/src/domain/provider-branding.d.ts.map +1 -1
- package/dist/src/domain/provider-branding.js +7 -0
- package/dist/src/domain/provider-branding.js.map +1 -1
- package/dist/src/domain/stacklink-meta-tools.d.ts +1 -1
- package/dist/src/domain/stacklink-meta-tools.d.ts.map +1 -1
- package/dist/src/domain/stacklink-meta-tools.js +2 -2
- package/dist/src/domain/stacklink-meta-tools.js.map +1 -1
- package/dist/src/sdk/index.d.ts +25 -2
- package/dist/src/sdk/index.d.ts.map +1 -1
- package/dist/src/sdk/index.js +9 -1
- package/dist/src/sdk/index.js.map +1 -1
- package/dist/src/sdk/vercel-ai.d.ts +2 -0
- package/dist/src/sdk/vercel-ai.d.ts.map +1 -1
- package/dist/src/sdk/vercel-ai.js +16 -2
- package/dist/src/sdk/vercel-ai.js.map +1 -1
- package/dist/src/services/content-normalization/content-type-capabilities.d.ts +15 -0
- package/dist/src/services/content-normalization/content-type-capabilities.d.ts.map +1 -0
- package/dist/src/services/content-normalization/content-type-capabilities.js +164 -0
- package/dist/src/services/content-normalization/content-type-capabilities.js.map +1 -0
- package/dist/src/services/content-normalization/normalized-content-artifact.d.ts +230 -0
- package/dist/src/services/content-normalization/normalized-content-artifact.d.ts.map +1 -0
- package/dist/src/services/content-normalization/normalized-content-artifact.js +147 -0
- package/dist/src/services/content-normalization/normalized-content-artifact.js.map +1 -0
- package/package.json +1 -1
|
@@ -8,10 +8,10 @@ export function createStacklinkVercelTools(session, options = {}) {
|
|
|
8
8
|
description: entry.description,
|
|
9
9
|
// Preserve optional/omitted fields and open provider objects. Strict
|
|
10
10
|
// generation must not silently normalize these public contracts.
|
|
11
|
-
strict:
|
|
11
|
+
strict: entry.name === 'STACKLINK_SEARCH_TOOLS',
|
|
12
12
|
get inputSchema() {
|
|
13
13
|
const parameters = options.inputSchema?.(entry.name, entry.parameters) ?? entry.parameters;
|
|
14
|
-
return jsonSchema(parameters, { validate: value => validateFrameworkToolInput(entry.name, parameters, value) });
|
|
14
|
+
return jsonSchema(stacklinkGenerationSchema(entry.name, parameters), { validate: value => validateFrameworkToolInput(entry.name, parameters, value) });
|
|
15
15
|
},
|
|
16
16
|
outputSchema: jsonSchema(entry.outputSchema),
|
|
17
17
|
execute: async (input, execution) => {
|
|
@@ -31,6 +31,20 @@ export function createStacklinkVercelTools(session, options = {}) {
|
|
|
31
31
|
}),
|
|
32
32
|
]));
|
|
33
33
|
}
|
|
34
|
+
/** The three legal search forms preserve omitted fields without nullable coercion. */
|
|
35
|
+
export function stacklinkGenerationSchema(name, canonical) {
|
|
36
|
+
if (name !== 'STACKLINK_SEARCH_TOOLS')
|
|
37
|
+
return canonical;
|
|
38
|
+
const properties = canonical.properties;
|
|
39
|
+
const queries = properties.queries;
|
|
40
|
+
const item = queries.items;
|
|
41
|
+
const fields = item.properties;
|
|
42
|
+
return { ...canonical, properties: { ...properties, queries: { ...queries, items: {
|
|
43
|
+
anyOf: [['id', 'task'], ['id', 'task', 'providerHint'], ['id', 'task', 'providerRef']].map(keys => ({
|
|
44
|
+
type: 'object', additionalProperties: false, properties: Object.fromEntries(keys.map(key => [key, fields[key]])), required: keys,
|
|
45
|
+
})),
|
|
46
|
+
} } } };
|
|
47
|
+
}
|
|
34
48
|
export function withStacklinkMemory(model, options) {
|
|
35
49
|
const lifecycle = createStacklinkMemoryLifecycle(options);
|
|
36
50
|
const wrapped = wrapLanguageModel({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../../../../src/sdk/vercel-ai.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAoC,MAAM,IAAI,CAAC;AAQ3F,OAAO,EACL,8BAA8B,GAM/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,2BAA2B,EAAE,0BAA0B,EAAkC,MAAM,sBAAsB,CAAC;AAY/H,MAAM,UAAU,0BAA0B,CACxC,OAAkC,EAClC,UAAuC,EAAE;IAEzC,OAAO,MAAM,CAAC,WAAW,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5E,KAAK,CAAC,IAAI;QACV,IAAI,CAAC;YACH,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,qEAAqE;YACrE,iEAAiE;YACjE,MAAM,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"vercel-ai.js","sourceRoot":"","sources":["../../../../../src/sdk/vercel-ai.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type ContentExtractionMode = 'plain_text' | 'html' | 'spreadsheet' | 'docx' | 'pdf' | 'pptx' | 'rtf' | 'eml' | 'image' | 'audio' | 'video' | 'zip_manifest' | 'unsupported';
|
|
2
|
+
export interface ContentFileCapability {
|
|
3
|
+
mode: ContentExtractionMode;
|
|
4
|
+
isTextLike: boolean;
|
|
5
|
+
canRenderPages: boolean;
|
|
6
|
+
canPreviewManifest: boolean;
|
|
7
|
+
supported: boolean;
|
|
8
|
+
reason?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function getFilenameExtension(filename: string): string;
|
|
11
|
+
export declare function getContentFileCapability(input: {
|
|
12
|
+
mediaType: string;
|
|
13
|
+
filename: string;
|
|
14
|
+
}): ContentFileCapability;
|
|
15
|
+
//# sourceMappingURL=content-type-capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type-capabilities.d.ts","sourceRoot":"","sources":["../../../../../../src/services/content-normalization/content-type-capabilities.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAC7B,YAAY,GACZ,MAAM,GACN,aAAa,GACb,MAAM,GACN,KAAK,GACL,MAAM,GACN,KAAK,GACL,KAAK,GACL,OAAO,GACP,OAAO,GACP,OAAO,GACP,cAAc,GACd,aAAa,CAAC;AAElB,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,UAAU,EAAE,OAAO,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAkFD,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS7D;AAQD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,qBAAqB,CA4FxB"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
const TEXT_EXTENSIONS = new Set([
|
|
2
|
+
'txt',
|
|
3
|
+
'csv',
|
|
4
|
+
'json',
|
|
5
|
+
'md',
|
|
6
|
+
'markdown',
|
|
7
|
+
'xml',
|
|
8
|
+
'html',
|
|
9
|
+
'htm',
|
|
10
|
+
'css',
|
|
11
|
+
'scss',
|
|
12
|
+
'less',
|
|
13
|
+
'js',
|
|
14
|
+
'jsx',
|
|
15
|
+
'ts',
|
|
16
|
+
'tsx',
|
|
17
|
+
'mjs',
|
|
18
|
+
'cjs',
|
|
19
|
+
'py',
|
|
20
|
+
'java',
|
|
21
|
+
'c',
|
|
22
|
+
'cc',
|
|
23
|
+
'cpp',
|
|
24
|
+
'h',
|
|
25
|
+
'hpp',
|
|
26
|
+
'go',
|
|
27
|
+
'rs',
|
|
28
|
+
'rb',
|
|
29
|
+
'php',
|
|
30
|
+
'sql',
|
|
31
|
+
'sh',
|
|
32
|
+
'bash',
|
|
33
|
+
'zsh',
|
|
34
|
+
'fish',
|
|
35
|
+
'ps1',
|
|
36
|
+
'bat',
|
|
37
|
+
'cmd',
|
|
38
|
+
'yaml',
|
|
39
|
+
'yml',
|
|
40
|
+
'toml',
|
|
41
|
+
'ini',
|
|
42
|
+
'conf',
|
|
43
|
+
'log',
|
|
44
|
+
]);
|
|
45
|
+
const TEXT_FILENAMES = new Set([
|
|
46
|
+
'.env',
|
|
47
|
+
'.gitignore',
|
|
48
|
+
'dockerfile',
|
|
49
|
+
'makefile',
|
|
50
|
+
]);
|
|
51
|
+
const SPREADSHEET_EXTENSIONS = new Set(['xlsx', 'xls', 'xlsm', 'csv']);
|
|
52
|
+
const DOCX_EXTENSIONS = new Set(['docx']);
|
|
53
|
+
const LEGACY_DOC_EXTENSIONS = new Set(['doc']);
|
|
54
|
+
const PDF_EXTENSIONS = new Set(['pdf']);
|
|
55
|
+
const PPTX_EXTENSIONS = new Set(['pptx']);
|
|
56
|
+
const RTF_EXTENSIONS = new Set(['rtf']);
|
|
57
|
+
const EML_EXTENSIONS = new Set(['eml']);
|
|
58
|
+
const ZIP_EXTENSIONS = new Set(['zip']);
|
|
59
|
+
const HTML_EXTENSIONS = new Set(['html', 'htm']);
|
|
60
|
+
const IMAGE_EXTENSIONS = new Set(['png', 'jpg', 'jpeg', 'webp', 'gif']);
|
|
61
|
+
const AUDIO_EXTENSIONS = new Set(['mp3', 'mpeg', 'mpga', 'm4a', 'wav', 'webm']);
|
|
62
|
+
const VIDEO_EXTENSIONS = new Set(['mp4', 'mpeg', 'webm']);
|
|
63
|
+
const IMAGE_MEDIA_TYPES = new Set(['image/png', 'image/jpeg', 'image/webp', 'image/gif']);
|
|
64
|
+
const AUDIO_MEDIA_TYPES = new Set([
|
|
65
|
+
'audio/mpeg',
|
|
66
|
+
'audio/mp4',
|
|
67
|
+
'audio/mpga',
|
|
68
|
+
'audio/x-m4a',
|
|
69
|
+
'audio/wav',
|
|
70
|
+
'audio/x-wav',
|
|
71
|
+
'audio/webm',
|
|
72
|
+
]);
|
|
73
|
+
const VIDEO_MEDIA_TYPES = new Set(['video/mp4', 'video/mpeg', 'video/webm']);
|
|
74
|
+
function lowerTrim(value) {
|
|
75
|
+
return (value ?? '').trim().toLowerCase();
|
|
76
|
+
}
|
|
77
|
+
export function getFilenameExtension(filename) {
|
|
78
|
+
const lower = lowerTrim(filename);
|
|
79
|
+
const slashIndex = Math.max(lower.lastIndexOf('/'), lower.lastIndexOf('\\'));
|
|
80
|
+
const basename = slashIndex >= 0 ? lower.slice(slashIndex + 1) : lower;
|
|
81
|
+
const dotIndex = basename.lastIndexOf('.');
|
|
82
|
+
if (dotIndex <= 0 || dotIndex === basename.length - 1) {
|
|
83
|
+
return '';
|
|
84
|
+
}
|
|
85
|
+
return basename.slice(dotIndex + 1);
|
|
86
|
+
}
|
|
87
|
+
function getBasename(filename) {
|
|
88
|
+
const lower = lowerTrim(filename);
|
|
89
|
+
const slashIndex = Math.max(lower.lastIndexOf('/'), lower.lastIndexOf('\\'));
|
|
90
|
+
return slashIndex >= 0 ? lower.slice(slashIndex + 1) : lower;
|
|
91
|
+
}
|
|
92
|
+
export function getContentFileCapability(input) {
|
|
93
|
+
const mediaType = lowerTrim(input.mediaType);
|
|
94
|
+
const basename = getBasename(input.filename);
|
|
95
|
+
const extension = getFilenameExtension(input.filename);
|
|
96
|
+
const hasTypedMedia = IMAGE_MEDIA_TYPES.has(mediaType)
|
|
97
|
+
|| VIDEO_MEDIA_TYPES.has(mediaType)
|
|
98
|
+
|| AUDIO_MEDIA_TYPES.has(mediaType);
|
|
99
|
+
if (mediaType === 'text/html' || HTML_EXTENSIONS.has(extension)) {
|
|
100
|
+
return { mode: 'html', isTextLike: true, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
101
|
+
}
|
|
102
|
+
if (IMAGE_MEDIA_TYPES.has(mediaType) || (!hasTypedMedia && IMAGE_EXTENSIONS.has(extension))) {
|
|
103
|
+
return { mode: 'image', isTextLike: false, canRenderPages: true, canPreviewManifest: false, supported: true };
|
|
104
|
+
}
|
|
105
|
+
if (VIDEO_MEDIA_TYPES.has(mediaType) || (!hasTypedMedia && VIDEO_EXTENSIONS.has(extension))) {
|
|
106
|
+
return { mode: 'video', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
107
|
+
}
|
|
108
|
+
if (AUDIO_MEDIA_TYPES.has(mediaType) || (!hasTypedMedia && AUDIO_EXTENSIONS.has(extension))) {
|
|
109
|
+
return { mode: 'audio', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
110
|
+
}
|
|
111
|
+
if (mediaType.includes('spreadsheet')
|
|
112
|
+
|| mediaType.includes('excel')
|
|
113
|
+
|| SPREADSHEET_EXTENSIONS.has(extension)) {
|
|
114
|
+
return { mode: 'spreadsheet', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
115
|
+
}
|
|
116
|
+
if (mediaType.includes('wordprocessingml') || DOCX_EXTENSIONS.has(extension)) {
|
|
117
|
+
return { mode: 'docx', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
118
|
+
}
|
|
119
|
+
if (mediaType === 'application/msword' || LEGACY_DOC_EXTENSIONS.has(extension)) {
|
|
120
|
+
return {
|
|
121
|
+
mode: 'unsupported',
|
|
122
|
+
isTextLike: false,
|
|
123
|
+
canRenderPages: false,
|
|
124
|
+
canPreviewManifest: false,
|
|
125
|
+
supported: false,
|
|
126
|
+
reason: 'Legacy .doc (Word 97-2003) is not supported. Convert it to .docx or PDF and re-upload.',
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
if (mediaType === 'application/pdf' || PDF_EXTENSIONS.has(extension)) {
|
|
130
|
+
return { mode: 'pdf', isTextLike: false, canRenderPages: true, canPreviewManifest: false, supported: true };
|
|
131
|
+
}
|
|
132
|
+
if (mediaType.includes('presentationml') || PPTX_EXTENSIONS.has(extension)) {
|
|
133
|
+
return { mode: 'pptx', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
134
|
+
}
|
|
135
|
+
if (mediaType === 'application/rtf' || mediaType === 'text/rtf' || RTF_EXTENSIONS.has(extension)) {
|
|
136
|
+
return { mode: 'rtf', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
137
|
+
}
|
|
138
|
+
if (mediaType === 'message/rfc822' || EML_EXTENSIONS.has(extension)) {
|
|
139
|
+
return { mode: 'eml', isTextLike: false, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
140
|
+
}
|
|
141
|
+
if (mediaType === 'application/zip'
|
|
142
|
+
|| mediaType === 'application/x-zip-compressed'
|
|
143
|
+
|| ZIP_EXTENSIONS.has(extension)) {
|
|
144
|
+
return { mode: 'zip_manifest', isTextLike: false, canRenderPages: false, canPreviewManifest: true, supported: true };
|
|
145
|
+
}
|
|
146
|
+
if (mediaType.startsWith('text/') || TEXT_EXTENSIONS.has(extension) || TEXT_FILENAMES.has(basename)) {
|
|
147
|
+
return { mode: 'plain_text', isTextLike: true, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
148
|
+
}
|
|
149
|
+
if (mediaType === 'application/json'
|
|
150
|
+
|| mediaType === 'application/xml'
|
|
151
|
+
|| mediaType === 'application/x-yaml'
|
|
152
|
+
|| mediaType === 'application/yaml') {
|
|
153
|
+
return { mode: 'plain_text', isTextLike: true, canRenderPages: false, canPreviewManifest: false, supported: true };
|
|
154
|
+
}
|
|
155
|
+
return {
|
|
156
|
+
mode: 'unsupported',
|
|
157
|
+
isTextLike: false,
|
|
158
|
+
canRenderPages: false,
|
|
159
|
+
canPreviewManifest: false,
|
|
160
|
+
supported: false,
|
|
161
|
+
reason: `Unsupported file type for "${input.filename}" (mediaType="${input.mediaType}"). Upload text, HTML, PDF, DOCX, spreadsheet, presentation, image, audio, video, EML, or ZIP content.`,
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
//# sourceMappingURL=content-type-capabilities.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-type-capabilities.js","sourceRoot":"","sources":["../../../../../../src/services/content-normalization/content-type-capabilities.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,230 @@
|
|
|
1
|
+
import type { ContentExtractionMode } from './content-type-capabilities.js';
|
|
2
|
+
export declare const CONTENT_NORMALIZER_VERSION = "stacklink-content-v1";
|
|
3
|
+
export type NormalizedContentKind = ContentExtractionMode;
|
|
4
|
+
export type ContentLocator = {
|
|
5
|
+
kind: 'file';
|
|
6
|
+
} | {
|
|
7
|
+
kind: 'text_lines';
|
|
8
|
+
startLine: number;
|
|
9
|
+
endLine?: number;
|
|
10
|
+
} | {
|
|
11
|
+
kind: 'pdf_page';
|
|
12
|
+
pageNumber: number;
|
|
13
|
+
} | {
|
|
14
|
+
kind: 'pdf_pages';
|
|
15
|
+
startPage: number;
|
|
16
|
+
endPage: number;
|
|
17
|
+
} | {
|
|
18
|
+
kind: 'spreadsheet_sheet';
|
|
19
|
+
sheetName: string;
|
|
20
|
+
} | {
|
|
21
|
+
kind: 'spreadsheet_range';
|
|
22
|
+
sheetName: string;
|
|
23
|
+
startRow: number;
|
|
24
|
+
endRow?: number;
|
|
25
|
+
startColumn?: string;
|
|
26
|
+
endColumn?: string;
|
|
27
|
+
} | {
|
|
28
|
+
kind: 'docx_paragraph';
|
|
29
|
+
paragraphIndex: number;
|
|
30
|
+
} | {
|
|
31
|
+
kind: 'docx_table';
|
|
32
|
+
tableIndex: number;
|
|
33
|
+
} | {
|
|
34
|
+
kind: 'docx_section';
|
|
35
|
+
sectionIndex: number;
|
|
36
|
+
heading?: string;
|
|
37
|
+
} | {
|
|
38
|
+
kind: 'pptx_slide';
|
|
39
|
+
slideNumber: number;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'eml_part';
|
|
42
|
+
part: 'headers' | 'body' | 'attachment_manifest';
|
|
43
|
+
} | {
|
|
44
|
+
kind: 'html_section';
|
|
45
|
+
heading?: string;
|
|
46
|
+
sectionIndex: number;
|
|
47
|
+
} | {
|
|
48
|
+
kind: 'image_region';
|
|
49
|
+
pageNumber?: number;
|
|
50
|
+
description?: string;
|
|
51
|
+
} | {
|
|
52
|
+
kind: 'media_segment';
|
|
53
|
+
startSeconds: number;
|
|
54
|
+
endSeconds: number;
|
|
55
|
+
speaker?: string;
|
|
56
|
+
} | {
|
|
57
|
+
kind: 'zip_entry';
|
|
58
|
+
path: string;
|
|
59
|
+
};
|
|
60
|
+
export interface ContentNormalizationWarning {
|
|
61
|
+
code: string;
|
|
62
|
+
message: string;
|
|
63
|
+
locator?: ContentLocator;
|
|
64
|
+
}
|
|
65
|
+
export interface ContentLineSpan {
|
|
66
|
+
lineNumber: number;
|
|
67
|
+
startOffset: number;
|
|
68
|
+
endOffset: number;
|
|
69
|
+
}
|
|
70
|
+
export interface NormalizedPage {
|
|
71
|
+
pageNumber: number;
|
|
72
|
+
text: string;
|
|
73
|
+
charStart?: number;
|
|
74
|
+
charEnd?: number;
|
|
75
|
+
}
|
|
76
|
+
export interface NormalizedSpreadsheetSheet {
|
|
77
|
+
name: string;
|
|
78
|
+
rowCount?: number;
|
|
79
|
+
columnCount?: number;
|
|
80
|
+
range?: string;
|
|
81
|
+
previewStartRow?: number;
|
|
82
|
+
previewEndRow?: number;
|
|
83
|
+
previewStartColumn?: string;
|
|
84
|
+
previewEndColumn?: string;
|
|
85
|
+
previewCsv: string;
|
|
86
|
+
previewCells?: string[][];
|
|
87
|
+
truncatedRows: boolean;
|
|
88
|
+
charStart?: number;
|
|
89
|
+
charEnd?: number;
|
|
90
|
+
}
|
|
91
|
+
export interface NormalizedDocxParagraph {
|
|
92
|
+
paragraphIndex: number;
|
|
93
|
+
text: string;
|
|
94
|
+
charStart?: number;
|
|
95
|
+
charEnd?: number;
|
|
96
|
+
}
|
|
97
|
+
export interface NormalizedDocxTable {
|
|
98
|
+
tableIndex: number;
|
|
99
|
+
text: string;
|
|
100
|
+
}
|
|
101
|
+
export interface NormalizedDocxSection {
|
|
102
|
+
sectionIndex: number;
|
|
103
|
+
heading?: string;
|
|
104
|
+
text: string;
|
|
105
|
+
charStart?: number;
|
|
106
|
+
charEnd?: number;
|
|
107
|
+
}
|
|
108
|
+
export interface NormalizedPptxSlide {
|
|
109
|
+
slideNumber: number;
|
|
110
|
+
text: string;
|
|
111
|
+
notesText?: string;
|
|
112
|
+
charStart?: number;
|
|
113
|
+
charEnd?: number;
|
|
114
|
+
}
|
|
115
|
+
export interface NormalizedEmail {
|
|
116
|
+
headers: Record<string, string>;
|
|
117
|
+
bodyText: string;
|
|
118
|
+
attachmentManifest: string[];
|
|
119
|
+
}
|
|
120
|
+
export interface NormalizedZipEntry {
|
|
121
|
+
path: string;
|
|
122
|
+
directory: boolean;
|
|
123
|
+
uncompressedSize?: number;
|
|
124
|
+
}
|
|
125
|
+
export interface NormalizedHtmlSection {
|
|
126
|
+
sectionIndex: number;
|
|
127
|
+
heading?: string;
|
|
128
|
+
text: string;
|
|
129
|
+
charStart: number;
|
|
130
|
+
charEnd: number;
|
|
131
|
+
}
|
|
132
|
+
export interface NormalizedVisualContent {
|
|
133
|
+
pageNumber?: number;
|
|
134
|
+
text: string;
|
|
135
|
+
description?: string;
|
|
136
|
+
charStart?: number;
|
|
137
|
+
charEnd?: number;
|
|
138
|
+
}
|
|
139
|
+
export interface NormalizedMediaSegment {
|
|
140
|
+
startSeconds: number;
|
|
141
|
+
endSeconds: number;
|
|
142
|
+
text: string;
|
|
143
|
+
speaker?: string;
|
|
144
|
+
charStart?: number;
|
|
145
|
+
charEnd?: number;
|
|
146
|
+
}
|
|
147
|
+
export interface NormalizedContentArtifact {
|
|
148
|
+
kind: NormalizedContentKind;
|
|
149
|
+
filename: string;
|
|
150
|
+
mediaType: string;
|
|
151
|
+
extractorVersion: typeof CONTENT_NORMALIZER_VERSION;
|
|
152
|
+
plainText: string;
|
|
153
|
+
lineMap?: ContentLineSpan[];
|
|
154
|
+
pages?: NormalizedPage[];
|
|
155
|
+
sheets?: NormalizedSpreadsheetSheet[];
|
|
156
|
+
docx?: {
|
|
157
|
+
paragraphs: NormalizedDocxParagraph[];
|
|
158
|
+
tables: NormalizedDocxTable[];
|
|
159
|
+
sections: NormalizedDocxSection[];
|
|
160
|
+
};
|
|
161
|
+
slides?: NormalizedPptxSlide[];
|
|
162
|
+
email?: NormalizedEmail;
|
|
163
|
+
htmlSections?: NormalizedHtmlSection[];
|
|
164
|
+
visuals?: NormalizedVisualContent[];
|
|
165
|
+
mediaSegments?: NormalizedMediaSegment[];
|
|
166
|
+
durationSeconds?: number;
|
|
167
|
+
zipManifest?: NormalizedZipEntry[];
|
|
168
|
+
warnings: ContentNormalizationWarning[];
|
|
169
|
+
unsupportedReason?: string;
|
|
170
|
+
}
|
|
171
|
+
export declare function compactNormalizedContentStructure(artifact: NormalizedContentArtifact): {
|
|
172
|
+
kind: ContentExtractionMode;
|
|
173
|
+
pages: {
|
|
174
|
+
pageNumber: number;
|
|
175
|
+
charStart: number | null;
|
|
176
|
+
charEnd: number | null;
|
|
177
|
+
}[];
|
|
178
|
+
sheets: {
|
|
179
|
+
name: string;
|
|
180
|
+
range: string | null;
|
|
181
|
+
rowCount: number | null;
|
|
182
|
+
columnCount: number | null;
|
|
183
|
+
charStart: number | null;
|
|
184
|
+
charEnd: number | null;
|
|
185
|
+
previewStartRow: number | null;
|
|
186
|
+
previewEndRow: number | null;
|
|
187
|
+
previewStartColumn: string | null;
|
|
188
|
+
previewEndColumn: string | null;
|
|
189
|
+
}[];
|
|
190
|
+
docxParagraphs: {
|
|
191
|
+
paragraphIndex: number;
|
|
192
|
+
charStart: number | null;
|
|
193
|
+
charEnd: number | null;
|
|
194
|
+
}[];
|
|
195
|
+
docxSections: {
|
|
196
|
+
sectionIndex: number;
|
|
197
|
+
heading: string | null;
|
|
198
|
+
charStart: number | null;
|
|
199
|
+
charEnd: number | null;
|
|
200
|
+
}[];
|
|
201
|
+
slides: {
|
|
202
|
+
slideNumber: number;
|
|
203
|
+
charStart: number | null;
|
|
204
|
+
charEnd: number | null;
|
|
205
|
+
}[];
|
|
206
|
+
htmlSections: {
|
|
207
|
+
sectionIndex: number;
|
|
208
|
+
heading: string | null;
|
|
209
|
+
charStart: number;
|
|
210
|
+
charEnd: number;
|
|
211
|
+
}[];
|
|
212
|
+
mediaSegments: {
|
|
213
|
+
startSeconds: number;
|
|
214
|
+
endSeconds: number;
|
|
215
|
+
speaker: string | null;
|
|
216
|
+
charStart: number | null;
|
|
217
|
+
charEnd: number | null;
|
|
218
|
+
}[];
|
|
219
|
+
visuals: {
|
|
220
|
+
pageNumber: number | null;
|
|
221
|
+
description: string | null;
|
|
222
|
+
charStart: number | null;
|
|
223
|
+
charEnd: number | null;
|
|
224
|
+
}[];
|
|
225
|
+
durationSeconds: number | null;
|
|
226
|
+
warnings: ContentNormalizationWarning[];
|
|
227
|
+
};
|
|
228
|
+
export declare function buildContentLineMap(text: string): ContentLineSpan[];
|
|
229
|
+
export declare function formatContentLocator(locator: ContentLocator): string;
|
|
230
|
+
//# sourceMappingURL=normalized-content-artifact.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalized-content-artifact.d.ts","sourceRoot":"","sources":["../../../../../../src/services/content-normalization/normalized-content-artifact.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
export const CONTENT_NORMALIZER_VERSION = 'stacklink-content-v1';
|
|
2
|
+
export function compactNormalizedContentStructure(artifact) {
|
|
3
|
+
return {
|
|
4
|
+
kind: artifact.kind,
|
|
5
|
+
pages: artifact.pages?.map((page) => ({
|
|
6
|
+
pageNumber: page.pageNumber,
|
|
7
|
+
charStart: page.charStart ?? null,
|
|
8
|
+
charEnd: page.charEnd ?? null,
|
|
9
|
+
})) ?? [],
|
|
10
|
+
sheets: artifact.sheets?.map((sheet) => ({
|
|
11
|
+
name: sheet.name,
|
|
12
|
+
range: sheet.range ?? null,
|
|
13
|
+
rowCount: sheet.rowCount ?? null,
|
|
14
|
+
columnCount: sheet.columnCount ?? null,
|
|
15
|
+
charStart: sheet.charStart ?? null,
|
|
16
|
+
charEnd: sheet.charEnd ?? null,
|
|
17
|
+
previewStartRow: sheet.previewStartRow ?? null,
|
|
18
|
+
previewEndRow: sheet.previewEndRow ?? null,
|
|
19
|
+
previewStartColumn: sheet.previewStartColumn ?? null,
|
|
20
|
+
previewEndColumn: sheet.previewEndColumn ?? null,
|
|
21
|
+
})) ?? [],
|
|
22
|
+
docxParagraphs: artifact.docx?.paragraphs.map((paragraph) => ({
|
|
23
|
+
paragraphIndex: paragraph.paragraphIndex,
|
|
24
|
+
charStart: paragraph.charStart ?? null,
|
|
25
|
+
charEnd: paragraph.charEnd ?? null,
|
|
26
|
+
})) ?? [],
|
|
27
|
+
docxSections: artifact.docx?.sections.map((section) => ({
|
|
28
|
+
sectionIndex: section.sectionIndex,
|
|
29
|
+
heading: section.heading ?? null,
|
|
30
|
+
charStart: section.charStart ?? null,
|
|
31
|
+
charEnd: section.charEnd ?? null,
|
|
32
|
+
})) ?? [],
|
|
33
|
+
slides: artifact.slides?.map((slide) => ({
|
|
34
|
+
slideNumber: slide.slideNumber,
|
|
35
|
+
charStart: slide.charStart ?? null,
|
|
36
|
+
charEnd: slide.charEnd ?? null,
|
|
37
|
+
})) ?? [],
|
|
38
|
+
htmlSections: artifact.htmlSections?.map((section) => ({
|
|
39
|
+
sectionIndex: section.sectionIndex,
|
|
40
|
+
heading: section.heading ?? null,
|
|
41
|
+
charStart: section.charStart,
|
|
42
|
+
charEnd: section.charEnd,
|
|
43
|
+
})) ?? [],
|
|
44
|
+
mediaSegments: artifact.mediaSegments?.map((segment) => ({
|
|
45
|
+
startSeconds: segment.startSeconds,
|
|
46
|
+
endSeconds: segment.endSeconds,
|
|
47
|
+
speaker: segment.speaker ?? null,
|
|
48
|
+
charStart: segment.charStart ?? null,
|
|
49
|
+
charEnd: segment.charEnd ?? null,
|
|
50
|
+
})) ?? [],
|
|
51
|
+
visuals: artifact.visuals?.map((visual) => ({
|
|
52
|
+
pageNumber: visual.pageNumber ?? null,
|
|
53
|
+
description: visual.description ?? null,
|
|
54
|
+
charStart: visual.charStart ?? null,
|
|
55
|
+
charEnd: visual.charEnd ?? null,
|
|
56
|
+
})) ?? [],
|
|
57
|
+
durationSeconds: artifact.durationSeconds ?? null,
|
|
58
|
+
warnings: artifact.warnings,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
export function buildContentLineMap(text) {
|
|
62
|
+
if (text.length === 0) {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
65
|
+
const spans = [];
|
|
66
|
+
let lineNumber = 1;
|
|
67
|
+
let startOffset = 0;
|
|
68
|
+
for (let index = 0; index < text.length; index += 1) {
|
|
69
|
+
const char = text[index];
|
|
70
|
+
if (char !== '\n' && char !== '\r') {
|
|
71
|
+
continue;
|
|
72
|
+
}
|
|
73
|
+
spans.push({
|
|
74
|
+
lineNumber,
|
|
75
|
+
startOffset,
|
|
76
|
+
endOffset: index,
|
|
77
|
+
});
|
|
78
|
+
lineNumber += 1;
|
|
79
|
+
if (char === '\r' && text[index + 1] === '\n') {
|
|
80
|
+
index += 1;
|
|
81
|
+
}
|
|
82
|
+
startOffset = index + 1;
|
|
83
|
+
}
|
|
84
|
+
if (startOffset < text.length) {
|
|
85
|
+
spans.push({
|
|
86
|
+
lineNumber,
|
|
87
|
+
startOffset,
|
|
88
|
+
endOffset: text.length,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
return spans;
|
|
92
|
+
}
|
|
93
|
+
export function formatContentLocator(locator) {
|
|
94
|
+
switch (locator.kind) {
|
|
95
|
+
case 'file':
|
|
96
|
+
return 'file';
|
|
97
|
+
case 'text_lines':
|
|
98
|
+
return locator.endLine && locator.endLine !== locator.startLine
|
|
99
|
+
? `lines ${locator.startLine}-${locator.endLine}`
|
|
100
|
+
: `line ${locator.startLine}`;
|
|
101
|
+
case 'pdf_page':
|
|
102
|
+
return `page ${locator.pageNumber}`;
|
|
103
|
+
case 'pdf_pages':
|
|
104
|
+
return locator.startPage === locator.endPage
|
|
105
|
+
? `page ${locator.startPage}`
|
|
106
|
+
: `pages ${locator.startPage}-${locator.endPage}`;
|
|
107
|
+
case 'spreadsheet_sheet':
|
|
108
|
+
return `sheet ${locator.sheetName}`;
|
|
109
|
+
case 'spreadsheet_range': {
|
|
110
|
+
const rows = locator.endRow && locator.endRow !== locator.startRow
|
|
111
|
+
? `rows ${locator.startRow}-${locator.endRow}`
|
|
112
|
+
: `row ${locator.startRow}`;
|
|
113
|
+
if (!locator.startColumn) {
|
|
114
|
+
return `sheet ${locator.sheetName}, ${rows}`;
|
|
115
|
+
}
|
|
116
|
+
const columns = locator.endColumn && locator.endColumn !== locator.startColumn
|
|
117
|
+
? `columns ${locator.startColumn}-${locator.endColumn}`
|
|
118
|
+
: `column ${locator.startColumn}`;
|
|
119
|
+
return `sheet ${locator.sheetName}, ${rows}, ${columns}`;
|
|
120
|
+
}
|
|
121
|
+
case 'docx_paragraph':
|
|
122
|
+
return `paragraph ${locator.paragraphIndex}`;
|
|
123
|
+
case 'docx_table':
|
|
124
|
+
return `table ${locator.tableIndex}`;
|
|
125
|
+
case 'docx_section':
|
|
126
|
+
return locator.heading
|
|
127
|
+
? `section ${locator.sectionIndex}: ${locator.heading}`
|
|
128
|
+
: `section ${locator.sectionIndex}`;
|
|
129
|
+
case 'pptx_slide':
|
|
130
|
+
return `slide ${locator.slideNumber}`;
|
|
131
|
+
case 'eml_part':
|
|
132
|
+
return `email ${locator.part}`;
|
|
133
|
+
case 'html_section':
|
|
134
|
+
return locator.heading
|
|
135
|
+
? `section ${locator.sectionIndex}: ${locator.heading}`
|
|
136
|
+
: `section ${locator.sectionIndex}`;
|
|
137
|
+
case 'image_region':
|
|
138
|
+
return locator.pageNumber ? `image on page ${locator.pageNumber}` : 'image';
|
|
139
|
+
case 'media_segment': {
|
|
140
|
+
const range = `${locator.startSeconds.toFixed(2)}s-${locator.endSeconds.toFixed(2)}s`;
|
|
141
|
+
return locator.speaker ? `${locator.speaker}, ${range}` : range;
|
|
142
|
+
}
|
|
143
|
+
case 'zip_entry':
|
|
144
|
+
return `zip entry ${locator.path}`;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=normalized-content-artifact.js.map
|