@equinor/fusion-framework-cli-plugin-ai-index 1.0.6 → 2.0.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.
Files changed (92) hide show
  1. package/CHANGELOG.md +74 -2
  2. package/README.md +105 -69
  3. package/dist/esm/bin/embed.js +28 -13
  4. package/dist/esm/bin/embed.js.map +1 -1
  5. package/dist/esm/delete-command.js +100 -0
  6. package/dist/esm/delete-command.js.map +1 -0
  7. package/dist/esm/delete-command.options.js +43 -0
  8. package/dist/esm/delete-command.options.js.map +1 -0
  9. package/dist/esm/{command.js → embeddings-command.js} +42 -28
  10. package/dist/esm/embeddings-command.js.map +1 -0
  11. package/dist/esm/{command.options.js → embeddings-command.options.js} +14 -7
  12. package/dist/esm/embeddings-command.options.js.map +1 -0
  13. package/dist/esm/index.js +37 -4
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/search-command.js +198 -0
  16. package/dist/esm/search-command.js.map +1 -0
  17. package/dist/esm/utils/generate-chunk-id.js +17 -5
  18. package/dist/esm/utils/generate-chunk-id.js.map +1 -1
  19. package/dist/esm/utils/git/file-changes.js +26 -11
  20. package/dist/esm/utils/git/file-changes.js.map +1 -1
  21. package/dist/esm/utils/git/git-client.js +16 -7
  22. package/dist/esm/utils/git/git-client.js.map +1 -1
  23. package/dist/esm/utils/git/metadata.js +7 -3
  24. package/dist/esm/utils/git/metadata.js.map +1 -1
  25. package/dist/esm/utils/git/status.js +9 -3
  26. package/dist/esm/utils/git/status.js.map +1 -1
  27. package/dist/esm/utils/markdown/parser.js +53 -13
  28. package/dist/esm/utils/markdown/parser.js.map +1 -1
  29. package/dist/esm/utils/package-resolver.js +10 -6
  30. package/dist/esm/utils/package-resolver.js.map +1 -1
  31. package/dist/esm/utils/ts-doc/constants.js +4 -1
  32. package/dist/esm/utils/ts-doc/constants.js.map +1 -1
  33. package/dist/esm/utils/ts-doc/extractors.js +27 -13
  34. package/dist/esm/utils/ts-doc/extractors.js.map +1 -1
  35. package/dist/esm/utils/ts-doc/parser.js +19 -10
  36. package/dist/esm/utils/ts-doc/parser.js.map +1 -1
  37. package/dist/esm/version.js +1 -1
  38. package/dist/tsconfig.tsbuildinfo +1 -1
  39. package/dist/types/config.d.ts +51 -10
  40. package/dist/types/delete-command.d.ts +9 -0
  41. package/dist/types/delete-command.options.d.ts +32 -0
  42. package/dist/types/embeddings-command.d.ts +11 -0
  43. package/dist/types/embeddings-command.options.d.ts +40 -0
  44. package/dist/types/index.d.ts +19 -2
  45. package/dist/types/search-command.d.ts +8 -0
  46. package/dist/types/utils/generate-chunk-id.d.ts +17 -5
  47. package/dist/types/utils/git/file-changes.d.ts +26 -11
  48. package/dist/types/utils/git/git-client.d.ts +16 -7
  49. package/dist/types/utils/git/metadata.d.ts +7 -3
  50. package/dist/types/utils/git/status.d.ts +9 -3
  51. package/dist/types/utils/git/types.d.ts +15 -9
  52. package/dist/types/utils/markdown/parser.d.ts +23 -10
  53. package/dist/types/utils/markdown/types.d.ts +13 -2
  54. package/dist/types/utils/package-resolver.d.ts +8 -5
  55. package/dist/types/utils/ts-doc/constants.d.ts +4 -1
  56. package/dist/types/utils/ts-doc/extractors.d.ts +27 -13
  57. package/dist/types/utils/ts-doc/parser.d.ts +19 -10
  58. package/dist/types/utils/ts-doc/types.d.ts +12 -4
  59. package/dist/types/utils/types.d.ts +10 -6
  60. package/dist/types/version.d.ts +1 -1
  61. package/package.json +12 -10
  62. package/src/bin/delete-removed-files.ts +1 -1
  63. package/src/bin/embed.ts +47 -18
  64. package/src/bin/file-stream.ts +1 -1
  65. package/src/bin/get-diff.ts +1 -1
  66. package/src/bin/types.ts +1 -1
  67. package/src/config.ts +52 -10
  68. package/src/delete-command.options.ts +51 -0
  69. package/src/delete-command.ts +117 -0
  70. package/src/{command.options.ts → embeddings-command.options.ts} +16 -9
  71. package/src/{command.ts → embeddings-command.ts} +46 -28
  72. package/src/index.ts +38 -4
  73. package/src/search-command.ts +259 -0
  74. package/src/utils/generate-chunk-id.ts +17 -5
  75. package/src/utils/git/file-changes.ts +26 -11
  76. package/src/utils/git/git-client.ts +16 -7
  77. package/src/utils/git/metadata.ts +7 -3
  78. package/src/utils/git/status.ts +9 -3
  79. package/src/utils/git/types.ts +15 -9
  80. package/src/utils/markdown/parser.ts +54 -13
  81. package/src/utils/markdown/types.ts +13 -2
  82. package/src/utils/package-resolver.ts +10 -6
  83. package/src/utils/ts-doc/constants.ts +4 -1
  84. package/src/utils/ts-doc/extractors.ts +27 -13
  85. package/src/utils/ts-doc/parser.ts +19 -10
  86. package/src/utils/ts-doc/types.ts +12 -4
  87. package/src/utils/types.ts +10 -6
  88. package/src/version.ts +1 -1
  89. package/dist/esm/command.js.map +0 -1
  90. package/dist/esm/command.options.js.map +0 -1
  91. package/dist/types/command.d.ts +0 -2
  92. package/dist/types/command.options.d.ts +0 -33
