@equinor/fusion-framework-cli-plugin-ai-index 3.0.6 → 3.0.7

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 (195) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/esm/bin/apply-metadata.js +13 -5
  3. package/dist/esm/bin/apply-metadata.js.map +1 -1
  4. package/dist/esm/bin/apply-schema.js +7 -1
  5. package/dist/esm/bin/apply-schema.js.map +1 -1
  6. package/dist/esm/bin/apply-schema.test.js +2 -1
  7. package/dist/esm/bin/apply-schema.test.js.map +1 -1
  8. package/dist/esm/bin/{delete-removed-files.js → create-delete-removed-files-stream.js} +12 -1
  9. package/dist/esm/bin/create-delete-removed-files-stream.js.map +1 -0
  10. package/dist/esm/bin/embed.js +260 -97
  11. package/dist/esm/bin/embed.js.map +1 -1
  12. package/dist/esm/bin/execute-pipeline.js +5 -0
  13. package/dist/esm/bin/execute-pipeline.js.map +1 -1
  14. package/dist/esm/bin/get-diff.js +6 -0
  15. package/dist/esm/bin/get-diff.js.map +1 -1
  16. package/dist/esm/{embeddings-command.options.js → command-options-schema.js} +1 -1
  17. package/dist/esm/command-options-schema.js.map +1 -0
  18. package/dist/esm/{embeddings-command.js → command.js} +4 -2
  19. package/dist/esm/command.js.map +1 -0
  20. package/dist/esm/{create-command.js → create-index-command.js} +13 -5
  21. package/dist/esm/create-index-command.js.map +1 -0
  22. package/dist/esm/{schema.js → define-index-schema.js} +1 -1
  23. package/dist/esm/define-index-schema.js.map +1 -0
  24. package/dist/esm/delete-command.js +11 -2
  25. package/dist/esm/delete-command.js.map +1 -1
  26. package/dist/esm/delete-index-command.js +4 -0
  27. package/dist/esm/delete-index-command.js.map +1 -1
  28. package/dist/esm/{delete-command.options.js → delete-options-schema.js} +1 -1
  29. package/dist/esm/delete-options-schema.js.map +1 -0
  30. package/dist/esm/embed-command.js +3 -4
  31. package/dist/esm/embed-command.js.map +1 -1
  32. package/dist/esm/index.js +3 -3
  33. package/dist/esm/index.js.map +1 -1
  34. package/dist/esm/search-command.js +20 -0
  35. package/dist/esm/search-command.js.map +1 -1
  36. package/dist/esm/utils/git/{metadata.js → extract-git-metadata.js} +4 -2
  37. package/dist/esm/utils/git/extract-git-metadata.js.map +1 -0
  38. package/dist/esm/utils/git/get-changed-files.js +87 -0
  39. package/dist/esm/utils/git/get-changed-files.js.map +1 -0
  40. package/dist/esm/utils/git/{file-changes.js → get-file-status.js} +9 -95
  41. package/dist/esm/utils/git/get-file-status.js.map +1 -0
  42. package/dist/esm/utils/git/{status.js → get-git-status.js} +5 -2
  43. package/dist/esm/utils/git/get-git-status.js.map +1 -0
  44. package/dist/esm/utils/git/get-git.js +30 -0
  45. package/dist/esm/utils/git/get-git.js.map +1 -0
  46. package/dist/esm/utils/git/index.js +7 -4
  47. package/dist/esm/utils/git/index.js.map +1 -1
  48. package/dist/esm/utils/git/is-file-changed.js +19 -0
  49. package/dist/esm/utils/git/is-file-changed.js.map +1 -0
  50. package/dist/esm/utils/git/resolve-project-root.js +22 -0
  51. package/dist/esm/utils/git/resolve-project-root.js.map +1 -0
  52. package/dist/esm/utils/markdown/index.js +3 -1
  53. package/dist/esm/utils/markdown/index.js.map +1 -1
  54. package/dist/esm/utils/markdown/is-markdown-file.js +10 -0
  55. package/dist/esm/utils/markdown/is-markdown-file.js.map +1 -0
  56. package/dist/esm/utils/markdown/parse-markdown-file.js +29 -0
  57. package/dist/esm/utils/markdown/parse-markdown-file.js.map +1 -0
  58. package/dist/esm/utils/markdown/{parser.js → parse-markdown.js} +8 -37
  59. package/dist/esm/utils/markdown/parse-markdown.js.map +1 -0
  60. package/dist/esm/utils/{embedding-dimensions.js → resolve-embedding-dimensions.js} +3 -1
  61. package/dist/esm/utils/resolve-embedding-dimensions.js.map +1 -0
  62. package/dist/esm/utils/{package-resolver.js → resolve-package.js} +4 -1
  63. package/dist/esm/utils/resolve-package.js.map +1 -0
  64. package/dist/esm/utils/ts-doc/create-typescript-document.js +27 -0
  65. package/dist/esm/utils/ts-doc/create-typescript-document.js.map +1 -0
  66. package/dist/esm/utils/ts-doc/extract-document-from-class-node.js +86 -0
  67. package/dist/esm/utils/ts-doc/extract-document-from-class-node.js.map +1 -0
  68. package/dist/esm/utils/ts-doc/extract-document-from-node.js +82 -0
  69. package/dist/esm/utils/ts-doc/extract-document-from-node.js.map +1 -0
  70. package/dist/esm/utils/ts-doc/index.js +3 -1
  71. package/dist/esm/utils/ts-doc/index.js.map +1 -1
  72. package/dist/esm/utils/ts-doc/is-typescript-file.js +10 -0
  73. package/dist/esm/utils/ts-doc/is-typescript-file.js.map +1 -0
  74. package/dist/esm/utils/ts-doc/{constants.js → node-kinds.js} +1 -1
  75. package/dist/esm/utils/ts-doc/node-kinds.js.map +1 -0
  76. package/dist/esm/utils/ts-doc/parse-ts-doc-from-file-sync.js +23 -0
  77. package/dist/esm/utils/ts-doc/parse-ts-doc-from-file-sync.js.map +1 -0
  78. package/dist/esm/utils/ts-doc/parse-ts-doc-sync.js +18 -0
  79. package/dist/esm/utils/ts-doc/parse-ts-doc-sync.js.map +1 -0
  80. package/dist/esm/utils/ts-doc/process-source-file.js +22 -0
  81. package/dist/esm/utils/ts-doc/process-source-file.js.map +1 -0
  82. package/dist/esm/utils/zod-to-azure-fields.js +7 -0
  83. package/dist/esm/utils/zod-to-azure-fields.js.map +1 -1
  84. package/dist/esm/utils/zod-to-azure-fields.test.js +8 -7
  85. package/dist/esm/utils/zod-to-azure-fields.test.js.map +1 -1
  86. package/dist/esm/version.js +1 -1
  87. package/dist/tsconfig.tsbuildinfo +1 -1
  88. package/dist/types/bin/apply-schema.d.ts +1 -1
  89. package/dist/types/config.d.ts +1 -1
  90. package/dist/types/index.d.ts +1 -1
  91. package/dist/types/utils/git/get-changed-files.d.ts +13 -0
  92. package/dist/types/utils/git/get-file-status.d.ts +13 -0
  93. package/dist/types/utils/git/{git-client.d.ts → get-git.d.ts} +0 -10
  94. package/dist/types/utils/git/index.d.ts +7 -4
  95. package/dist/types/utils/git/is-file-changed.d.ts +12 -0
  96. package/dist/types/utils/git/resolve-project-root.d.ts +10 -0
  97. package/dist/types/utils/markdown/index.d.ts +3 -1
  98. package/dist/types/utils/markdown/is-markdown-file.d.ts +7 -0
  99. package/dist/types/utils/markdown/parse-markdown-file.d.ts +14 -0
  100. package/dist/types/utils/markdown/parse-markdown.d.ts +14 -0
  101. package/dist/types/utils/ts-doc/create-typescript-document.d.ts +12 -0
  102. package/dist/types/utils/ts-doc/extract-document-from-class-node.d.ts +15 -0
  103. package/dist/types/utils/ts-doc/extract-document-from-node.d.ts +20 -0
  104. package/dist/types/utils/ts-doc/index.d.ts +3 -1
  105. package/dist/types/utils/ts-doc/is-typescript-file.d.ts +7 -0
  106. package/dist/types/utils/ts-doc/parse-ts-doc-from-file-sync.d.ts +14 -0
  107. package/dist/types/utils/ts-doc/parse-ts-doc-sync.d.ts +12 -0
  108. package/dist/types/utils/ts-doc/process-source-file.d.ts +11 -0
  109. package/dist/types/version.d.ts +1 -1
  110. package/package.json +8 -8
  111. package/src/bin/apply-metadata.ts +69 -57
  112. package/src/bin/apply-schema.test.ts +2 -1
  113. package/src/bin/apply-schema.ts +6 -1
  114. package/src/bin/{delete-removed-files.ts → create-delete-removed-files-stream.ts} +12 -1
  115. package/src/bin/embed.ts +389 -145
  116. package/src/bin/execute-pipeline.ts +5 -0
  117. package/src/bin/get-diff.ts +7 -1
  118. package/src/bin/types.ts +1 -1
  119. package/src/{embeddings-command.ts → command.ts} +3 -1
  120. package/src/config.ts +1 -1
  121. package/src/{create-command.ts → create-index-command.ts} +15 -5
  122. package/src/delete-command.ts +11 -2
  123. package/src/delete-index-command.ts +4 -0
  124. package/src/embed-command.ts +3 -6
  125. package/src/index.ts +3 -3
  126. package/src/search-command.ts +20 -0
  127. package/src/utils/git/{metadata.ts → extract-git-metadata.ts} +3 -1
  128. package/src/utils/git/get-changed-files.ts +93 -0
  129. package/src/utils/git/{file-changes.ts → get-file-status.ts} +9 -103
  130. package/src/utils/git/{status.ts → get-git-status.ts} +4 -1
  131. package/src/utils/git/{git-client.ts → get-git.ts} +4 -22
  132. package/src/utils/git/index.ts +7 -4
  133. package/src/utils/git/is-file-changed.ts +21 -0
  134. package/src/utils/git/resolve-project-root.ts +22 -0
  135. package/src/utils/markdown/index.ts +3 -1
  136. package/src/utils/markdown/is-markdown-file.ts +9 -0
  137. package/src/utils/markdown/parse-markdown-file.ts +36 -0
  138. package/src/utils/markdown/{parser.ts → parse-markdown.ts} +16 -51
  139. package/src/utils/{embedding-dimensions.ts → resolve-embedding-dimensions.ts} +2 -0
  140. package/src/utils/{package-resolver.ts → resolve-package.ts} +3 -0
  141. package/src/utils/ts-doc/create-typescript-document.ts +36 -0
  142. package/src/utils/ts-doc/extract-document-from-class-node.ts +106 -0
  143. package/src/utils/ts-doc/extract-document-from-node.ts +120 -0
  144. package/src/utils/ts-doc/index.ts +3 -1
  145. package/src/utils/ts-doc/is-typescript-file.ts +9 -0
  146. package/src/utils/ts-doc/parse-ts-doc-from-file-sync.ts +32 -0
  147. package/src/utils/ts-doc/parse-ts-doc-sync.ts +23 -0
  148. package/src/utils/ts-doc/process-source-file.ts +30 -0
  149. package/src/utils/zod-to-azure-fields.test.ts +10 -7
  150. package/src/utils/zod-to-azure-fields.ts +7 -0
  151. package/src/version.ts +1 -1
  152. package/dist/esm/bin/delete-removed-files.js.map +0 -1
  153. package/dist/esm/bin/file-stream.js +0 -22
  154. package/dist/esm/bin/file-stream.js.map +0 -1
  155. package/dist/esm/create-command.js.map +0 -1
  156. package/dist/esm/delete-command.options.js.map +0 -1
  157. package/dist/esm/embeddings-command.js.map +0 -1
  158. package/dist/esm/embeddings-command.options.js.map +0 -1
  159. package/dist/esm/schema.js.map +0 -1
  160. package/dist/esm/utils/embedding-dimensions.js.map +0 -1
  161. package/dist/esm/utils/git/file-changes.js.map +0 -1
  162. package/dist/esm/utils/git/git-client.js +0 -48
  163. package/dist/esm/utils/git/git-client.js.map +0 -1
  164. package/dist/esm/utils/git/metadata.js.map +0 -1
  165. package/dist/esm/utils/git/status.js.map +0 -1
  166. package/dist/esm/utils/markdown/parser.js.map +0 -1
  167. package/dist/esm/utils/package-resolver.js.map +0 -1
  168. package/dist/esm/utils/ts-doc/constants.js.map +0 -1
  169. package/dist/esm/utils/ts-doc/extractors.js +0 -189
  170. package/dist/esm/utils/ts-doc/extractors.js.map +0 -1
  171. package/dist/esm/utils/ts-doc/parser.js +0 -46
  172. package/dist/esm/utils/ts-doc/parser.js.map +0 -1
  173. package/dist/types/bin/file-stream.d.ts +0 -1
  174. package/dist/types/utils/git/file-changes.d.ts +0 -36
  175. package/dist/types/utils/markdown/parser.d.ts +0 -34
  176. package/dist/types/utils/ts-doc/extractors.d.ts +0 -42
  177. package/dist/types/utils/ts-doc/parser.d.ts +0 -32
  178. package/src/bin/file-stream.ts +0 -34
  179. package/src/utils/ts-doc/extractors.ts +0 -260
  180. package/src/utils/ts-doc/parser.ts +0 -60
  181. /package/dist/types/bin/{delete-removed-files.d.ts → create-delete-removed-files-stream.d.ts} +0 -0
  182. /package/dist/types/{embeddings-command.options.d.ts → command-options-schema.d.ts} +0 -0
  183. /package/dist/types/{embeddings-command.d.ts → command.d.ts} +0 -0
  184. /package/dist/types/{create-command.d.ts → create-index-command.d.ts} +0 -0
  185. /package/dist/types/{schema.d.ts → define-index-schema.d.ts} +0 -0
  186. /package/dist/types/{delete-command.options.d.ts → delete-options-schema.d.ts} +0 -0
  187. /package/dist/types/utils/git/{metadata.d.ts → extract-git-metadata.d.ts} +0 -0
  188. /package/dist/types/utils/git/{status.d.ts → get-git-status.d.ts} +0 -0
  189. /package/dist/types/utils/{embedding-dimensions.d.ts → resolve-embedding-dimensions.d.ts} +0 -0
  190. /package/dist/types/utils/{package-resolver.d.ts → resolve-package.d.ts} +0 -0
  191. /package/dist/types/utils/ts-doc/{constants.d.ts → node-kinds.d.ts} +0 -0
  192. /package/src/{embeddings-command.options.ts → command-options-schema.ts} +0 -0
  193. /package/src/{schema.ts → define-index-schema.ts} +0 -0
  194. /package/src/{delete-command.options.ts → delete-options-schema.ts} +0 -0
  195. /package/src/utils/ts-doc/{constants.ts → node-kinds.ts} +0 -0
