@equinor/fusion-framework-cli-plugin-ai-index 3.0.6 → 3.0.8
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/CHANGELOG.md +40 -0
- package/dist/esm/bin/apply-metadata.js +13 -5
- package/dist/esm/bin/apply-metadata.js.map +1 -1
- package/dist/esm/bin/apply-schema.js +7 -1
- package/dist/esm/bin/apply-schema.js.map +1 -1
- package/dist/esm/bin/apply-schema.test.js +2 -1
- package/dist/esm/bin/apply-schema.test.js.map +1 -1
- package/dist/esm/bin/{delete-removed-files.js → create-delete-removed-files-stream.js} +12 -1
- package/dist/esm/bin/create-delete-removed-files-stream.js.map +1 -0
- package/dist/esm/bin/embed.js +260 -97
- package/dist/esm/bin/embed.js.map +1 -1
- package/dist/esm/bin/execute-pipeline.js +5 -0
- package/dist/esm/bin/execute-pipeline.js.map +1 -1
- package/dist/esm/bin/get-diff.js +6 -0
- package/dist/esm/bin/get-diff.js.map +1 -1
- package/dist/esm/{embeddings-command.options.js → command-options-schema.js} +1 -1
- package/dist/esm/command-options-schema.js.map +1 -0
- package/dist/esm/{embeddings-command.js → command.js} +4 -2
- package/dist/esm/command.js.map +1 -0
- package/dist/esm/{create-command.js → create-index-command.js} +13 -5
- package/dist/esm/create-index-command.js.map +1 -0
- package/dist/esm/{schema.js → define-index-schema.js} +1 -1
- package/dist/esm/define-index-schema.js.map +1 -0
- package/dist/esm/delete-command.js +11 -2
- package/dist/esm/delete-command.js.map +1 -1
- package/dist/esm/delete-index-command.js +4 -0
- package/dist/esm/delete-index-command.js.map +1 -1
- package/dist/esm/{delete-command.options.js → delete-options-schema.js} +1 -1
- package/dist/esm/delete-options-schema.js.map +1 -0
- package/dist/esm/embed-command.js +3 -4
- package/dist/esm/embed-command.js.map +1 -1
- package/dist/esm/index.js +3 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/search-command.js +20 -0
- package/dist/esm/search-command.js.map +1 -1
- package/dist/esm/utils/git/{metadata.js → extract-git-metadata.js} +4 -2
- package/dist/esm/utils/git/extract-git-metadata.js.map +1 -0
- package/dist/esm/utils/git/get-changed-files.js +87 -0
- package/dist/esm/utils/git/get-changed-files.js.map +1 -0
- package/dist/esm/utils/git/{file-changes.js → get-file-status.js} +9 -95
- package/dist/esm/utils/git/get-file-status.js.map +1 -0
- package/dist/esm/utils/git/{status.js → get-git-status.js} +5 -2
- package/dist/esm/utils/git/get-git-status.js.map +1 -0
- package/dist/esm/utils/git/get-git.js +30 -0
- package/dist/esm/utils/git/get-git.js.map +1 -0
- package/dist/esm/utils/git/index.js +7 -4
- package/dist/esm/utils/git/index.js.map +1 -1
- package/dist/esm/utils/git/is-file-changed.js +19 -0
- package/dist/esm/utils/git/is-file-changed.js.map +1 -0
- package/dist/esm/utils/git/resolve-project-root.js +22 -0
- package/dist/esm/utils/git/resolve-project-root.js.map +1 -0
- package/dist/esm/utils/markdown/index.js +3 -1
- package/dist/esm/utils/markdown/index.js.map +1 -1
- package/dist/esm/utils/markdown/is-markdown-file.js +10 -0
- package/dist/esm/utils/markdown/is-markdown-file.js.map +1 -0
- package/dist/esm/utils/markdown/parse-markdown-file.js +29 -0
- package/dist/esm/utils/markdown/parse-markdown-file.js.map +1 -0
- package/dist/esm/utils/markdown/{parser.js → parse-markdown.js} +8 -37
- package/dist/esm/utils/markdown/parse-markdown.js.map +1 -0
- package/dist/esm/utils/{embedding-dimensions.js → resolve-embedding-dimensions.js} +3 -1
- package/dist/esm/utils/resolve-embedding-dimensions.js.map +1 -0
- package/dist/esm/utils/{package-resolver.js → resolve-package.js} +4 -1
- package/dist/esm/utils/resolve-package.js.map +1 -0
- package/dist/esm/utils/ts-doc/create-typescript-document.js +27 -0
- package/dist/esm/utils/ts-doc/create-typescript-document.js.map +1 -0
- package/dist/esm/utils/ts-doc/extract-document-from-class-node.js +86 -0
- package/dist/esm/utils/ts-doc/extract-document-from-class-node.js.map +1 -0
- package/dist/esm/utils/ts-doc/extract-document-from-node.js +82 -0
- package/dist/esm/utils/ts-doc/extract-document-from-node.js.map +1 -0
- package/dist/esm/utils/ts-doc/index.js +3 -1
- package/dist/esm/utils/ts-doc/index.js.map +1 -1
- package/dist/esm/utils/ts-doc/is-typescript-file.js +10 -0
- package/dist/esm/utils/ts-doc/is-typescript-file.js.map +1 -0
- package/dist/esm/utils/ts-doc/{constants.js → node-kinds.js} +1 -1
- package/dist/esm/utils/ts-doc/node-kinds.js.map +1 -0
- package/dist/esm/utils/ts-doc/parse-ts-doc-from-file-sync.js +23 -0
- package/dist/esm/utils/ts-doc/parse-ts-doc-from-file-sync.js.map +1 -0
- package/dist/esm/utils/ts-doc/parse-ts-doc-sync.js +18 -0
- package/dist/esm/utils/ts-doc/parse-ts-doc-sync.js.map +1 -0
- package/dist/esm/utils/ts-doc/process-source-file.js +22 -0
- package/dist/esm/utils/ts-doc/process-source-file.js.map +1 -0
- package/dist/esm/utils/zod-to-azure-fields.js +7 -0
- package/dist/esm/utils/zod-to-azure-fields.js.map +1 -1
- package/dist/esm/utils/zod-to-azure-fields.test.js +8 -7
- package/dist/esm/utils/zod-to-azure-fields.test.js.map +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/bin/apply-schema.d.ts +1 -1
- package/dist/types/config.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/utils/git/get-changed-files.d.ts +13 -0
- package/dist/types/utils/git/get-file-status.d.ts +13 -0
- package/dist/types/utils/git/{git-client.d.ts → get-git.d.ts} +0 -10
- package/dist/types/utils/git/index.d.ts +7 -4
- package/dist/types/utils/git/is-file-changed.d.ts +12 -0
- package/dist/types/utils/git/resolve-project-root.d.ts +10 -0
- package/dist/types/utils/markdown/index.d.ts +3 -1
- package/dist/types/utils/markdown/is-markdown-file.d.ts +7 -0
- package/dist/types/utils/markdown/parse-markdown-file.d.ts +14 -0
- package/dist/types/utils/markdown/parse-markdown.d.ts +14 -0
- package/dist/types/utils/ts-doc/create-typescript-document.d.ts +12 -0
- package/dist/types/utils/ts-doc/extract-document-from-class-node.d.ts +15 -0
- package/dist/types/utils/ts-doc/extract-document-from-node.d.ts +20 -0
- package/dist/types/utils/ts-doc/index.d.ts +3 -1
- package/dist/types/utils/ts-doc/is-typescript-file.d.ts +7 -0
- package/dist/types/utils/ts-doc/parse-ts-doc-from-file-sync.d.ts +14 -0
- package/dist/types/utils/ts-doc/parse-ts-doc-sync.d.ts +12 -0
- package/dist/types/utils/ts-doc/process-source-file.d.ts +11 -0
- package/dist/types/version.d.ts +1 -1
- package/package.json +8 -8
- package/src/bin/apply-metadata.ts +69 -57
- package/src/bin/apply-schema.test.ts +2 -1
- package/src/bin/apply-schema.ts +6 -1
- package/src/bin/{delete-removed-files.ts → create-delete-removed-files-stream.ts} +12 -1
- package/src/bin/embed.ts +389 -145
- package/src/bin/execute-pipeline.ts +5 -0
- package/src/bin/get-diff.ts +7 -1
- package/src/bin/types.ts +1 -1
- package/src/{embeddings-command.ts → command.ts} +3 -1
- package/src/config.ts +1 -1
- package/src/{create-command.ts → create-index-command.ts} +15 -5
- package/src/delete-command.ts +11 -2
- package/src/delete-index-command.ts +4 -0
- package/src/embed-command.ts +3 -6
- package/src/index.ts +3 -3
- package/src/search-command.ts +20 -0
- package/src/utils/git/{metadata.ts → extract-git-metadata.ts} +3 -1
- package/src/utils/git/get-changed-files.ts +93 -0
- package/src/utils/git/{file-changes.ts → get-file-status.ts} +9 -103
- package/src/utils/git/{status.ts → get-git-status.ts} +4 -1
- package/src/utils/git/{git-client.ts → get-git.ts} +4 -22
- package/src/utils/git/index.ts +7 -4
- package/src/utils/git/is-file-changed.ts +21 -0
- package/src/utils/git/resolve-project-root.ts +22 -0
- package/src/utils/markdown/index.ts +3 -1
- package/src/utils/markdown/is-markdown-file.ts +9 -0
- package/src/utils/markdown/parse-markdown-file.ts +36 -0
- package/src/utils/markdown/{parser.ts → parse-markdown.ts} +16 -51
- package/src/utils/{embedding-dimensions.ts → resolve-embedding-dimensions.ts} +2 -0
- package/src/utils/{package-resolver.ts → resolve-package.ts} +3 -0
- package/src/utils/ts-doc/create-typescript-document.ts +36 -0
- package/src/utils/ts-doc/extract-document-from-class-node.ts +106 -0
- package/src/utils/ts-doc/extract-document-from-node.ts +120 -0
- package/src/utils/ts-doc/index.ts +3 -1
- package/src/utils/ts-doc/is-typescript-file.ts +9 -0
- package/src/utils/ts-doc/parse-ts-doc-from-file-sync.ts +32 -0
- package/src/utils/ts-doc/parse-ts-doc-sync.ts +23 -0
- package/src/utils/ts-doc/process-source-file.ts +30 -0
- package/src/utils/zod-to-azure-fields.test.ts +10 -7
- package/src/utils/zod-to-azure-fields.ts +7 -0
- package/src/version.ts +1 -1
- package/dist/esm/bin/delete-removed-files.js.map +0 -1
- package/dist/esm/bin/file-stream.js +0 -22
- package/dist/esm/bin/file-stream.js.map +0 -1
- package/dist/esm/create-command.js.map +0 -1
- package/dist/esm/delete-command.options.js.map +0 -1
- package/dist/esm/embeddings-command.js.map +0 -1
- package/dist/esm/embeddings-command.options.js.map +0 -1
- package/dist/esm/schema.js.map +0 -1
- package/dist/esm/utils/embedding-dimensions.js.map +0 -1
- package/dist/esm/utils/git/file-changes.js.map +0 -1
- package/dist/esm/utils/git/git-client.js +0 -48
- package/dist/esm/utils/git/git-client.js.map +0 -1
- package/dist/esm/utils/git/metadata.js.map +0 -1
- package/dist/esm/utils/git/status.js.map +0 -1
- package/dist/esm/utils/markdown/parser.js.map +0 -1
- package/dist/esm/utils/package-resolver.js.map +0 -1
- package/dist/esm/utils/ts-doc/constants.js.map +0 -1
- package/dist/esm/utils/ts-doc/extractors.js +0 -189
- package/dist/esm/utils/ts-doc/extractors.js.map +0 -1
- package/dist/esm/utils/ts-doc/parser.js +0 -46
- package/dist/esm/utils/ts-doc/parser.js.map +0 -1
- package/dist/types/bin/file-stream.d.ts +0 -1
- package/dist/types/utils/git/file-changes.d.ts +0 -36
- package/dist/types/utils/markdown/parser.d.ts +0 -34
- package/dist/types/utils/ts-doc/extractors.d.ts +0 -42
- package/dist/types/utils/ts-doc/parser.d.ts +0 -32
- package/src/bin/file-stream.ts +0 -34
- package/src/utils/ts-doc/extractors.ts +0 -260
- package/src/utils/ts-doc/parser.ts +0 -60
- /package/dist/types/bin/{delete-removed-files.d.ts → create-delete-removed-files-stream.d.ts} +0 -0
- /package/dist/types/{embeddings-command.options.d.ts → command-options-schema.d.ts} +0 -0
- /package/dist/types/{embeddings-command.d.ts → command.d.ts} +0 -0
- /package/dist/types/{create-command.d.ts → create-index-command.d.ts} +0 -0
- /package/dist/types/{schema.d.ts → define-index-schema.d.ts} +0 -0
- /package/dist/types/{delete-command.options.d.ts → delete-options-schema.d.ts} +0 -0
- /package/dist/types/utils/git/{metadata.d.ts → extract-git-metadata.d.ts} +0 -0
- /package/dist/types/utils/git/{status.d.ts → get-git-status.d.ts} +0 -0
- /package/dist/types/utils/{embedding-dimensions.d.ts → resolve-embedding-dimensions.d.ts} +0 -0
- /package/dist/types/utils/{package-resolver.d.ts → resolve-package.d.ts} +0 -0
- /package/dist/types/utils/ts-doc/{constants.d.ts → node-kinds.d.ts} +0 -0
- /package/src/{embeddings-command.options.ts → command-options-schema.ts} +0 -0
- /package/src/{schema.ts → define-index-schema.ts} +0 -0
- /package/src/{delete-command.options.ts → delete-options-schema.ts} +0 -0
- /package/src/utils/ts-doc/{constants.ts → node-kinds.ts} +0 -0
package/dist/esm/bin/embed.js
CHANGED
|
@@ -7,7 +7,7 @@ import { isMarkdownFile, parseMarkdownFile } from '../utils/markdown/index.js';
|
|
|
7
7
|
import { getFileStatus, resolveProjectRoot } from '../utils/git/index.js';
|
|
8
8
|
import { isTypescriptFile, parseTsDocFromFileSync } from '../utils/ts-doc/index.js';
|
|
9
9
|
import { getDiff } from './get-diff.js';
|
|
10
|
-
import { createDeleteRemovedFilesStream } from './delete-removed-files.js';
|
|
10
|
+
import { createDeleteRemovedFilesStream } from './create-delete-removed-files-stream.js';
|
|
11
11
|
import { applyMetadata } from './apply-metadata.js';
|
|
12
12
|
import { applySchema } from './apply-schema.js';
|
|
13
13
|
import { readFileSync } from 'node:fs';
|
|
@@ -35,11 +35,15 @@ class ProgressDisplay {
|
|
|
35
35
|
lastCiLog = [];
|
|
36
36
|
/** Minimum interval (ms) between CI progress lines for the same line slot. */
|
|
37
37
|
static CI_LOG_INTERVAL_MS = 15_000;
|
|
38
|
-
/**
|
|
38
|
+
/**
|
|
39
|
+
* Register the line labels up front and print empty placeholders.
|
|
40
|
+
* @param count - Number of progress lines to reserve.
|
|
41
|
+
*/
|
|
39
42
|
start(count) {
|
|
40
43
|
this.lines = new Array(count).fill('');
|
|
41
44
|
this.spinning = new Array(count).fill(false);
|
|
42
45
|
this.lastCiLog = new Array(count).fill(0);
|
|
46
|
+
// Skip the ANSI cursor block in CI — plain console.log lines are used instead
|
|
43
47
|
if (!IS_CI) {
|
|
44
48
|
// Print placeholder lines so the cursor block exists
|
|
45
49
|
for (let i = 0; i < count; i++) {
|
|
@@ -50,14 +54,21 @@ class ProgressDisplay {
|
|
|
50
54
|
}
|
|
51
55
|
this.started = true;
|
|
52
56
|
}
|
|
53
|
-
/**
|
|
57
|
+
/**
|
|
58
|
+
* Update a specific line (0-indexed) without touching the others.
|
|
59
|
+
* @param line - Index of the progress line to update.
|
|
60
|
+
* @param message - Message to display on that line.
|
|
61
|
+
*/
|
|
54
62
|
update(line, message) {
|
|
63
|
+
// Nothing to update before the display has been started
|
|
55
64
|
if (!this.started)
|
|
56
65
|
return;
|
|
57
66
|
this.lines[line] = message;
|
|
58
67
|
this.spinning[line] = true;
|
|
68
|
+
// In CI, throttle to plain log lines instead of redrawing the cursor block
|
|
59
69
|
if (IS_CI) {
|
|
60
70
|
const now = Date.now();
|
|
71
|
+
// Only log again once the throttle interval has elapsed for this line
|
|
61
72
|
if (now - this.lastCiLog[line] >= ProgressDisplay.CI_LOG_INTERVAL_MS) {
|
|
62
73
|
this.lastCiLog[line] = now;
|
|
63
74
|
console.log(`⏳ ${message}`);
|
|
@@ -66,13 +77,19 @@ class ProgressDisplay {
|
|
|
66
77
|
}
|
|
67
78
|
this.render(line);
|
|
68
79
|
}
|
|
69
|
-
/**
|
|
80
|
+
/**
|
|
81
|
+
* Mark a line as completed — stops its spinner and shows a checkmark.
|
|
82
|
+
* @param line - Index of the progress line to complete.
|
|
83
|
+
* @param message - Final message to display on that line.
|
|
84
|
+
*/
|
|
70
85
|
succeed(line, message) {
|
|
86
|
+
// Nothing to update before the display has been started
|
|
71
87
|
if (!this.started)
|
|
72
88
|
return;
|
|
73
89
|
const text = `✅ ${message}`;
|
|
74
90
|
this.lines[line] = text;
|
|
75
91
|
this.spinning[line] = false;
|
|
92
|
+
// In CI, print the final line directly instead of redrawing the cursor block
|
|
76
93
|
if (IS_CI) {
|
|
77
94
|
console.log(text);
|
|
78
95
|
return;
|
|
@@ -81,10 +98,13 @@ class ProgressDisplay {
|
|
|
81
98
|
}
|
|
82
99
|
/** Clear all progress lines and leave the cursor on a clean line. */
|
|
83
100
|
clear() {
|
|
101
|
+
// Nothing to clear before the display has been started
|
|
84
102
|
if (!this.started)
|
|
85
103
|
return;
|
|
104
|
+
// Stop the spinner tick before tearing down the display
|
|
86
105
|
if (this.timer)
|
|
87
106
|
clearInterval(this.timer);
|
|
107
|
+
// Skip cursor cleanup entirely in CI, where no cursor block was drawn
|
|
88
108
|
if (!IS_CI) {
|
|
89
109
|
// Move up to the first progress line and clear each one
|
|
90
110
|
for (let i = 0; i < this.lines.length; i++) {
|
|
@@ -99,13 +119,18 @@ class ProgressDisplay {
|
|
|
99
119
|
/** Advance the spinner frame and re-render all spinning lines. */
|
|
100
120
|
tick() {
|
|
101
121
|
this.frame = (this.frame + 1) % SPINNER_FRAMES.length;
|
|
122
|
+
// Re-render every line, skipping ones that aren't currently spinning
|
|
102
123
|
for (let i = 0; i < this.lines.length; i++) {
|
|
124
|
+
// Only re-render lines that are still actively spinning
|
|
103
125
|
if (this.spinning[i] && this.lines[i]) {
|
|
104
126
|
this.render(i);
|
|
105
127
|
}
|
|
106
128
|
}
|
|
107
129
|
}
|
|
108
|
-
/**
|
|
130
|
+
/**
|
|
131
|
+
* Render a single line at its position.
|
|
132
|
+
* @param line - Index of the progress line to render.
|
|
133
|
+
*/
|
|
109
134
|
render(line) {
|
|
110
135
|
const linesUp = this.lines.length - line;
|
|
111
136
|
const prefix = this.spinning[line] ? SPINNER_FRAMES[this.frame] : '';
|
|
@@ -161,70 +186,97 @@ const EMBED_BUFFER_FLUSH_MS = 10_000;
|
|
|
161
186
|
/** Maximum retry attempts for transient / rate-limit errors per chunk. */
|
|
162
187
|
const MAX_RETRIES = 4;
|
|
163
188
|
/**
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* @
|
|
189
|
+
* Prints resolved run configuration for `--debug` troubleshooting.
|
|
190
|
+
*
|
|
191
|
+
* @param options - Resolved command options for this run.
|
|
192
|
+
* @param filePatterns - Glob patterns used to discover files to index.
|
|
193
|
+
* @param config - Fusion AI index configuration for this run.
|
|
167
194
|
*/
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
console.
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
195
|
+
function logDebugConfig(options, filePatterns, config) {
|
|
196
|
+
console.debug('[debug] Embed model:', options.embedModel);
|
|
197
|
+
console.debug('[debug] File patterns:', filePatterns);
|
|
198
|
+
console.debug('[debug] Allowed patterns:', config.index?.patterns ?? ['**/*.ts', '**/*.tsx', '**/*.md', '**/*.mdx']);
|
|
199
|
+
console.debug('[debug] Raw patterns:', config.index?.rawPatterns ?? []);
|
|
200
|
+
console.debug('[debug] Ignore patterns:', config.index?.ignore ?? defaultIgnore);
|
|
201
|
+
console.debug('[debug] Diff mode:', options.diff);
|
|
202
|
+
console.debug('[debug] Dry run:', options.dryRun);
|
|
203
|
+
console.debug('[debug] Clean:', options.clean);
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Deletes all existing documents from the vector store when `--clean` is set.
|
|
207
|
+
* No-op in dry-run mode or when `--clean` was not requested.
|
|
208
|
+
*
|
|
209
|
+
* @param framework - Framework instance used to access the configured vector store.
|
|
210
|
+
* @param options - Resolved command options for this run.
|
|
211
|
+
*/
|
|
212
|
+
async function cleanVectorStoreIfRequested(framework, options) {
|
|
213
|
+
// Only wipe the index when explicitly requested and not in dry-run mode
|
|
214
|
+
if (!options.clean || options.dryRun) {
|
|
215
|
+
return;
|
|
181
216
|
}
|
|
182
|
-
|
|
183
|
-
// Handle clean operation (destructive - deletes all existing documents)
|
|
217
|
+
console.log('🧹 Cleaning vector store: deleting all existing documents...');
|
|
184
218
|
const vectorStoreService = framework.ai.useIndex(options.indexName);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
219
|
+
// OData filter: delete all documents with non-empty source (all indexed docs)
|
|
220
|
+
await vectorStoreService.deleteDocuments({
|
|
221
|
+
filter: { filterExpression: "metadata/source ne ''" },
|
|
222
|
+
});
|
|
223
|
+
console.log('✅ Vector store cleaned successfully');
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Creates the raw file stream: diff mode reuses already-resolved changed
|
|
227
|
+
* files, normal mode globs the filesystem and resolves git status per match.
|
|
228
|
+
*
|
|
229
|
+
* @param options - Resolved command options for this run.
|
|
230
|
+
* @param config - Fusion AI index configuration for this run.
|
|
231
|
+
* @param filePatterns - Glob patterns used to discover files to index.
|
|
232
|
+
* @param changedFiles - Pre-resolved changed files, used when `options.diff` is set.
|
|
233
|
+
* @returns A stream emitting each matched {@link ChangedFile}.
|
|
234
|
+
*/
|
|
235
|
+
function createFileStream$(options, config, filePatterns, changedFiles) {
|
|
236
|
+
// Diff mode reuses the already-resolved changed files instead of globbing.
|
|
237
|
+
if (options.diff) {
|
|
238
|
+
return from(changedFiles);
|
|
192
239
|
}
|
|
193
|
-
//
|
|
194
|
-
|
|
195
|
-
//
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
240
|
+
// Directories to skip before expensive git operations.
|
|
241
|
+
// Note: Even with gitignore: true, globby still traverses ignored directories when .gitignore
|
|
242
|
+
// contains negation patterns (like !.yarn/releases), so we add explicit ignore patterns
|
|
243
|
+
// to prevent traversing these directories entirely.
|
|
244
|
+
const ignore = config.index?.ignore ?? defaultIgnore;
|
|
245
|
+
// Respect .gitignore by default; configs targeting build artifacts can opt out.
|
|
246
|
+
const gitignore = config.index?.gitignore ?? true;
|
|
247
|
+
return (from(globbyStream(filePatterns, {
|
|
248
|
+
ignore,
|
|
249
|
+
onlyFiles: true,
|
|
250
|
+
gitignore,
|
|
251
|
+
absolute: true,
|
|
252
|
+
}))
|
|
253
|
+
// Resolve git status for each matched file, then flatten to individual files
|
|
254
|
+
.pipe(
|
|
255
|
+
// Get git status concurrently (capped to avoid spawning too many git processes)
|
|
256
|
+
mergeMap((path) => getFileStatus(path), GIT_CONCURRENCY), concatMap((files) => from(files)),
|
|
257
|
+
// Share stream for multiple subscribers (removedFiles$ and indexFiles$)
|
|
258
|
+
shareReplay({ refCount: true })));
|
|
259
|
+
}
|
|
260
|
+
/**
|
|
261
|
+
* Enriches each file with its project-relative path and filters out files
|
|
262
|
+
* that don't match the configured index patterns.
|
|
263
|
+
*
|
|
264
|
+
* @param files$ - Raw file stream from {@link createFileStream$}.
|
|
265
|
+
* @param config - Fusion AI index configuration for this run.
|
|
266
|
+
* @param debug - Whether to log skipped files for troubleshooting.
|
|
267
|
+
* @param progress - Progress display used to report parsing progress.
|
|
268
|
+
* @returns A stream of {@link ProcessedFile} entries matching the allowed patterns.
|
|
269
|
+
*/
|
|
270
|
+
function createProcessedFilesStream$(files$, config, debug, progress) {
|
|
219
271
|
const allowedFilePatterns = config.index?.patterns ?? [
|
|
220
272
|
'**/*.ts',
|
|
221
273
|
'**/*.tsx',
|
|
222
274
|
'**/*.md',
|
|
223
275
|
'**/*.mdx',
|
|
224
276
|
];
|
|
225
|
-
// Process files: enrich with metadata and filter by allowed patterns
|
|
226
277
|
let fileCount = 0;
|
|
227
|
-
|
|
278
|
+
// Resolve each file's project-relative path and filter by allowed patterns
|
|
279
|
+
return files$.pipe(map((file) => {
|
|
228
280
|
const { filepath, status } = file;
|
|
229
281
|
const projectRoot = resolveProjectRoot(filepath);
|
|
230
282
|
const relativePath = projectRoot ? relative(projectRoot, filepath) : filepath;
|
|
@@ -236,6 +288,7 @@ export async function embed(binOptions) {
|
|
|
236
288
|
};
|
|
237
289
|
}), filter((file) => {
|
|
238
290
|
const matches = multimatch(file.relativePath, allowedFilePatterns);
|
|
291
|
+
// Surface skipped files in debug output for troubleshooting pattern config
|
|
239
292
|
if (debug && matches.length === 0) {
|
|
240
293
|
console.debug('[debug] Skipped (no pattern match):', file.relativePath);
|
|
241
294
|
}
|
|
@@ -247,22 +300,28 @@ export async function embed(binOptions) {
|
|
|
247
300
|
}),
|
|
248
301
|
// Share for multiple subscribers (removedFiles$, markdown$, typescript$)
|
|
249
302
|
shareReplay({ refCount: true }));
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Parses new/modified files (raw, markdown, or TypeScript) into document
|
|
306
|
+
* entries ready for metadata enrichment.
|
|
307
|
+
*
|
|
308
|
+
* @param indexFiles$ - Stream of new/modified files to parse.
|
|
309
|
+
* @param config - Fusion AI index configuration for this run.
|
|
310
|
+
* @param debug - Whether to log per-file chunk counts for troubleshooting.
|
|
311
|
+
* @param progress - Progress display used to report parsing progress.
|
|
312
|
+
* @returns A stream of {@link DocumentEntry} objects, one per parsed file.
|
|
313
|
+
*/
|
|
314
|
+
function createParsedDocumentsStream$(indexFiles$, config, debug, progress) {
|
|
258
315
|
const isRawFile = (file) => {
|
|
259
316
|
const matches = multimatch(file.relativePath, config.index?.rawPatterns ?? []);
|
|
317
|
+
// A file is "raw" when it matches any configured raw pattern
|
|
260
318
|
if (matches.length > 0) {
|
|
261
319
|
return true;
|
|
262
320
|
}
|
|
263
321
|
return false;
|
|
264
322
|
};
|
|
265
323
|
let docCount = 0;
|
|
324
|
+
// Read raw-pattern files verbatim as a single document, skipping markdown/TS parsing
|
|
266
325
|
const rawFiles$ = indexFiles$.pipe(filter(isRawFile), map((file) => {
|
|
267
326
|
const document = {
|
|
268
327
|
id: generateChunkId(file.relativePath),
|
|
@@ -276,18 +335,22 @@ export async function embed(binOptions) {
|
|
|
276
335
|
progress.update(LINE_PARSE, `📄 Parsing [${docCount}] ${file.relativePath}`);
|
|
277
336
|
return { status: file.status, documents: [document] };
|
|
278
337
|
}));
|
|
338
|
+
// Parse markdown files not already handled as raw content
|
|
279
339
|
const markdown$ = indexFiles$.pipe(filter((x) => !isRawFile(x)), filter((file) => isMarkdownFile(file.path)), mergeMap(async (file) => {
|
|
280
340
|
const documents = await parseMarkdownFile(file);
|
|
281
341
|
docCount++;
|
|
342
|
+
// Surface per-file chunk counts in debug output
|
|
282
343
|
if (debug) {
|
|
283
344
|
console.debug(`[debug] Markdown ${file.relativePath} → ${documents.length} chunk(s)`);
|
|
284
345
|
}
|
|
285
346
|
progress.update(LINE_PARSE, `📄 Parsing [${docCount}] ${file.relativePath}`);
|
|
286
347
|
return { status: file.status, documents };
|
|
287
348
|
}));
|
|
349
|
+
// Parse TypeScript files not already handled as raw content
|
|
288
350
|
const typescript$ = indexFiles$.pipe(filter((x) => !isRawFile(x)), filter((file) => isTypescriptFile(file.path)), map((file) => {
|
|
289
351
|
const documents = parseTsDocFromFileSync(file);
|
|
290
352
|
docCount++;
|
|
353
|
+
// Surface per-file chunk counts in debug output
|
|
291
354
|
if (debug) {
|
|
292
355
|
console.debug(`[debug] TypeScript ${file.relativePath} → ${documents.length} chunk(s)`);
|
|
293
356
|
}
|
|
@@ -295,37 +358,58 @@ export async function embed(binOptions) {
|
|
|
295
358
|
return { status: file.status, documents };
|
|
296
359
|
}));
|
|
297
360
|
// Merge parsed streams and signal when all parsing is done
|
|
298
|
-
|
|
361
|
+
return merge(rawFiles$, markdown$, typescript$).pipe(finalize(() => {
|
|
299
362
|
progress.succeed(LINE_PARSE, `📄 Parsed ${docCount} files`);
|
|
300
363
|
}));
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Applies metadata enrichment to parsed documents and tracks progress.
|
|
367
|
+
*
|
|
368
|
+
* @param parsed$ - Stream of parsed document entries.
|
|
369
|
+
* @param config - Fusion AI index configuration for this run.
|
|
370
|
+
* @param progress - Progress display used to report metadata progress.
|
|
371
|
+
* @returns The enriched document stream along with its progress state.
|
|
372
|
+
*/
|
|
373
|
+
function createMetadataStream$(parsed$, config, progress) {
|
|
374
|
+
const state = { count: 0, done: false };
|
|
375
|
+
// Track metadata progress via the callback, then mark the stage done on completion
|
|
376
|
+
const stream$ = applyMetadata(parsed$, config.index, (source) => {
|
|
377
|
+
state.count++;
|
|
378
|
+
progress.update(LINE_META, `🏷️ Metadata [${state.count}] ${source}`);
|
|
307
379
|
}).pipe(finalize(() => {
|
|
308
|
-
|
|
309
|
-
progress.succeed(LINE_META, `🏷️ Metadata ${
|
|
380
|
+
state.done = true;
|
|
381
|
+
progress.succeed(LINE_META, `🏷️ Metadata ${state.count} documents`);
|
|
310
382
|
}));
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
383
|
+
return { stream$, state };
|
|
384
|
+
}
|
|
385
|
+
/**
|
|
386
|
+
* Generates embeddings in batches with retry on rate-limit (429) errors.
|
|
387
|
+
*
|
|
388
|
+
* @param documents$ - Stream of schema-resolved document batches to embed.
|
|
389
|
+
* @param embeddingService - Embedding client used to compute document vectors.
|
|
390
|
+
* @param debug - Whether to log batch sizes for troubleshooting.
|
|
391
|
+
* @param progress - Progress display used to report embedding progress.
|
|
392
|
+
* @param metadataState - Progress state from {@link createMetadataStream$}, used as the denominator.
|
|
393
|
+
* @returns The embedded document stream along with its progress state.
|
|
394
|
+
*/
|
|
395
|
+
function createEmbeddingStream$(documents$, embeddingService, debug, progress, metadataState) {
|
|
396
|
+
const state = { count: 0, done: false };
|
|
397
|
+
// Buffer, embed with retry, then re-attach embeddings onto each document
|
|
398
|
+
const stream$ = documents$.pipe(
|
|
320
399
|
// Flatten all documents from file-level batches, then re-batch for the API
|
|
321
400
|
concatMap((documents) => from(documents)),
|
|
322
401
|
// Flush when EMBED_BATCH_SIZE docs accumulate OR after EMBED_BUFFER_FLUSH_MS,
|
|
323
402
|
// whichever comes first — prevents upstream starvation from blocking concurrency
|
|
324
403
|
bufferTime(EMBED_BUFFER_FLUSH_MS, null, EMBED_BATCH_SIZE), filter((batch) => batch.length > 0), mergeMap((batch) => {
|
|
404
|
+
// Surface batch sizes in debug output for troubleshooting throughput
|
|
325
405
|
if (debug) {
|
|
326
406
|
console.debug(`[debug] Embedding batch of ${batch.length} documents`);
|
|
327
407
|
}
|
|
328
|
-
return from(embeddingService.embedDocuments(batch
|
|
408
|
+
return (from(embeddingService.embedDocuments(batch
|
|
409
|
+
// Extract each document's page content for the embedding API call
|
|
410
|
+
.map((d) => d.pageContent)))
|
|
411
|
+
// Retry transient/rate-limit errors, then attach embeddings back onto each document
|
|
412
|
+
.pipe(retry({
|
|
329
413
|
count: MAX_RETRIES,
|
|
330
414
|
delay: (error, retryIndex) => {
|
|
331
415
|
// Auth errors are terminal — abort immediately with actionable message
|
|
@@ -342,31 +426,49 @@ export async function embed(binOptions) {
|
|
|
342
426
|
return timer(delayMs);
|
|
343
427
|
},
|
|
344
428
|
}), map((allEmbeddings) => {
|
|
429
|
+
// Re-attach the corresponding embedding onto each document in the batch
|
|
345
430
|
return batch.map((document, i) => {
|
|
346
|
-
|
|
347
|
-
const total =
|
|
348
|
-
const pct = total > 0 ? ` ${Math.round((
|
|
431
|
+
state.count++;
|
|
432
|
+
const total = metadataState.done ? metadataState.count : 0;
|
|
433
|
+
const pct = total > 0 ? ` ${Math.round((state.count / total) * 100)}%` : '';
|
|
349
434
|
const denominator = total > 0 ? `/${total}` : '';
|
|
350
|
-
progress.update(LINE_EMBED, `🧠 Embedding [${
|
|
435
|
+
progress.update(LINE_EMBED, `🧠 Embedding [${state.count}${denominator}]${pct} — ${document.metadata.source}`);
|
|
351
436
|
const metadata = { ...document.metadata, embedding: allEmbeddings[i] };
|
|
352
437
|
return { ...document, metadata };
|
|
353
438
|
});
|
|
354
|
-
}));
|
|
439
|
+
})));
|
|
355
440
|
}, EMBED_BATCH_CONCURRENCY), finalize(() => {
|
|
356
|
-
|
|
357
|
-
progress.succeed(LINE_EMBED, `🧠 Embedded ${
|
|
441
|
+
state.done = true;
|
|
442
|
+
progress.succeed(LINE_EMBED, `🧠 Embedded ${state.count} documents`);
|
|
358
443
|
}));
|
|
359
|
-
|
|
360
|
-
|
|
444
|
+
return { stream$, state };
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
447
|
+
* Batches embedded documents and upserts them into the vector store.
|
|
448
|
+
*
|
|
449
|
+
* @param embedding$ - Stream of embedded document batches.
|
|
450
|
+
* @param framework - Framework instance used to access the configured vector store.
|
|
451
|
+
* @param options - Resolved command options for this run.
|
|
452
|
+
* @param debug - Whether to log upserted document IDs for troubleshooting.
|
|
453
|
+
* @returns A stream emitting the result of each batch upsert.
|
|
454
|
+
*/
|
|
455
|
+
function createUpsertStream$(embedding$, framework, options, debug) {
|
|
456
|
+
// Re-batch embedded documents into fixed-size groups for bulk upsert
|
|
457
|
+
return embedding$.pipe(
|
|
361
458
|
// Flatten file-level batches, then re-batch into groups of 20 for bulk upsert
|
|
362
459
|
concatMap((documents) => from(documents)), bufferCount(20), mergeMap(async (documents) => {
|
|
363
460
|
const vectorStoreService = framework.ai.useIndex(options.indexName);
|
|
461
|
+
// Nothing to upsert when the batch is empty
|
|
364
462
|
if (documents.length === 0) {
|
|
365
463
|
return undefined;
|
|
366
464
|
}
|
|
465
|
+
// Skip the actual vector store mutation when running in dry-run mode
|
|
367
466
|
if (!options.dryRun) {
|
|
467
|
+
// Surface upserted document IDs in debug output for troubleshooting
|
|
368
468
|
if (debug) {
|
|
369
|
-
console.debug(`[debug] Upserting batch of ${documents.length} documents:`, documents
|
|
469
|
+
console.debug(`[debug] Upserting batch of ${documents.length} documents:`, documents
|
|
470
|
+
// Log just the IDs to keep debug output concise
|
|
471
|
+
.map((d) => d.id));
|
|
370
472
|
}
|
|
371
473
|
await vectorStoreService.addDocuments(documents);
|
|
372
474
|
}
|
|
@@ -375,7 +477,17 @@ export async function embed(binOptions) {
|
|
|
375
477
|
documents,
|
|
376
478
|
};
|
|
377
479
|
}, UPSERT_CONCURRENCY), filter((result) => Boolean(result)));
|
|
378
|
-
|
|
480
|
+
}
|
|
481
|
+
/**
|
|
482
|
+
* Runs the deletion/upsert pipeline to completion, reporting progress and
|
|
483
|
+
* a final summary, then exits the process.
|
|
484
|
+
*
|
|
485
|
+
* @param delete$ - Stream of removed-file deletion results.
|
|
486
|
+
* @param upsert$ - Stream of document upsert results.
|
|
487
|
+
* @param progress - Progress display used to report indexing progress.
|
|
488
|
+
* @param embeddingState - Progress state from {@link createEmbeddingStream$}, used as the denominator.
|
|
489
|
+
*/
|
|
490
|
+
function runIndexingPipeline(delete$, upsert$, progress, embeddingState) {
|
|
379
491
|
// Track indexing results for reporting: deleted file paths and added document IDs
|
|
380
492
|
let indexedCount = 0;
|
|
381
493
|
const indexingResults = {
|
|
@@ -390,17 +502,19 @@ export async function embed(binOptions) {
|
|
|
390
502
|
next: (result) => {
|
|
391
503
|
// Track deleted files by relative path
|
|
392
504
|
if (result.status === 'deleted') {
|
|
505
|
+
// Reduce each deleted file entry down to its relative path for reporting.
|
|
393
506
|
indexingResults.deleted.push(...result.files.map((file) => file.relativePath));
|
|
394
507
|
}
|
|
395
508
|
// Track added documents with source and ID (one file can produce multiple IDs)
|
|
396
509
|
else if (result.status === 'added') {
|
|
510
|
+
// Reduce each added document down to its source path and id for reporting.
|
|
397
511
|
indexingResults.added.push(...result.documents.map((document) => ({
|
|
398
512
|
source: document.metadata.source,
|
|
399
513
|
id: document.id,
|
|
400
514
|
})));
|
|
401
515
|
indexedCount += result.documents.length;
|
|
402
516
|
// Use embeddedCount as denominator — only show % once embedding is done
|
|
403
|
-
const total =
|
|
517
|
+
const total = embeddingState.done ? embeddingState.count : 0;
|
|
404
518
|
const pct = total > 0 ? ` ${Math.round((indexedCount / total) * 100)}%` : '';
|
|
405
519
|
const denominator = total > 0 ? `/${total}` : '';
|
|
406
520
|
progress.update(LINE_INDEX, `📤 Indexed [${indexedCount}${denominator}]${pct}`);
|
|
@@ -417,6 +531,7 @@ export async function embed(binOptions) {
|
|
|
417
531
|
if (indexingResults.deleted.length > 0) {
|
|
418
532
|
console.log(`🗑️ Deleted: ${indexingResults.deleted.length} files`);
|
|
419
533
|
}
|
|
534
|
+
// Only print an "indexed" summary line when documents were actually added
|
|
420
535
|
if (indexingResults.added.length > 0) {
|
|
421
536
|
console.log(`📥 Indexed: ${indexingResults.added.length} documents`);
|
|
422
537
|
}
|
|
@@ -425,4 +540,52 @@ export async function embed(binOptions) {
|
|
|
425
540
|
},
|
|
426
541
|
});
|
|
427
542
|
}
|
|
543
|
+
/**
|
|
544
|
+
* Main entry point for the embeddings bin.
|
|
545
|
+
* Orchestrates the entire embeddings generation pipeline.
|
|
546
|
+
*
|
|
547
|
+
* @param binOptions - Framework, resolved options, config, and file patterns for this run.
|
|
548
|
+
* @throws {Error} Propagates unrecoverable embedding/vector-store errors from the pipeline.
|
|
549
|
+
* @internal
|
|
550
|
+
*/
|
|
551
|
+
export async function embed(binOptions) {
|
|
552
|
+
const { framework, options, config, filePatterns } = binOptions;
|
|
553
|
+
const debug = options.debug ?? false;
|
|
554
|
+
console.log(`📇 Index: ${options.indexName}`);
|
|
555
|
+
// Print resolved run configuration when --debug is set
|
|
556
|
+
if (debug) {
|
|
557
|
+
logDebugConfig(options, filePatterns, config);
|
|
558
|
+
}
|
|
559
|
+
const progress = new ProgressDisplay();
|
|
560
|
+
await cleanVectorStoreIfRequested(framework, options);
|
|
561
|
+
// Handle diff-based processing (workflow mode)
|
|
562
|
+
const changedFiles = options.diff ? await getDiff(options) : [];
|
|
563
|
+
// Create file stream: diff mode uses git changes, normal mode uses globby
|
|
564
|
+
const files$ = createFileStream$(options, config, filePatterns, changedFiles);
|
|
565
|
+
// Enrich files with metadata and filter by allowed patterns
|
|
566
|
+
const processedFiles$ = createProcessedFilesStream$(files$, config, debug, progress);
|
|
567
|
+
// Split stream: removed files for deletion, new/modified for indexing
|
|
568
|
+
const removedFiles$ = processedFiles$.pipe(filter((file) => file.status === 'removed'));
|
|
569
|
+
// Create processing streams
|
|
570
|
+
const delete$ = createDeleteRemovedFilesStream(removedFiles$, framework, options);
|
|
571
|
+
// New/modified files for indexing
|
|
572
|
+
const indexFiles$ = processedFiles$.pipe(filter((file) => file.status === 'new' || file.status === 'modified'),
|
|
573
|
+
// Share for markdown$ and typescript$ pipelines
|
|
574
|
+
shareReplay({ refCount: true }));
|
|
575
|
+
// Parse raw/markdown/TypeScript files into document entries
|
|
576
|
+
const parsed$ = createParsedDocumentsStream$(indexFiles$, config, debug, progress);
|
|
577
|
+
// Apply metadata to documents
|
|
578
|
+
const { stream$: applyMetadata$, state: metadataState } = createMetadataStream$(parsed$, config, progress);
|
|
579
|
+
// Resolve promoted schema fields (if schema is configured) — runs after
|
|
580
|
+
// metadata enrichment so the resolver has access to git, package, and
|
|
581
|
+
// custom attributes from attributeProcessor
|
|
582
|
+
const applySchema$ = applySchema(applyMetadata$, config.index?.schema);
|
|
583
|
+
// Generate embeddings in batches with retry on rate-limit (429) errors
|
|
584
|
+
const embeddingService = framework.ai.useEmbed(options.embedModel);
|
|
585
|
+
const { stream$: applyEmbedding$, state: embeddingState } = createEmbeddingStream$(applySchema$, embeddingService, debug, progress, metadataState);
|
|
586
|
+
// Update vector store — batch documents and upsert concurrently
|
|
587
|
+
const upsert$ = createUpsertStream$(applyEmbedding$, framework, options, debug);
|
|
588
|
+
// Execute pipeline and report final results
|
|
589
|
+
runIndexingPipeline(delete$, upsert$, progress, embeddingState);
|
|
590
|
+
}
|
|
428
591
|
//# sourceMappingURL=embed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/bin/embed.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"embed.js","sourceRoot":"","sources":["../../../src/bin/embed.ts"],"names":[],"mappings":"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"}
|