@@ -1,8 +1,14 @@
1
1
  import { resolveProjectRoot, getGit } from './git-client.js';
2
2
  /**
3
- * Get git status information for debugging
4
- * @param cwd - Working directory
5
- * @returns Git status information
3
+ * Retrieves a summary of the current git working-tree status.
4
+ *
5
+ * Returns the current branch name, abbreviated HEAD commit, and counts of
6
+ * staged / unstaged changes. Useful for informational output in CLI commands.
7
+ *
8
+ * @param cwd - Working directory for git operations. Defaults to `process.cwd()`.
9
+ * @returns An object with branch, commit, and file-change counts.
10
+ * @throws {Error} If the working directory is not inside a git repository or
11
+ * the git client cannot be initialised.
6
12
  */
7
13
  export const getGitStatus = async (cwd = process.cwd()) => {
8
14
  const projectRoot = resolveProjectRoot(cwd);
@@ -1 +1 @@
1
- {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/utils/git/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE,EAO1B,EAAE;IACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,MAAM,aAAa,GACjB,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;QAE7F,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,WAAW,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC;YAChD,WAAW;YACX,aAAa;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../../../src/utils/git/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE7D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAC/B,MAAc,OAAO,CAAC,GAAG,EAAE,EAO1B,EAAE;IACH,MAAM,WAAW,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IAC5C,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAEvD,MAAM,YAAY,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC;QAC/C,MAAM,aAAa,GACjB,YAAY,CAAC,QAAQ,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,SAAS,CAAC,MAAM,CAAC;QAE7F,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE;YACrB,UAAU,EAAE,WAAW,GAAG,CAAC,IAAI,aAAa,GAAG,CAAC;YAChD,WAAW;YACX,aAAa;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CACtF,CAAC;IACJ,CAAC;AACH,CAAC,CAAC"}
@@ -4,9 +4,8 @@ import { default as grayMatter } from 'gray-matter';
4
4
  import { RecursiveCharacterTextSplitter } from '@langchain/textsplitters';
5
5
  import { generateChunkId } from '../generate-chunk-id.js';
6
6
  const markdownConfig = {
7
- chunkSize: 3000,
7
+ chunkSize: 2000,
8
8
  chunkOverlap: 300,
9
- keepSeparator: true,
10
9
  separators: [
11
10
  '\n# ',
12
11
  '\n## ',
@@ -15,23 +14,51 @@ const markdownConfig = {
15
14
  '\n##### ',
16
15
  '\n###### ',
17
16
  '\n```',
17
+ '\n```\n',
18
18
  '\n---\n',
19
19
  '\n\n',
20
+ '\n',
20
21
  ],
22
+ keepSeparator: true,
21
23
  };
22
24
  /**
23
- * Check if a file is a markdown or MDX file
24
- * @param filePath - File path to check
25
- * @returns True if file has .md or .mdx extension
25
+ * Checks whether a file path has a Markdown (`.md`) or MDX (`.mdx`) extension.
26
+ *
27
+ * @param filePath - Absolute or relative file path.
28
+ * @returns `true` when the extension is `.md` or `.mdx`.
26
29
  */
27
30
  export const isMarkdownFile = (filePath) => {
28
31
  return filePath.endsWith('.md') || filePath.endsWith('.mdx');
29
32
  };
30
33
  /**
31
- * Parse markdown or MDX content into document chunks
32
- * @param content - Markdown or MDX content string
33
- * @param source - Source file path
34
- * @returns Array of markdown documents
34
+ * Validates that a text chunk contains meaningful content.
35
+ *
36
+ * Filters out empty strings and chunks consisting solely of code-fence
37
+ * markers (e.g. ` ``` ` or ` ```ts `).
38
+ *
39
+ * @param chunk - Content chunk to validate.
40
+ * @returns `true` if the chunk has substantive content.
41
+ */
42
+ const isValidChunk = (chunk) => {
43
+ const trimmed = chunk.trim();
44
+ if (!trimmed)
45
+ return false;
46
+ // Skip chunks that are only code fence markers
47
+ if (/^`{3,}[\w-]*$/.test(trimmed))
48
+ return false;
49
+ return true;
50
+ };
51
+ /**
52
+ * Parses Markdown or MDX content into chunked vector-store documents.
53
+ *
54
+ * Extracts YAML frontmatter via `gray-matter`, splits the body using
55
+ * {@link RecursiveCharacterTextSplitter}, and returns one
56
+ * {@link MarkdownDocument} per valid chunk.
57
+ *
58
+ * @template T - Additional frontmatter attributes.
59
+ * @param content - Raw Markdown / MDX string.
60
+ * @param source - Relative source file path used as the document key.
61
+ * @returns Array of chunked Markdown documents.
35
62
  */
36
63
  export const parseMarkdown = async (content, source) => {
37
64
  const { content: markdownContent, data } = grayMatter(content);
@@ -43,7 +70,14 @@ export const parseMarkdown = async (content, source) => {
43
70
  });
44
71
  const textSplitter = new RecursiveCharacterTextSplitter(markdownConfig);
45
72
  const chunks = await textSplitter.splitText(markdownContent);
46
- return chunks.map((chunk, _index) => ({
73
+ // Filter out empty chunks and chunks that are just code fence markers
74
+ const validChunks = chunks.filter((chunk) => {
75
+ if (!isValidChunk(chunk)) {
76
+ return false;
77
+ }
78
+ return true;
79
+ });
80
+ return validChunks.map((chunk, _index) => ({
47
81
  id: generateChunkId(source, _index),
48
82
  pageContent: chunk,
49
83
  metadata: {
@@ -53,9 +87,15 @@ export const parseMarkdown = async (content, source) => {
53
87
  }));
54
88
  };
55
89
  /**
56
- * Parse a markdown or MDX file into document chunks
57
- * @param file - Source file object
58
- * @returns Array of markdown documents with root path metadata
90
+ * Reads a Markdown or MDX file from disk and parses it into chunked documents.
91
+ *
92
+ * Delegates to {@link parseMarkdown} after reading the file content, then
93
+ * enriches each resulting document with the `rootPath` from the source file.
94
+ *
95
+ * @template T - Additional frontmatter attributes.
96
+ * @param file - Source file descriptor with path and optional project root.
97
+ * @returns Array of Markdown documents with root-path metadata.
98
+ * @throws {AssertionError} If the file does not have a `.md` or `.mdx` extension.
59
99
  */
60
100
  export const parseMarkdownFile = async (file) => {
61
101
  assert(isMarkdownFile(file.path), `File ${file.path} is not a markdown or MDX file`);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/utils/markdown/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpD,OAAO,EAAE,8BAA8B,EAAE,MAAM,0BAA0B,CAAC;AAI1E,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,cAAc,GAAG;IACrB,SAAS,EAAE,IAAI;IACf,YAAY,EAAE,GAAG;IACjB,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE;QACV,MAAM;QACN,OAAO;QACP,QAAQ;QACR,SAAS;QACT,UAAU;QACV,WAAW;QACX,OAAO;QACP,SAAS;QACT,MAAM;KACP;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAW,EAAE;IAC1D,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAChC,OAAe,EACf,MAAc,EACkB,EAAE;IAClC,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,CACpD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;QACpB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,GAAG,KAAK,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,IAAI,EAAE,UAAU;KACU,CAC7B,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,8BAA8B,CAAC,cAAc,CAAC,CAAC;IACxE,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7D,OAAO,MAAM,CAAC,GAAG,CACf,CAAC,KAAK,EAAE,MAAM,EAAuB,EAAE,CAAC,CAAC;QACvC,EAAE,EAAE,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC;QACnC,WAAW,EAAE,KAAK;QAClB,QAAQ,EAAE;YACR,MAAM;YACN,UAAU,EAAE,kBAAuD;SACpE;KACF,CAAC,CACH,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,EAGpC,IAAgB,EACgB,EAAE;IAClC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,IAAI,gCAAgC,CAAC,CAAC;IACrF,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAI,OAAO,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QAC/B,GAAG,QAAQ;QACX,QAAQ,EAAE;YACR,GAAG,QAAQ,CAAC,QAAQ;YACpB,QAAQ,EAAE,IAAI,CAAC,WAAW;SAC3B;KACF,CAAC,CAAC,CAAC;AACN,CAAC,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/utils/markdown/parser.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,23 @@
1
1
  import { dirname } from 'node:path';
2
2
  import { readPackageUp } from 'read-package-up';
3
3
  /**
4
- * Map of package base directories to package.json
4
+ * In-memory cache mapping package root directories to their parsed `package.json`.
5
+ * Avoids repeated file-system lookups when processing many files from the same package.
5
6
  */
6
7
  const packageMap = new Map();
7
8
  /**
8
- * Resolves which package a file path belongs to.
9
- * First checks the cache map, then uses read-package-up if no match found.
9
+ * Resolves the nearest `package.json` for a given file path.
10
10
  *
11
- * @param filePath - Absolute or relative file path (e.g., '/path/to/packages/cli/src/index.ts')
12
- * @returns Package.json if found, undefined otherwise
11
+ * Uses an in-memory cache keyed by the package’s directory to avoid
12
+ * redundant file-system lookups when many files share the same package.
13
+ *
14
+ * @param filePath - Absolute path to a source file.
15
+ * @returns The parsed `PackageJson` if found, or `undefined`.
13
16
  *
14
17
  * @example
15
18
  * ```ts
16
- * const packageJson = await resolvePackage('/path/to/packages/cli/src/index.ts');
19
+ * const pkg = await resolvePackage('/repo/packages/cli/src/index.ts');
20
+ * console.log(pkg?.name); // '@equinor/fusion-framework-cli'
17
21
  * ```
18
22
  */
19
23
  export async function resolvePackage(filePath) {
@@ -1 +1 @@
1
- {"version":3,"file":"package-resolver.js","sourceRoot":"","sources":["../../../src/utils/package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;AAElD;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,yDAAyD;IACzD,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,0DAA0D;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvE,IAAI,MAAM,EAAE,CAAC;QACX,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,EAAE,WAAW,CAAC;AAC7B,CAAC"}
1
+ {"version":3,"file":"package-resolver.js","sourceRoot":"","sources":["../../../src/utils/package-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAoB,MAAM,iBAAiB,CAAC;AAElE;;;GAGG;AACH,MAAM,UAAU,GAAG,IAAI,GAAG,EAAuB,CAAC;AAElD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,yDAAyD;IACzD,KAAK,MAAM,WAAW,IAAI,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC;QAC5C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,UAAU,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YAChD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,0DAA0D;IAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAEvE,IAAI,MAAM,EAAE,CAAC;QACX,oEAAoE;QACpE,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxC,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,MAAM,EAAE,WAAW,CAAC;AAC7B,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { SyntaxKind } from 'ts-morph';
2
2
  /**
3
- * Supported TSDoc node kinds for top-level processing
3
+ * Top-level TypeScript syntax kinds that the TSDoc extractor inspects.
4
+ *
5
+ * Only nodes matching one of these kinds are considered for document
6
+ * extraction; all other descendants are skipped.
4
7
  */
5
8
  export const nodeKinds = [
6
9
  SyntaxKind.FunctionDeclaration,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,eAAe;CAC3B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,UAAU,CAAC,mBAAmB;IAC9B,UAAU,CAAC,gBAAgB;IAC3B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,oBAAoB;IAC/B,UAAU,CAAC,iBAAiB;IAC5B,UAAU,CAAC,eAAe;CAC3B,CAAC"}
@@ -28,11 +28,16 @@ const createTypescriptDocument = (sourceFile, pageContent, tsKind, tsName, optio
28
28
  };
29
29
  };
30
30
  /**
31
- * Extracts a TSDoc document from a class node, including TSDoc, constructor, and public member signatures.
32
- * @param classNode - The ClassDeclaration node to process.
33
- * @param sourceFile - The source file containing the node.
34
- * @param options - Optional parsing configuration.
35
- * @returns A TypeScript document with TSDoc and class interface, or null if no TSDoc is found.
31
+ * Extracts a vector-store document from a TypeScript class declaration.
32
+ *
33
+ * Collects the class-level TSDoc comment, constructor signature (if documented),
34
+ * and all public members with TSDoc into a single document whose `pageContent`
35
+ * mirrors a minimal class interface.
36
+ *
37
+ * @param classNode - The `ts-morph` {@link ClassDeclaration} node to inspect.
38
+ * @param sourceFile - The project source file that contains the class.
39
+ * @param _options - Optional parsing configuration.
40
+ * @returns A {@link TypescriptDocument}, or `null` when the class has no TSDoc.
36
41
  */
37
42
  export const extractDocumentFromClassNode = (classNode, sourceFile, _options) => {
38
43
  // Find TSDoc comment (/** ... */)
@@ -92,12 +97,19 @@ export const extractDocumentFromClassNode = (classNode, sourceFile, _options) =>
92
97
  return createTypescriptDocument(sourceFile, pageContent, classNode.getKindName(), className, _options);
93
98
  };
94
99
  /**
95
- * Extracts a TSDoc document from a single node.
96
- * @param node - The TypeScript node to process.
97
- * @param sourceFile - The source file containing the node.
100
+ * Extracts a vector-store document from a single TypeScript AST node.
101
+ *
102
+ * Handles function declarations, variable statements (arrow / function
103
+ * expressions), interfaces, type aliases, enums, and classes. Delegates
104
+ * to {@link extractDocumentFromClassNode} for class declarations.
105
+ *
106
+ * @param node - The `ts-morph` AST node to inspect.
107
+ * @param sourceFile - The project source file that contains the node.
98
108
  * @param options - Optional parsing configuration.
99
- * @param nodeOptions - Optional node-specific configuration (e.g., skipKindCheck for VariableStatement).
100
- * @returns A TypeScript document with TSDoc metadata, or null if no TSDoc is found.
109
+ * @param nodeOptions - Optional flags (e.g. `skipKindCheck`) to override default
110
+ * kind filtering.
111
+ * @returns A {@link TypescriptDocument}, or `null` when the node has no TSDoc or
112
+ * is not a supported kind.
101
113
  */
102
114
  export const extractDocumentFromNode = (node, sourceFile, options, nodeOptions) => {
103
115
  const kind = node.getKind();
@@ -157,10 +169,12 @@ export const extractDocumentFromNode = (node, sourceFile, options, nodeOptions)
157
169
  return createTypescriptDocument(sourceFile, pageContent, node.getKindName(), nodeName, options);
158
170
  };
159
171
  /**
160
- * Processes a TypeScript source file to extract TSDoc documents.
161
- * @param sourceFile - The source file to process.
172
+ * Walks a TypeScript source file and extracts a {@link TypescriptDocument}
173
+ * for every top-level declaration that carries a TSDoc comment.
174
+ *
175
+ * @param sourceFile - The `ts-morph` source file to traverse.
162
176
  * @param options - Optional parsing configuration.
163
- * @returns An array of TypeScript documents with TSDoc metadata.
177
+ * @returns Array of extracted documents (one per documented declaration).
164
178
  */
165
179
  export const processSourceFile = (sourceFile, options) => {
166
180
  const documents = [];
@@ -1 +1 @@
1
- {"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/extractors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extractors.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/extractors.ts"],"names":[],"mappings":"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"}
@@ -3,18 +3,23 @@ import { readFileSync } from 'node:fs';
3
3
  import { Project } from 'ts-morph';
4
4
  import { processSourceFile } from './extractors.js';
5
5
  /**
6
- * Checks if a file is a TypeScript or TSX file based on its extension.
7
- * @param filePath - The path to the file.
8
- * @returns True if the file ends with .ts or .tsx, false otherwise.
6
+ * Checks whether a file path has a TypeScript (`.ts`) or TSX (`.tsx`) extension.
7
+ *
8
+ * @param filePath - Absolute or relative file path.
9
+ * @returns `true` if the file extension is `.ts` or `.tsx`.
9
10
  */
10
11
  export const isTypescriptFile = (filePath) => {
11
12
  return filePath.endsWith('.ts') || filePath.endsWith('.tsx');
12
13
  };
13
14
  /**
14
- * Parses TSDoc from a string of TypeScript code.
15
- * @param content - The TypeScript code content.
15
+ * Parses TSDoc comments from an in-memory TypeScript code string.
16
+ *
17
+ * Creates a temporary `ts-morph` project, analyses the source, and returns
18
+ * one {@link TypescriptDocument} per documented top-level declaration.
19
+ *
20
+ * @param content - TypeScript source code to parse.
16
21
  * @param options - Optional parsing configuration.
17
- * @returns An array of TypeScript documents with TSDoc metadata.
22
+ * @returns Array of extracted TypeScript documents with TSDoc metadata.
18
23
  */
19
24
  export const parseTsDocSync = (content, options) => {
20
25
  const project = new Project({ useInMemoryFileSystem: true });
@@ -22,11 +27,15 @@ export const parseTsDocSync = (content, options) => {
22
27
  return processSourceFile(sourceFile, options);
23
28
  };
24
29
  /**
25
- * Parses TSDoc from a TypeScript file by path.
26
- * @param file - The source file object.
30
+ * Parses TSDoc comments from a TypeScript file on disk.
31
+ *
32
+ * Reads the file synchronously, creates a `ts-morph` project, and returns
33
+ * one {@link TypescriptDocument} per documented top-level declaration.
34
+ *
35
+ * @param file - Source file descriptor with path and optional project root.
27
36
  * @param options - Optional parsing configuration.
28
- * @returns An array of TypeScript documents with TSDoc metadata.
29
- * @throws If the file is not a TypeScript file.
37
+ * @returns Array of extracted TypeScript documents.
38
+ * @throws {AssertionError} If the file does not have a `.ts` or `.tsx` extension.
30
39
  */
31
40
  export const parseTsDocFromFileSync = (file, options) => {
32
41
  assert(isTypescriptFile(file.path), `File ${file.path} is not a TypeScript file`);
@@ -1 +1 @@
1
- {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAW,EAAE;IAC5D,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAAe,EACf,OAA2B,EACL,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAgB,EAChB,OAA2B,EACL,EAAE;IACxB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CACzC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAChC,CAAC;IACF,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC"}
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../../src/utils/ts-doc/parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAInC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,QAAgB,EAAW,EAAE;IAC5D,OAAO,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,OAAe,EACf,OAA2B,EACL,EAAE;IACxB,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAChE,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,IAAgB,EAChB,OAA2B,EACL,EAAE;IACxB,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,IAAI,2BAA2B,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,CACzC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,EAC9B,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAChC,CAAC;IACF,OAAO,iBAAiB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC,CAAC"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '1.0.6';
2
+ export const version = '2.0.0';
3
3
  //# sourceMappingURL=version.js.map