@@ -1,6 +1,9 @@
1
1
  import { concat } from 'rxjs';
2
2
  /**
3
3
  * Executes the pipeline and tracks results.
4
+ *
5
+ * @param deleteRemovedFiles$ - Stream of file-deletion results, processed before additions.
6
+ * @param updateVectorStore$ - Stream of document-addition results.
4
7
  * @internal
5
8
  */
6
9
  export function executePipeline(deleteRemovedFiles$, updateVectorStore$) {
@@ -15,10 +18,12 @@ export function executePipeline(deleteRemovedFiles$, updateVectorStore$) {
15
18
  next: (result) => {
16
19
  // Track deleted files by relative path
17
20
  if (result.status === 'deleted') {
21
+ // Reduce each deleted file entry down to its relative path for reporting.
18
22
  indexingResults.deleted.push(...result.files.map((file) => file.relativePath));
19
23
  }
20
24
  // Track added documents with source and ID (one file can produce multiple IDs)
21
25
  else if (result.status === 'added') {
26
+ // Reduce each added document down to its source path and id for reporting.
22
27
  indexingResults.added.push(...result.documents.map((document) => ({
23
28
  source: document.metadata.source,
24
29
  id: document.id,
@@ -1 +1 @@
1
- {"version":3,"file":"execute-pipeline.js","sourceRoot":"","sources":["../../../src/bin/execute-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,mBAAyD,EACzD,kBAAuD;IAEvD,kFAAkF;IAClF,MAAM,eAAe,GAAmE;QACtF,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,SAAS,CAAC;QACxD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACf,uCAAuC;YACvC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,+EAA+E;iBAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACnC,eAAe,CAAC,KAAK,CAAC,IAAI,CACxB,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACrC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAChC,EAAE,EAAE,QAAQ,CAAC,EAAE;iBAChB,CAAC,CAAC,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,4CAA4C;YAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"execute-pipeline.js","sourceRoot":"","sources":["../../../src/bin/execute-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAI9B;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAC7B,mBAAyD,EACzD,kBAAuD;IAEvD,kFAAkF;IAClF,MAAM,eAAe,GAAmE;QACtF,OAAO,EAAE,EAAE;QACX,KAAK,EAAE,EAAE;KACV,CAAC;IAEF,qEAAqE;IACrE,wEAAwE;IACxE,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,CAAC,SAAS,CAAC;QACxD,IAAI,EAAE,CAAC,MAAM,EAAE,EAAE;YACf,uCAAuC;YACvC,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAChC,0EAA0E;gBAC1E,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;YACjF,CAAC;YACD,+EAA+E;iBAC1E,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;gBACnC,2EAA2E;gBAC3E,eAAe,CAAC,KAAK,CAAC,IAAI,CACxB,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;oBACrC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM;oBAChC,EAAE,EAAE,QAAQ,CAAC,EAAE;iBAChB,CAAC,CAAC,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;QACD,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,YAAY,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;YACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,QAAQ,EAAE,GAAG,EAAE;YACb,4CAA4C;YAC5C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,eAAe,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { getChangedFiles, getGitStatus } from '../utils/git/index.js';
2
2
  /**
3
3
  * Handles diff-based processing to get changed files from git.
4
+ *
5
+ * @param options - Command options controlling diff mode and base reference.
6
+ * @returns The list of changed files matching the configured patterns.
4
7
  * @internal
5
8
  */
6
9
  export async function getDiff(options) {
@@ -14,12 +17,15 @@ export async function getDiff(options) {
14
17
  diff: options.diff,
15
18
  baseRef: options.baseRef,
16
19
  });
20
+ // Bail out early when no changed files match the configured patterns.
17
21
  if (changedFiles.length === 0) {
18
22
  console.log('✅ No changed files match the provided patterns. Nothing to process.');
19
23
  process.exit(0);
20
24
  }
21
25
  console.log(`📝 Found ${changedFiles.length} changed files matching patterns`);
26
+ // Log each changed file's status when --debug is set.
22
27
  if (options.debug) {
28
+ // Print status/filepath pairs one at a time for readable debug output.
23
29
  for (const file of changedFiles) {
24
30
  console.debug(`[debug] ${file.status}: ${file.filepath}`);
25
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"get-diff.js","sourceRoot":"","sources":["../../../src/bin/get-diff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGtE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,IAAI,CAAC;QACH,kDAAkD;QAClD,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,WAAW,YAAY,SAAS,CAAC,aAAa,WAAW,CAAC,CAAC;QAEhG,iEAAiE;QACjE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,MAAM,kCAAkC,CAAC,CAAC;QAC/E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"get-diff.js","sourceRoot":"","sources":["../../../src/bin/get-diff.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAGtE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAuB;IACnD,IAAI,CAAC;QACH,kDAAkD;QAClD,MAAM,SAAS,GAAG,MAAM,YAAY,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,kBAAkB,SAAS,CAAC,MAAM,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAe,SAAS,CAAC,WAAW,YAAY,SAAS,CAAC,aAAa,WAAW,CAAC,CAAC;QAEhG,iEAAiE;QACjE,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC;YACzC,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;SACzB,CAAC,CAAC;QAEH,sEAAsE;QACtE,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;YACnF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,YAAY,YAAY,CAAC,MAAM,kCAAkC,CAAC,CAAC;QAC/E,sDAAsD;QACtD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,uEAAuE;YACvE,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QACD,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,qBAAqB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC/F,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -21,4 +21,4 @@ export const CommandOptionsSchema = AiOptionsSchema.extend({
21
21
  .boolean()
22
22
  .describe('Delete all existing documents from the vector store before processing'),
23
23
  }).describe('Command options for the embeddings command');
24
- //# sourceMappingURL=embeddings-command.options.js.map
24
+ //# sourceMappingURL=command-options-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command-options-schema.js","sourceRoot":"","sources":["../../src/command-options-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAC;AAE/F;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,eAAe,CAAC,MAAM,CAAC;IACzD,UAAU,EAAE,CAAC;SACV,MAAM,CAAC,EAAE,OAAO,EAAE,6DAA6D,EAAE,CAAC;SAClF,GAAG,CAAC,CAAC,EAAE,kDAAkD,CAAC;IAC7D,SAAS,EAAE,CAAC;SACT,MAAM,CAAC,EAAE,OAAO,EAAE,mDAAmD,EAAE,CAAC;SACxE,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;IAEnD,8BAA8B;IAC9B,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,wDAAwD,CAAC;IACtF,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,4CAA4C,CAAC;IACxE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAClF,KAAK,EAAE,CAAC;SACL,OAAO,EAAE;SACT,QAAQ,CAAC,uEAAuE,CAAC;CACrF,CAAC,CAAC,QAAQ,CAAC,4CAA4C,CAAC,CAAC"}
@@ -2,7 +2,7 @@ import { createCommand, createOption } from 'commander';
2
2
  import { loadFusionAIConfig, setupFramework } from '@equinor/fusion-framework-cli-plugin-ai-base';
3
3
  import { withOptions as withAiOptions } from '@equinor/fusion-framework-cli-plugin-ai-base/command-options';
4
4
  import { embed } from './bin/embed.js';
5
- import { CommandOptionsSchema } from './embeddings-command.options.js';
5
+ import { CommandOptionsSchema } from './command-options-schema.js';
6
6
  /**
7
7
  * CLI command: `ai index add`
8
8
  *
@@ -51,9 +51,11 @@ const _command = createCommand('add')
51
51
  const opts = thisCommand.opts();
52
52
  const config = await loadFusionAIConfig(opts.config ?? 'fusion-ai.config', { baseDir: process.cwd() });
53
53
  const indexConfig = config.index ?? {};
54
+ // Fall back to the configured index name only if the user didn't pass one explicitly
54
55
  if (indexConfig.name && !opts.indexName?.trim()) {
55
56
  thisCommand.setOptionValue('indexName', indexConfig.name);
56
57
  }
58
+ // Fall back to the configured embed model only if the user didn't pass one explicitly
57
59
  if (indexConfig.model && !opts.embedModel?.trim()) {
58
60
  thisCommand.setOptionValue('embedModel', indexConfig.model);
59
61
  }
@@ -90,4 +92,4 @@ export const command = withAiOptions(_command, {
90
92
  includeSearch: true,
91
93
  });
92
94
  export default command;
93
- //# sourceMappingURL=embeddings-command.js.map
95
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { createCommand, createOption } from 'commander';
2
2
  import { loadFusionAIConfig, setupFramework } from '@equinor/fusion-framework-cli-plugin-ai-base';
3
3
  import { withOptions as withAiOptions, } from '@equinor/fusion-framework-cli-plugin-ai-base/command-options';
4
4
  import { zodToAzureFields } from './utils/zod-to-azure-fields.js';
5
- import { resolveEmbeddingDimensions } from './utils/embedding-dimensions.js';
5
+ import { resolveEmbeddingDimensions } from './utils/resolve-embedding-dimensions.js';
6
6
  /**
7
7
  * CLI command: `ai index create`
8
8
  *
@@ -34,12 +34,14 @@ const _command = createCommand('create')
34
34
  baseDir: process.cwd(),
35
35
  });
36
36
  const indexConfig = config.index;
37
+ // Config must define a schema via defineIndexSchema() before an index can be created
37
38
  if (!indexConfig?.schema) {
38
39
  console.error('❌ No schema defined in config. Add a `schema` property to `index` using defineIndexSchema().');
39
40
  process.exit(1);
40
41
  }
41
42
  // Resolve index name from config
42
43
  const indexName = indexConfig.name;
44
+ // Index name is required to know where to create/update the schema
43
45
  if (!indexName) {
44
46
  console.error('❌ Index name is required. Set `name` in the index config.');
45
47
  process.exit(1);
@@ -48,9 +50,11 @@ const _command = createCommand('create')
48
50
  const schemaFields = zodToAzureFields(indexConfig.schema.shape);
49
51
  // Guard against schema fields that collide with reserved base-schema names
50
52
  const reservedFieldNames = ['id', 'content', 'content_vector', 'metadata'];
51
- const conflictingSchemaFields = schemaFields
52
- .map((field) => field.name)
53
- .filter((name) => reservedFieldNames.includes(name));
53
+ // Extract field names to check them against the reserved list
54
+ const schemaFieldNames = schemaFields.map((field) => field.name);
55
+ // Isolate the names that collide with reserved base-schema fields
56
+ const conflictingSchemaFields = schemaFieldNames.filter((name) => reservedFieldNames.includes(name));
57
+ // Fail fast so the user can rename the offending schema fields before creating the index
54
58
  if (conflictingSchemaFields.length > 0) {
55
59
  const conflicts = [...new Set(conflictingSchemaFields)].sort().join(', ');
56
60
  console.error(`❌ Schema fields use reserved names: ${conflicts}. Reserved field names are: ${reservedFieldNames.join(', ')}. Rename these fields in \`index.schema\`.`);
@@ -132,6 +136,7 @@ const _command = createCommand('create')
132
136
  ],
133
137
  },
134
138
  ];
139
+ // Combine the base fields with any additional caller-supplied fields
135
140
  const fullSchema = {
136
141
  name: indexName,
137
142
  fields: [...baseFields, ...schemaFields],
@@ -145,6 +150,7 @@ const _command = createCommand('create')
145
150
  ],
146
151
  },
147
152
  };
153
+ // Dry-run mode previews the schema without contacting the AI service
148
154
  if (commandOptions.dryRun) {
149
155
  console.log('📋 Index schema preview (dry-run):');
150
156
  console.log(JSON.stringify(fullSchema, null, 2));
@@ -157,6 +163,7 @@ const _command = createCommand('create')
157
163
  const baseUri = service.uri.replace(/\/+$/, '');
158
164
  const scopes = service.scopes ?? service.defaultScopes ?? [];
159
165
  const token = await framework.auth.acquireAccessToken({ request: { scopes } });
166
+ // Cannot call the AI service without a valid access token
160
167
  if (!token) {
161
168
  console.error('❌ Failed to acquire access token for the AI service.');
162
169
  process.exit(1);
@@ -170,6 +177,7 @@ const _command = createCommand('create')
170
177
  },
171
178
  body: JSON.stringify(fullSchema),
172
179
  });
180
+ // Surface the service error response so the user can diagnose the failure
173
181
  if (!response.ok) {
174
182
  const body = await response.text();
175
183
  console.error(`❌ Index creation failed (${response.status} ${response.statusText})`);
@@ -183,4 +191,4 @@ const _command = createCommand('create')
183
191
  * authentication and service discovery.
184
192
  */
185
193
  export const createIndexCommand = withAiOptions(_command);
186
- //# sourceMappingURL=create-command.js.map
194
+ //# sourceMappingURL=create-index-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-index-command.js","sourceRoot":"","sources":["../../src/create-index-command.ts"],"names":[],"mappings":"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"}
@@ -38,4 +38,4 @@
38
38
  export function defineIndexSchema(config) {
39
39
  return config;
40
40
  }
41
- //# sourceMappingURL=schema.js.map
41
+ //# sourceMappingURL=define-index-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-index-schema.js","sourceRoot":"","sources":["../../src/define-index-schema.ts"],"names":[],"mappings":"AA2GA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAA4B;IAE5B,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import { createCommand, createOption } from 'commander';
2
2
  import { loadFusionAIConfig, setupFramework } from '@equinor/fusion-framework-cli-plugin-ai-base';
3
3
  import { withOptions as withAiOptions } from '@equinor/fusion-framework-cli-plugin-ai-base/command-options';
4
- import { DeleteOptionsSchema } from './delete-command.options.js';
4
+ import { DeleteOptionsSchema } from './delete-options-schema.js';
5
5
  /**
6
6
  * Builds an OData filter expression from source paths and/or a raw filter.
7
7
  *
@@ -15,8 +15,11 @@ import { DeleteOptionsSchema } from './delete-command.options.js';
15
15
  * sources nor a raw filter were provided.
16
16
  */
17
17
  function buildFilter(sources, rawFilter) {
18
+ // Source-path filters take precedence over a raw filter to avoid broad deletions
18
19
  if (sources.length > 0) {
19
- return sources.map((s) => `metadata/source eq '${s}'`).join(' or ');
20
+ // Build one OData clause per source path before combining them
21
+ const sourceClauses = sources.map((s) => `metadata/source eq '${s}'`);
22
+ return sourceClauses.join(' or ');
20
23
  }
21
24
  return rawFilter;
22
25
  }
@@ -63,9 +66,11 @@ const _command = createCommand('remove')
63
66
  const opts = thisCommand.opts();
64
67
  const config = await loadFusionAIConfig(opts.config ?? 'fusion-ai.config', { baseDir: process.cwd() });
65
68
  const indexConfig = config.index ?? {};
69
+ // Fall back to the configured index name only if the user didn't pass one explicitly
66
70
  if (indexConfig.name && !opts.indexName?.trim()) {
67
71
  thisCommand.setOptionValue('indexName', indexConfig.name);
68
72
  }
73
+ // Fall back to the configured embed model only if the user didn't pass one explicitly
69
74
  if (indexConfig.model && !opts.embedModel?.trim()) {
70
75
  thisCommand.setOptionValue('embedModel', indexConfig.model);
71
76
  }
@@ -73,11 +78,14 @@ const _command = createCommand('remove')
73
78
  .action(async (sources, commandOptions) => {
74
79
  const options = await DeleteOptionsSchema.parseAsync(commandOptions);
75
80
  const filterExpression = buildFilter(sources, options.filter);
81
+ // Refuse to run an unbounded delete when neither sources nor a filter were given
76
82
  if (!filterExpression) {
77
83
  throw new Error('Nothing to delete. Provide source file paths as arguments or pass a --filter expression.');
78
84
  }
85
+ // Show the user exactly what will be targeted before deleting
79
86
  if (sources.length > 0) {
80
87
  console.log(`\nTargeting ${sources.length} source path(s):\n`);
88
+ // List each source path so the user can verify the target set
81
89
  for (const src of sources.sort()) {
82
90
  console.log(` ${src}`);
83
91
  }
@@ -85,6 +93,7 @@ const _command = createCommand('remove')
85
93
  else {
86
94
  console.log(`\nFilter: ${filterExpression}`);
87
95
  }
96
+ // Dry-run mode previews the filter without deleting anything
88
97
  if (options.dryRun) {
89
98
  console.log('\n🔍 Dry run — no documents were deleted.');
90
99
  console.log(` Would apply filter: ${filterExpression}`);
@@ -1 +1 @@
1
- {"version":3,"file":"delete-command.js","sourceRoot":"","sources":["../../src/delete-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete-command.js","sourceRoot":"","sources":["../../src/delete-command.ts"],"names":[],"mappings":"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"}
@@ -39,6 +39,7 @@ const _command = createCommand('delete')
39
39
  })
40
40
  .action(async function (commandOptions) {
41
41
  const indexName = commandOptions.name?.trim();
42
+ // Cannot proceed without knowing which index to delete
42
43
  if (!indexName) {
43
44
  console.error('❌ Index name is required. Set `name` in the index config or pass --name.');
44
45
  process.exit(1);
@@ -52,6 +53,7 @@ const _command = createCommand('delete')
52
53
  rl.question(`\n⚠️ This will permanently delete index "${indexName}" and ALL its documents.\n Type the index name to confirm: `, resolve);
53
54
  });
54
55
  rl.close();
56
+ // Abort unless the user re-typed the exact index name
55
57
  if (answer.trim() !== indexName) {
56
58
  console.log('❌ Confirmation did not match. Aborting.');
57
59
  process.exit(1);
@@ -62,6 +64,7 @@ const _command = createCommand('delete')
62
64
  const baseUri = service.uri.replace(/\/+$/, '');
63
65
  const scopes = service.scopes ?? service.defaultScopes ?? [];
64
66
  const token = await framework.auth.acquireAccessToken({ request: { scopes } });
67
+ // Cannot call the AI service without a valid access token
65
68
  if (!token) {
66
69
  console.error('❌ Failed to acquire access token for the AI service.');
67
70
  process.exit(1);
@@ -78,6 +81,7 @@ const _command = createCommand('delete')
78
81
  console.error(`❌ Index "${indexName}" not found.`);
79
82
  process.exit(1);
80
83
  }
84
+ // Surface the service error response so the user can diagnose the failure
81
85
  if (!response.ok) {
82
86
  const body = await response.text();
83
87
  console.error(`❌ Index deletion failed (${response.status} ${response.statusText})`);
@@ -1 +1 @@
1
- {"version":3,"file":"delete-index-command.js","sourceRoot":"","sources":["../../src/delete-index-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"delete-index-command.js","sourceRoot":"","sources":["../../src/delete-index-command.ts"],"names":[],"mappings":"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"}
@@ -16,4 +16,4 @@ export const DeleteOptionsSchema = AiOptionsSchema.extend({
16
16
  .optional()
17
17
  .describe('Raw OData filter expression for selecting documents to delete'),
18
18
  }).describe('Command options for the delete command');
19
- //# sourceMappingURL=delete-command.options.js.map
19
+ //# sourceMappingURL=delete-options-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"delete-options-schema.js","sourceRoot":"","sources":["../../src/delete-options-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,8DAA8D,CAAC;AAE/F;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,eAAe,CAAC,MAAM,CAAC;IACxD,SAAS,EAAE,CAAC;SACT,MAAM,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,CAAC;SAC3D,GAAG,CAAC,CAAC,EAAE,wCAAwC,CAAC;IACnD,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,sDAAsD,CAAC;IACpF,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CAAC,+DAA+D,CAAC;CAC7E,CAAC,CAAC,QAAQ,CAAC,wCAAwC,CAAC,CAAC"}
@@ -22,9 +22,8 @@ export const embedCommand = withAiOptions(createCommand('embed')
22
22
  console.log(`Input: ${JSON.stringify(text)}`);
23
23
  const vector = await embedder.embedQuery(text);
24
24
  console.log(`Dimensions: ${vector.length}`);
25
- console.log(`Vector (first 8): [${vector
26
- .slice(0, 8)
27
- .map((v) => v.toFixed(6))
28
- .join(', ')}, ...]`);
25
+ // Format the first 8 vector components for a readable preview
26
+ const previewValues = vector.slice(0, 8).map((v) => v.toFixed(6));
27
+ console.log(`Vector (first 8): [${previewValues.join(', ')}, ...]`);
29
28
  }), { includeEmbedding: true });
30
29
  //# sourceMappingURL=embed-command.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"embed-command.js","sourceRoot":"","sources":["../../src/embed-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EACL,WAAW,IAAI,aAAa,GAE7B,MAAM,8DAA8D,CAAC;AAItE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CACvC,aAAa,CAAC,OAAO,CAAC;KACnB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;KACnC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAuB,EAAE,EAAE;IACtD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CACT,sBAAsB,MAAM;SACzB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CACtB,CAAC;AACJ,CAAC,CAAC,EACJ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC"}
1
+ {"version":3,"file":"embed-command.js","sourceRoot":"","sources":["../../src/embed-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EACL,WAAW,IAAI,aAAa,GAE7B,MAAM,8DAA8D,CAAC;AAItE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,aAAa,CACvC,aAAa,CAAC,OAAO,CAAC;KACnB,WAAW,CAAC,kEAAkE,CAAC;KAC/E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;KACnC,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,OAAuB,EAAE,EAAE;IACtD,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE3D,OAAO,CAAC,GAAG,CAAC,oBAAoB,OAAO,CAAC,UAAU,IAAI,SAAS,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAE9C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE/C,OAAO,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IAC5C,8DAA8D;IAC9D,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,sBAAsB,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AACtE,CAAC,CAAC,EACJ,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAC3B,CAAC"}
package/dist/esm/index.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { createCommand } from 'commander';
2
2
  import { registerAiPlugin as registerAiPluginBase } from '@equinor/fusion-framework-cli-plugin-ai-base';
3
- import { command as addCommand } from './embeddings-command.js';
3
+ import { command as addCommand } from './command.js';
4
4
  import { deleteCommand as removeCommand } from './delete-command.js';
5
5
  import { searchCommand } from './search-command.js';
6
6
  import { embedCommand } from './embed-command.js';
7
- import { createIndexCommand } from './create-command.js';
7
+ import { createIndexCommand } from './create-index-command.js';
8
8
  import { deleteIndexCommand } from './delete-index-command.js';
9
- export { defineIndexSchema } from './schema.js';
9
+ export { defineIndexSchema } from './define-index-schema.js';
10
10
  /**
11
11
  * Parent command for the `ai index` group.
12
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACxG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,aAAa,CAAC;AAEnE;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC;KACxC,WAAW,CAAC,kEAAkE,CAAC;KAC/E,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED,eAAe,gBAAgB,CAAC;AAEhC,6CAA6C;AAC7C,OAAO,EACL,iBAAiB,GAElB,MAAM,8CAA8C,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,8CAA8C,CAAC;AACxG,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,IAAI,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,OAAO,EAAE,iBAAiB,EAAqB,MAAM,0BAA0B,CAAC;AAEhF;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,aAAa,CAAC,OAAO,CAAC;KACxC,WAAW,CAAC,kEAAkE,CAAC;KAC/E,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,YAAY,CAAC;KACxB,UAAU,CAAC,kBAAkB,CAAC;KAC9B,UAAU,CAAC,kBAAkB,CAAC,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,oBAAoB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;AAC9C,CAAC;AAED,eAAe,gBAAgB,CAAC;AAEhC,6CAA6C;AAC7C,OAAO,EACL,iBAAiB,GAElB,MAAM,8CAA8C,CAAC"}
@@ -19,9 +19,12 @@ import { withOptions as withAiOptions, } from '@equinor/fusion-framework-cli-plu
19
19
  */
20
20
  const normalizeMetadata = (metadata) => {
21
21
  const normalized = { ...metadata };
22
+ // Only Azure Search documents with an attributes array need flattening
22
23
  if (Array.isArray(normalized.attributes)) {
23
24
  const attributesObj = {};
25
+ // Convert each { key, value } pair into a flat map entry
24
26
  for (const attr of normalized.attributes) {
27
+ // Skip malformed attribute entries that don't match the expected shape
25
28
  if (typeof attr === 'object' &&
26
29
  attr !== null &&
27
30
  'key' in attr &&
@@ -35,6 +38,7 @@ const normalizeMetadata = (metadata) => {
35
38
  }
36
39
  }
37
40
  }
41
+ // Flatten the normalized attribute map back onto the parent object
38
42
  Object.assign(normalized, attributesObj);
39
43
  delete normalized.attributes;
40
44
  }
@@ -91,27 +95,33 @@ const _command = createCommand('search')
91
95
  const opts = thisCommand.opts();
92
96
  const config = await loadFusionAIConfig(opts.config ?? 'fusion-ai.config', { baseDir: process.cwd() });
93
97
  const indexConfig = config.index ?? {};
98
+ // Fall back to the configured index name only if the user didn't pass one explicitly
94
99
  if (indexConfig.name && !opts.indexName?.trim()) {
95
100
  thisCommand.setOptionValue('indexName', indexConfig.name);
96
101
  }
102
+ // Fall back to the configured embed model only if the user didn't pass one explicitly
97
103
  if (indexConfig.model && !opts.embedModel?.trim()) {
98
104
  thisCommand.setOptionValue('embedModel', indexConfig.model);
99
105
  }
100
106
  })
101
107
  .action(async (query, options) => {
108
+ // Surface progress in verbose mode before the (potentially slow) framework setup
102
109
  if (options.verbose) {
103
110
  console.log('🔍 Initializing framework...');
104
111
  }
105
112
  const framework = await setupFramework(options);
113
+ // Cannot search without knowing which index to query
106
114
  if (!options.indexName) {
107
115
  throw new Error('Index name is required');
108
116
  }
117
+ // Print the resolved search parameters in verbose mode
109
118
  if (options.verbose) {
110
119
  console.log('✅ Framework initialized successfully');
111
120
  console.log(`📇 Index: ${options.indexName}`);
112
121
  console.log(`🔎 Searching for: "${query}"`);
113
122
  console.log(`📊 Limit: ${options.limit}`);
114
123
  console.log(`🔍 Search type: ${options.searchType}`);
124
+ // Only show the filter line when a filter was actually supplied
115
125
  if (options.filter) {
116
126
  console.log(`🔧 Filter: ${options.filter}`);
117
127
  }
@@ -133,11 +143,15 @@ const _command = createCommand('search')
133
143
  };
134
144
  const retriever = vectorStoreService.asRetriever(retrieverOptions);
135
145
  const results = await retriever.invoke(query);
146
+ // Defensively validate the retriever response shape before iterating it
136
147
  if (!results || !Array.isArray(results)) {
137
148
  throw new Error(`Invalid search results: expected array but got ${results === null ? 'null' : typeof results}`);
138
149
  }
150
+ // JSON output mode prints each document as a structured object
139
151
  if (options.json) {
152
+ // Emit one JSON entry per matching document
140
153
  for (const doc of results) {
154
+ // Raw mode preserves Azure Search's native metadata structure
141
155
  if (options.raw) {
142
156
  console.log(inspect(doc, { depth: null, colors: true }));
143
157
  }
@@ -152,11 +166,13 @@ const _command = createCommand('search')
152
166
  }
153
167
  }
154
168
  else {
169
+ // Nothing further to render when the search returned no matches
155
170
  if (results.length === 0) {
156
171
  console.log('❌ No results found');
157
172
  return;
158
173
  }
159
174
  console.log(`✅ Found ${results.length} result${results.length !== 1 ? 's' : ''}:\n`);
175
+ // Render each matched document as human-readable text
160
176
  results.forEach((doc, index) => {
161
177
  const processedMetadata = options.raw
162
178
  ? doc.metadata
@@ -167,8 +183,10 @@ const _command = createCommand('search')
167
183
  console.log(`${'─'.repeat(80)}`);
168
184
  console.log(`Result ${index + 1}${score !== undefined ? ` (Score: ${score.toFixed(4)})` : ''}`);
169
185
  console.log(`Source: ${source}`);
186
+ // Only print extra metadata fields in verbose mode
170
187
  if (options.verbose) {
171
188
  const { source: _, score: __, ...otherMetadata } = metadata;
189
+ // Skip the empty-object noise when there's no extra metadata to show
172
190
  if (Object.keys(otherMetadata).length > 0) {
173
191
  console.log(`Metadata:`, JSON.stringify(otherMetadata, null, 2));
174
192
  }
@@ -176,6 +194,7 @@ const _command = createCommand('search')
176
194
  console.log('');
177
195
  const content = doc.pageContent;
178
196
  const maxLength = 500;
197
+ // Truncate long content so terminal output stays readable
179
198
  if (content.length > maxLength) {
180
199
  console.log(`${content.substring(0, maxLength)}...`);
181
200
  console.log(`\n[Content truncated - ${content.length} characters total]`);
@@ -190,6 +209,7 @@ const _command = createCommand('search')
190
209
  }
191
210
  catch (error) {
192
211
  console.error(`❌ Search failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
212
+ // Print the stack trace in verbose mode to aid debugging
193
213
  if (options.verbose && error instanceof Error && error.stack) {
194
214
  console.error(error.stack);
195
215
  }
@@ -1 +1 @@
1
- {"version":3,"file":"search-command.js","sourceRoot":"","sources":["../../src/search-command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search-command.js","sourceRoot":"","sources":["../../src/search-command.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { relative } from 'node:path';
2
- import { getGit } from './git-client.js';
2
+ import { getGit } from './get-git.js';
3
3
  /**
4
4
  * Generate a GitHub permalink for a file
5
5
  * @param gitRemoteUrl - Git remote URL
@@ -10,6 +10,7 @@ import { getGit } from './git-client.js';
10
10
  */
11
11
  const generateGithubPermalink = (gitRemoteUrl, filePath, slug) => {
12
12
  const githubMatch = gitRemoteUrl.match(/github\.com[:/]([^/]+)\/([^/.]+)(?:\.git)?$/);
13
+ // Only GitHub-hosted remotes can be turned into a permalink URL
13
14
  if (githubMatch) {
14
15
  const [, owner, repo] = githubMatch;
15
16
  return `https://github.com/${owner}/${repo}/blob/${slug ?? 'main'}/${filePath}`;
@@ -27,6 +28,7 @@ const generateGithubPermalink = (gitRemoteUrl, filePath, slug) => {
27
28
  */
28
29
  export const extractGitMetadata = async (filePath) => {
29
30
  const { git, gitRepoPath: gitRepoRoot } = getGit(filePath) ?? {};
31
+ // No metadata can be extracted outside of a git repository
30
32
  if (!git || !gitRepoRoot) {
31
33
  return undefined;
32
34
  }
@@ -42,4 +44,4 @@ export const extractGitMetadata = async (filePath) => {
42
44
  git_commit_date: latest?.date,
43
45
  };
44
46
  };
45
- //# sourceMappingURL=metadata.js.map
47
+ //# sourceMappingURL=extract-git-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-git-metadata.js","sourceRoot":"","sources":["../../../../src/utils/git/extract-git-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;;;;;GAOG;AACH,MAAM,uBAAuB,GAAG,CAC9B,YAAoB,EACpB,QAAgB,EAChB,IAAa,EACO,EAAE;IACtB,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;IACtF,gEAAgE;IAChE,IAAI,WAAW,EAAE,CAAC;QAChB,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,WAAW,CAAC;QACpC,OAAO,sBAAsB,KAAK,IAAI,IAAI,SAAS,IAAI,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;IAClF,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAAgB,EAAoC,EAAE;IAC7F,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACjE,2DAA2D;IAC3D,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACzB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACpD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,YAAY,GAAG,MAAM,GAAG;SAC3B,SAAS,CAAC,mBAAmB,CAAC;SAC9B,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/F,OAAO;QACL,QAAQ;QACR,eAAe,EAAE,MAAM,EAAE,IAAI;QAC7B,eAAe,EAAE,MAAM,EAAE,IAAI;KAC9B,CAAC;AACJ,CAAC,CAAC"}