open-wiki-spec 0.2.4 → 0.3.1

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 (252) hide show
  1. package/CHANGELOG.md +59 -0
  2. package/README.md +50 -3
  3. package/dist/cli/commands/apply.d.ts.map +1 -1
  4. package/dist/cli/commands/apply.js +96 -4
  5. package/dist/cli/commands/apply.js.map +1 -1
  6. package/dist/cli/commands/archive.d.ts.map +1 -1
  7. package/dist/cli/commands/archive.js +19 -5
  8. package/dist/cli/commands/archive.js.map +1 -1
  9. package/dist/cli/commands/bulk-archive.d.ts +15 -0
  10. package/dist/cli/commands/bulk-archive.d.ts.map +1 -0
  11. package/dist/cli/commands/bulk-archive.js +97 -0
  12. package/dist/cli/commands/bulk-archive.js.map +1 -0
  13. package/dist/cli/commands/continue.d.ts.map +1 -1
  14. package/dist/cli/commands/continue.js +15 -2
  15. package/dist/cli/commands/continue.js.map +1 -1
  16. package/dist/cli/commands/error-handler.d.ts +1 -5
  17. package/dist/cli/commands/error-handler.d.ts.map +1 -1
  18. package/dist/cli/commands/error-handler.js +48 -3
  19. package/dist/cli/commands/error-handler.js.map +1 -1
  20. package/dist/cli/commands/init.d.ts +0 -3
  21. package/dist/cli/commands/init.d.ts.map +1 -1
  22. package/dist/cli/commands/init.js +22 -4
  23. package/dist/cli/commands/init.js.map +1 -1
  24. package/dist/cli/commands/list.d.ts +2 -17
  25. package/dist/cli/commands/list.d.ts.map +1 -1
  26. package/dist/cli/commands/list.js +15 -3
  27. package/dist/cli/commands/list.js.map +1 -1
  28. package/dist/cli/commands/migrate.d.ts.map +1 -1
  29. package/dist/cli/commands/migrate.js +6 -9
  30. package/dist/cli/commands/migrate.js.map +1 -1
  31. package/dist/cli/commands/propose.d.ts.map +1 -1
  32. package/dist/cli/commands/propose.js +46 -6
  33. package/dist/cli/commands/propose.js.map +1 -1
  34. package/dist/cli/commands/query.d.ts.map +1 -1
  35. package/dist/cli/commands/query.js +99 -4
  36. package/dist/cli/commands/query.js.map +1 -1
  37. package/dist/cli/commands/retrieve.d.ts +7 -0
  38. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  39. package/dist/cli/commands/retrieve.js +70 -0
  40. package/dist/cli/commands/retrieve.js.map +1 -0
  41. package/dist/cli/commands/revert.d.ts +18 -0
  42. package/dist/cli/commands/revert.d.ts.map +1 -0
  43. package/dist/cli/commands/revert.js +109 -0
  44. package/dist/cli/commands/revert.js.map +1 -0
  45. package/dist/cli/commands/status.d.ts +2 -19
  46. package/dist/cli/commands/status.d.ts.map +1 -1
  47. package/dist/cli/commands/status.js +42 -3
  48. package/dist/cli/commands/status.js.map +1 -1
  49. package/dist/cli/commands/verify.d.ts.map +1 -1
  50. package/dist/cli/commands/verify.js +12 -1
  51. package/dist/cli/commands/verify.js.map +1 -1
  52. package/dist/cli/index.d.ts.map +1 -1
  53. package/dist/cli/index.js +68 -2
  54. package/dist/cli/index.js.map +1 -1
  55. package/dist/cli/init/init-engine.d.ts.map +1 -1
  56. package/dist/cli/init/init-engine.js +19 -6
  57. package/dist/cli/init/init-engine.js.map +1 -1
  58. package/dist/cli/init/meta-files.d.ts +2 -1
  59. package/dist/cli/init/meta-files.d.ts.map +1 -1
  60. package/dist/cli/init/meta-files.js +167 -8
  61. package/dist/cli/init/meta-files.js.map +1 -1
  62. package/dist/cli/init/skill-generator.d.ts +3 -0
  63. package/dist/cli/init/skill-generator.d.ts.map +1 -1
  64. package/dist/cli/init/skill-generator.js +184 -3
  65. package/dist/cli/init/skill-generator.js.map +1 -1
  66. package/dist/cli/json-envelope.d.ts +15 -0
  67. package/dist/cli/json-envelope.d.ts.map +1 -0
  68. package/dist/cli/json-envelope.js +86 -0
  69. package/dist/cli/json-envelope.js.map +1 -0
  70. package/dist/cli/schema-check.d.ts +27 -0
  71. package/dist/cli/schema-check.d.ts.map +1 -0
  72. package/dist/cli/schema-check.js +33 -0
  73. package/dist/cli/schema-check.js.map +1 -0
  74. package/dist/cli/vault-discovery.d.ts.map +1 -1
  75. package/dist/cli/vault-discovery.js +16 -2
  76. package/dist/cli/vault-discovery.js.map +1 -1
  77. package/dist/core/embedding/cache.d.ts +12 -3
  78. package/dist/core/embedding/cache.d.ts.map +1 -1
  79. package/dist/core/embedding/cache.js +42 -5
  80. package/dist/core/embedding/cache.js.map +1 -1
  81. package/dist/core/embedding/embedder.d.ts +5 -1
  82. package/dist/core/embedding/embedder.d.ts.map +1 -1
  83. package/dist/core/embedding/embedder.js +78 -7
  84. package/dist/core/embedding/embedder.js.map +1 -1
  85. package/dist/core/index/build.d.ts.map +1 -1
  86. package/dist/core/index/build.js +54 -6
  87. package/dist/core/index/build.js.map +1 -1
  88. package/dist/core/index/resolve.d.ts.map +1 -1
  89. package/dist/core/index/resolve.js +27 -12
  90. package/dist/core/index/resolve.js.map +1 -1
  91. package/dist/core/index/scan.d.ts +10 -1
  92. package/dist/core/index/scan.d.ts.map +1 -1
  93. package/dist/core/index/scan.js +59 -10
  94. package/dist/core/index/scan.js.map +1 -1
  95. package/dist/core/index/schema-version.d.ts +28 -0
  96. package/dist/core/index/schema-version.d.ts.map +1 -1
  97. package/dist/core/index/schema-version.js +47 -0
  98. package/dist/core/index/schema-version.js.map +1 -1
  99. package/dist/core/migrate/change-converter.d.ts.map +1 -1
  100. package/dist/core/migrate/change-converter.js +52 -5
  101. package/dist/core/migrate/change-converter.js.map +1 -1
  102. package/dist/core/migrate/migrate.d.ts.map +1 -1
  103. package/dist/core/migrate/migrate.js +115 -1
  104. package/dist/core/migrate/migrate.js.map +1 -1
  105. package/dist/core/migrate/spec-converter.js +5 -0
  106. package/dist/core/migrate/spec-converter.js.map +1 -1
  107. package/dist/core/migrate/types.d.ts +9 -0
  108. package/dist/core/migrate/types.d.ts.map +1 -1
  109. package/dist/core/parser/frontmatter-parser.d.ts +0 -6
  110. package/dist/core/parser/frontmatter-parser.d.ts.map +1 -1
  111. package/dist/core/parser/frontmatter-parser.js +59 -2
  112. package/dist/core/parser/frontmatter-parser.js.map +1 -1
  113. package/dist/core/parser/requirement-parser.js +4 -0
  114. package/dist/core/parser/requirement-parser.js.map +1 -1
  115. package/dist/core/parser/task-parser.d.ts.map +1 -1
  116. package/dist/core/parser/task-parser.js +19 -0
  117. package/dist/core/parser/task-parser.js.map +1 -1
  118. package/dist/core/parser/wikilink-parser.d.ts.map +1 -1
  119. package/dist/core/parser/wikilink-parser.js +21 -5
  120. package/dist/core/parser/wikilink-parser.js.map +1 -1
  121. package/dist/core/retrieval/classify.d.ts +11 -4
  122. package/dist/core/retrieval/classify.d.ts.map +1 -1
  123. package/dist/core/retrieval/classify.js +76 -14
  124. package/dist/core/retrieval/classify.js.map +1 -1
  125. package/dist/core/retrieval/lexical.d.ts.map +1 -1
  126. package/dist/core/retrieval/lexical.js +31 -12
  127. package/dist/core/retrieval/lexical.js.map +1 -1
  128. package/dist/core/retrieval/retrieve.d.ts.map +1 -1
  129. package/dist/core/retrieval/retrieve.js +45 -5
  130. package/dist/core/retrieval/retrieve.js.map +1 -1
  131. package/dist/core/retrieval/scoring.d.ts.map +1 -1
  132. package/dist/core/retrieval/scoring.js +37 -12
  133. package/dist/core/retrieval/scoring.js.map +1 -1
  134. package/dist/core/schema/change.schema.d.ts.map +1 -1
  135. package/dist/core/schema/change.schema.js +6 -1
  136. package/dist/core/schema/change.schema.js.map +1 -1
  137. package/dist/core/schema/feature.schema.d.ts +1 -1
  138. package/dist/core/schema/feature.schema.d.ts.map +1 -1
  139. package/dist/core/schema/feature.schema.js +1 -0
  140. package/dist/core/schema/feature.schema.js.map +1 -1
  141. package/dist/core/schema/frontmatter.d.ts +15 -0
  142. package/dist/core/schema/frontmatter.d.ts.map +1 -1
  143. package/dist/core/schema/index.d.ts +15 -0
  144. package/dist/core/schema/index.d.ts.map +1 -1
  145. package/dist/core/schema/query.schema.d.ts +15 -0
  146. package/dist/core/schema/query.schema.d.ts.map +1 -1
  147. package/dist/core/schema/query.schema.js +5 -0
  148. package/dist/core/schema/query.schema.js.map +1 -1
  149. package/dist/core/schema/templates.d.ts +0 -4
  150. package/dist/core/schema/templates.d.ts.map +1 -1
  151. package/dist/core/schema/templates.js +25 -7
  152. package/dist/core/schema/templates.js.map +1 -1
  153. package/dist/core/sequencing/analyze.d.ts.map +1 -1
  154. package/dist/core/sequencing/analyze.js +3 -1
  155. package/dist/core/sequencing/analyze.js.map +1 -1
  156. package/dist/core/sequencing/priority-queue.d.ts +9 -3
  157. package/dist/core/sequencing/priority-queue.d.ts.map +1 -1
  158. package/dist/core/sequencing/priority-queue.js +10 -4
  159. package/dist/core/sequencing/priority-queue.js.map +1 -1
  160. package/dist/core/sequencing/stale-detector.d.ts.map +1 -1
  161. package/dist/core/sequencing/stale-detector.js +5 -0
  162. package/dist/core/sequencing/stale-detector.js.map +1 -1
  163. package/dist/core/workflow/apply/apply.d.ts.map +1 -1
  164. package/dist/core/workflow/apply/apply.js +429 -25
  165. package/dist/core/workflow/apply/apply.js.map +1 -1
  166. package/dist/core/workflow/apply/delta-parser.d.ts.map +1 -1
  167. package/dist/core/workflow/apply/delta-parser.js +43 -9
  168. package/dist/core/workflow/apply/delta-parser.js.map +1 -1
  169. package/dist/core/workflow/apply/feature-updater.d.ts.map +1 -1
  170. package/dist/core/workflow/apply/feature-updater.js +27 -11
  171. package/dist/core/workflow/apply/feature-updater.js.map +1 -1
  172. package/dist/core/workflow/apply/types.d.ts +9 -0
  173. package/dist/core/workflow/apply/types.d.ts.map +1 -1
  174. package/dist/core/workflow/continue/continue.d.ts +18 -0
  175. package/dist/core/workflow/continue/continue.d.ts.map +1 -1
  176. package/dist/core/workflow/continue/continue.js +134 -15
  177. package/dist/core/workflow/continue/continue.js.map +1 -1
  178. package/dist/core/workflow/continue/next-action.d.ts.map +1 -1
  179. package/dist/core/workflow/continue/next-action.js +16 -3
  180. package/dist/core/workflow/continue/next-action.js.map +1 -1
  181. package/dist/core/workflow/continue/types.d.ts +12 -0
  182. package/dist/core/workflow/continue/types.d.ts.map +1 -1
  183. package/dist/core/workflow/propose/note-creator.d.ts +2 -2
  184. package/dist/core/workflow/propose/note-creator.d.ts.map +1 -1
  185. package/dist/core/workflow/propose/note-creator.js +89 -12
  186. package/dist/core/workflow/propose/note-creator.js.map +1 -1
  187. package/dist/core/workflow/propose/propose.d.ts.map +1 -1
  188. package/dist/core/workflow/propose/propose.js +189 -47
  189. package/dist/core/workflow/propose/propose.js.map +1 -1
  190. package/dist/core/workflow/propose/query-normalizer.d.ts.map +1 -1
  191. package/dist/core/workflow/propose/query-normalizer.js +37 -5
  192. package/dist/core/workflow/propose/query-normalizer.js.map +1 -1
  193. package/dist/core/workflow/propose/types.d.ts +15 -0
  194. package/dist/core/workflow/propose/types.d.ts.map +1 -1
  195. package/dist/core/workflow/propose/types.js +6 -1
  196. package/dist/core/workflow/propose/types.js.map +1 -1
  197. package/dist/core/workflow/query/query-note-creator.js +4 -0
  198. package/dist/core/workflow/query/query-note-creator.js.map +1 -1
  199. package/dist/core/workflow/verify/coherence.d.ts +10 -0
  200. package/dist/core/workflow/verify/coherence.d.ts.map +1 -1
  201. package/dist/core/workflow/verify/coherence.js +91 -4
  202. package/dist/core/workflow/verify/coherence.js.map +1 -1
  203. package/dist/core/workflow/verify/completeness.d.ts +1 -1
  204. package/dist/core/workflow/verify/completeness.d.ts.map +1 -1
  205. package/dist/core/workflow/verify/completeness.js +53 -10
  206. package/dist/core/workflow/verify/completeness.js.map +1 -1
  207. package/dist/core/workflow/verify/correctness.d.ts +1 -1
  208. package/dist/core/workflow/verify/correctness.d.ts.map +1 -1
  209. package/dist/core/workflow/verify/correctness.js +95 -14
  210. package/dist/core/workflow/verify/correctness.js.map +1 -1
  211. package/dist/core/workflow/verify/vault-integrity.d.ts +11 -0
  212. package/dist/core/workflow/verify/vault-integrity.d.ts.map +1 -1
  213. package/dist/core/workflow/verify/vault-integrity.js +80 -3
  214. package/dist/core/workflow/verify/vault-integrity.js.map +1 -1
  215. package/dist/core/workflow/verify/verify.d.ts +0 -5
  216. package/dist/core/workflow/verify/verify.d.ts.map +1 -1
  217. package/dist/core/workflow/verify/verify.js +54 -3
  218. package/dist/core/workflow/verify/verify.js.map +1 -1
  219. package/dist/index.d.ts +13 -0
  220. package/dist/index.d.ts.map +1 -1
  221. package/dist/index.js +11 -0
  222. package/dist/index.js.map +1 -1
  223. package/dist/types/cli-contracts.d.ts +78 -0
  224. package/dist/types/cli-contracts.d.ts.map +1 -0
  225. package/dist/types/cli-contracts.js +2 -0
  226. package/dist/types/cli-contracts.js.map +1 -0
  227. package/dist/types/error-codes.d.ts +25 -0
  228. package/dist/types/error-codes.d.ts.map +1 -0
  229. package/dist/types/error-codes.js +27 -0
  230. package/dist/types/error-codes.js.map +1 -0
  231. package/dist/types/frontmatter.d.ts +9 -2
  232. package/dist/types/frontmatter.d.ts.map +1 -1
  233. package/dist/types/next-action.d.ts +21 -0
  234. package/dist/types/next-action.d.ts.map +1 -1
  235. package/dist/types/retrieval.d.ts +17 -0
  236. package/dist/types/retrieval.d.ts.map +1 -1
  237. package/dist/types/verify.d.ts +58 -1
  238. package/dist/types/verify.d.ts.map +1 -1
  239. package/dist/types/verify.js +58 -1
  240. package/dist/types/verify.js.map +1 -1
  241. package/dist/utils/conventions.d.ts +9 -0
  242. package/dist/utils/conventions.d.ts.map +1 -0
  243. package/dist/utils/conventions.js +22 -0
  244. package/dist/utils/conventions.js.map +1 -0
  245. package/dist/utils/id-generator.d.ts.map +1 -1
  246. package/dist/utils/id-generator.js +8 -0
  247. package/dist/utils/id-generator.js.map +1 -1
  248. package/dist/utils/normalize.d.ts +7 -4
  249. package/dist/utils/normalize.d.ts.map +1 -1
  250. package/dist/utils/normalize.js +43 -6
  251. package/dist/utils/normalize.js.map +1 -1
  252. package/package.json +3 -2
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Shared schema-version compatibility check for CLI commands.
3
+ *
4
+ * Problem: `buildIndex` loads the vault's declared schema version into the
5
+ * index but does not validate it, and only `ows verify` calls
6
+ * `isSchemaVersionSupported`. Every other command (status, propose,
7
+ * continue, apply, query, ...) happily operates on a vault with an
8
+ * unknown or unsupported schema, silently risking miscommunication
9
+ * between the tool version and the vault format.
10
+ *
11
+ * This helper prints a clear stderr warning once per CLI invocation when
12
+ * the loaded index carries an unsupported or missing schema version. It is
13
+ * non-throwing on purpose so read-only commands like `ows status` still
14
+ * work on legacy vaults — they just surface the mismatch loudly so the
15
+ * user can decide whether to upgrade.
16
+ *
17
+ * Set `OWS_QUIET=1` in the environment to suppress the warning (useful in
18
+ * CI pipelines that run `ows` against known-good fixtures).
19
+ */
20
+ import type { VaultIndex } from '../types/index-record.js';
21
+ export declare function warnOnUnsupportedSchema(index: VaultIndex): void;
22
+ /**
23
+ * Reset the once-per-process latch. Test-only — production code never
24
+ * needs to call this.
25
+ */
26
+ export declare function __resetSchemaWarnLatchForTests(): void;
27
+ //# sourceMappingURL=schema-check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-check.d.ts","sourceRoot":"","sources":["../../src/cli/schema-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAK3D,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CA0B/D;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
@@ -0,0 +1,33 @@
1
+ import { isSchemaVersionSupported, SUPPORTED_SCHEMA_VERSIONS } from '../core/index/schema-version.js';
2
+ let warnedOnce = false;
3
+ export function warnOnUnsupportedSchema(index) {
4
+ if (warnedOnce)
5
+ return;
6
+ if (process.env.OWS_QUIET === '1')
7
+ return;
8
+ const version = index.schema_version;
9
+ if (!version || version === 'unknown') {
10
+ warnedOnce = true;
11
+ process.stderr.write(`[ows] Warning: vault has no declared schema_version ` +
12
+ `(wiki/00-meta/schema.md missing or empty). This CLI version expects ` +
13
+ `one of: ${SUPPORTED_SCHEMA_VERSIONS.join(', ')}. ` +
14
+ `Run \`ows init\` to initialize metadata, or \`ows migrate\` to import ` +
15
+ `an existing openspec/ directory. Continuing with best-effort parsing.\n`);
16
+ return;
17
+ }
18
+ if (!isSchemaVersionSupported(version)) {
19
+ warnedOnce = true;
20
+ process.stderr.write(`[ows] Warning: vault schema_version "${version}" is not supported by ` +
21
+ `this ows version (supported: ${SUPPORTED_SCHEMA_VERSIONS.join(', ')}). ` +
22
+ `Results may be incorrect. Upgrade the vault or pin a compatible ows release. ` +
23
+ `Run \`ows verify\` for details.\n`);
24
+ }
25
+ }
26
+ /**
27
+ * Reset the once-per-process latch. Test-only — production code never
28
+ * needs to call this.
29
+ */
30
+ export function __resetSchemaWarnLatchForTests() {
31
+ warnedOnce = false;
32
+ }
33
+ //# sourceMappingURL=schema-check.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-check.js","sourceRoot":"","sources":["../../src/cli/schema-check.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEtG,IAAI,UAAU,GAAG,KAAK,CAAC;AAEvB,MAAM,UAAU,uBAAuB,CAAC,KAAiB;IACvD,IAAI,UAAU;QAAE,OAAO;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,KAAK,GAAG;QAAE,OAAO;IAE1C,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC;IACrC,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QACtC,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,sDAAsD;YACpD,sEAAsE;YACtE,WAAW,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACnD,wEAAwE;YACxE,yEAAyE,CAC5E,CAAC;QACF,OAAO;IACT,CAAC;IAED,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,CAAC;QACvC,UAAU,GAAG,IAAI,CAAC;QAClB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,wCAAwC,OAAO,wBAAwB;YACrE,gCAAgC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK;YACzE,+EAA+E;YAC/E,mCAAmC,CACtC,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B;IAC5C,UAAU,GAAG,KAAK,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vault-discovery.d.ts","sourceRoot":"","sources":["../../src/cli/vault-discovery.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAqB3D"}
1
+ {"version":3,"file":"vault-discovery.d.ts","sourceRoot":"","sources":["../../src/cli/vault-discovery.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAmC3D"}
@@ -13,7 +13,8 @@ import * as path from 'node:path';
13
13
  * @throws Error if no valid wiki/ directory is found.
14
14
  */
15
15
  export function discoverVaultPath(startDir) {
16
- let dir = startDir ?? process.cwd();
16
+ const cwd = startDir ?? process.cwd();
17
+ let dir = cwd;
17
18
  while (true) {
18
19
  const candidate = path.join(dir, 'wiki');
19
20
  if (fs.existsSync(candidate) &&
@@ -23,7 +24,20 @@ export function discoverVaultPath(startDir) {
23
24
  }
24
25
  const parent = path.dirname(dir);
25
26
  if (parent === dir) {
26
- throw new Error('No wiki/ vault found. Run `ows init` to create one, or run from within a project that has a wiki/ directory.');
27
+ // Reached filesystem root without finding a vault.
28
+ // Give an explicit, actionable error that distinguishes the two common cases:
29
+ // (a) user is not in a project directory → `cd` into the project
30
+ // (b) user is in a project but hasn't initialized → `ows init`
31
+ const err = new Error(`No open-wiki-spec vault found.\n\n` +
32
+ `Searched from: ${cwd}\n` +
33
+ `(walked up to filesystem root looking for a directory containing wiki/00-meta/schema.md)\n\n` +
34
+ `To fix this:\n` +
35
+ ` • If you're in the wrong directory: cd into your project root and retry.\n` +
36
+ ` • If you haven't initialized a vault yet: run \`ows init\` inside your project.\n` +
37
+ ` • If your vault lives elsewhere: cd into the project root that contains wiki/.\n\n` +
38
+ `ows commands must run from inside a project that has a wiki/ directory.`);
39
+ err.code = 'VAULT_NOT_FOUND';
40
+ throw err;
27
41
  }
28
42
  dir = parent;
29
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vault-discovery.js","sourceRoot":"","sources":["../../src/cli/vault-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,IAAI,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IAEpC,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IACE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACpC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAC3D,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACb,8GAA8G,CAC/G,CAAC;QACJ,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"vault-discovery.js","sourceRoot":"","sources":["../../src/cli/vault-discovery.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAiB;IACjD,MAAM,GAAG,GAAG,QAAQ,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACtC,IAAI,GAAG,GAAG,GAAG,CAAC;IAEd,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IACE,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACpC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,EAC3D,CAAC;YACD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,MAAM,KAAK,GAAG,EAAE,CAAC;YACnB,mDAAmD;YACnD,8EAA8E;YAC9E,mEAAmE;YACnE,iEAAiE;YACjE,MAAM,GAAG,GAAG,IAAI,KAAK,CACnB,oCAAoC;gBACpC,kBAAkB,GAAG,IAAI;gBACzB,8FAA8F;gBAC9F,gBAAgB;gBAChB,8EAA8E;gBAC9E,qFAAqF;gBACrF,sFAAsF;gBACtF,yEAAyE,CAC1E,CAAC;YACD,GAA6B,CAAC,IAAI,GAAG,iBAAiB,CAAC;YACxD,MAAM,GAAG,CAAC;QACZ,CAAC;QACD,GAAG,GAAG,MAAM,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -4,17 +4,26 @@ export interface EmbeddingCacheEntry {
4
4
  }
5
5
  export interface EmbeddingCache {
6
6
  model: string;
7
+ /** Model revision hash — cache is invalidated when revision changes. */
8
+ revision?: string;
7
9
  entries: Record<string, EmbeddingCacheEntry>;
8
10
  }
9
- export declare function createEmptyCache(model: string): EmbeddingCache;
11
+ export declare function createEmptyCache(model: string, revision?: string): EmbeddingCache;
10
12
  /**
11
13
  * Load embedding cache from disk.
12
14
  * Returns null if file doesn't exist, is corrupted, or model mismatches.
13
15
  */
14
- export declare function loadEmbeddingCache(filePath: string, expectedModel?: string): EmbeddingCache | null;
16
+ export declare function loadEmbeddingCache(filePath: string, expectedModel?: string, expectedRevision?: string): EmbeddingCache | null;
15
17
  /**
16
18
  * Save embedding cache to disk atomically (write-to-temp-then-rename).
17
- * Prevents corruption from interrupted or concurrent writes.
19
+ *
20
+ * Concurrent-write safety: two simultaneous `propose` processes each load
21
+ * the file, add their own entries, and save. A naive last-write-wins would
22
+ * drop the other process's new entries. Before the atomic rename, re-read
23
+ * whatever is currently on disk and merge its entries with ours — favoring
24
+ * in-memory entries on conflict (newest wins, which is safe because cache
25
+ * entries are content-addressed by content_hash). Cache misses cost an
26
+ * embed recompute but never data loss.
18
27
  */
19
28
  export declare function saveEmbeddingCache(filePath: string, cache: EmbeddingCache): void;
20
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/core/embedding/cache.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC9C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAE9D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,GACrB,cAAc,GAAG,IAAI,CAWvB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAMhF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,GAAG,IAAI,CAIjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,MAAM,GAClB,IAAI,CAEN"}
1
+ {"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/core/embedding/cache.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;CAC9C;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc,CAEjF;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,aAAa,CAAC,EAAE,MAAM,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB,cAAc,GAAG,IAAI,CAavB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAoChF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,GAClB,MAAM,EAAE,GAAG,IAAI,CAIjB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,cAAc,EACrB,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EAAE,EAChB,WAAW,EAAE,MAAM,GAClB,IAAI,CAEN"}
@@ -1,14 +1,14 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
3
  import * as crypto from 'node:crypto';
4
- export function createEmptyCache(model) {
5
- return { model, entries: {} };
4
+ export function createEmptyCache(model, revision) {
5
+ return { model, revision, entries: {} };
6
6
  }
7
7
  /**
8
8
  * Load embedding cache from disk.
9
9
  * Returns null if file doesn't exist, is corrupted, or model mismatches.
10
10
  */
11
- export function loadEmbeddingCache(filePath, expectedModel) {
11
+ export function loadEmbeddingCache(filePath, expectedModel, expectedRevision) {
12
12
  try {
13
13
  if (!fs.existsSync(filePath))
14
14
  return null;
@@ -18,6 +18,9 @@ export function loadEmbeddingCache(filePath, expectedModel) {
18
18
  return null;
19
19
  if (expectedModel && data.model !== expectedModel)
20
20
  return null;
21
+ // Invalidate cache when revision changes
22
+ if (expectedRevision && data.revision && data.revision !== expectedRevision)
23
+ return null;
21
24
  return data;
22
25
  }
23
26
  catch {
@@ -26,13 +29,47 @@ export function loadEmbeddingCache(filePath, expectedModel) {
26
29
  }
27
30
  /**
28
31
  * Save embedding cache to disk atomically (write-to-temp-then-rename).
29
- * Prevents corruption from interrupted or concurrent writes.
32
+ *
33
+ * Concurrent-write safety: two simultaneous `propose` processes each load
34
+ * the file, add their own entries, and save. A naive last-write-wins would
35
+ * drop the other process's new entries. Before the atomic rename, re-read
36
+ * whatever is currently on disk and merge its entries with ours — favoring
37
+ * in-memory entries on conflict (newest wins, which is safe because cache
38
+ * entries are content-addressed by content_hash). Cache misses cost an
39
+ * embed recompute but never data loss.
30
40
  */
31
41
  export function saveEmbeddingCache(filePath, cache) {
32
42
  const dir = path.dirname(filePath);
33
43
  fs.mkdirSync(dir, { recursive: true });
44
+ // Merge with any on-disk version that was written by a concurrent process
45
+ // between our load and save. Only merge when model/revision match — mismatch
46
+ // means the other process already invalidated our cache generation.
47
+ let merged = cache;
48
+ try {
49
+ if (fs.existsSync(filePath)) {
50
+ const raw = fs.readFileSync(filePath, 'utf-8');
51
+ const onDisk = JSON.parse(raw);
52
+ if (onDisk &&
53
+ onDisk.model === cache.model &&
54
+ (onDisk.revision ?? undefined) === (cache.revision ?? undefined) &&
55
+ onDisk.entries &&
56
+ typeof onDisk.entries === 'object') {
57
+ merged = {
58
+ model: cache.model,
59
+ revision: cache.revision,
60
+ // Spread on-disk first so in-memory entries win on key collision.
61
+ entries: { ...onDisk.entries, ...cache.entries },
62
+ };
63
+ }
64
+ }
65
+ }
66
+ catch {
67
+ // On-disk file corrupted or unreadable — fall through and overwrite
68
+ // with our in-memory copy. We prefer losing the corrupted bytes over
69
+ // failing the whole save.
70
+ }
34
71
  const tmpPath = path.join(dir, `.embeddings-${crypto.randomBytes(4).toString('hex')}.tmp`);
35
- fs.writeFileSync(tmpPath, JSON.stringify(cache), 'utf-8');
72
+ fs.writeFileSync(tmpPath, JSON.stringify(merged), 'utf-8');
36
73
  fs.renameSync(tmpPath, filePath);
37
74
  }
38
75
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/core/embedding/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAatC,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,aAAsB;IAEtB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClF,IAAI,aAAa,IAAI,IAAI,CAAC,KAAK,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAqB;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACvC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3F,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAqB,EACrB,EAAU,EACV,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAqB,EACrB,EAAU,EACV,MAAgB,EAChB,WAAmB;IAEnB,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/core/embedding/cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAetC,MAAM,UAAU,gBAAgB,CAAC,KAAa,EAAE,QAAiB;IAC/D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,aAAsB,EACtB,gBAAyB;IAEzB,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,OAAO,IAAI,CAAC;QAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;QAC/C,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;QAClF,IAAI,aAAa,IAAI,IAAI,CAAC,KAAK,KAAK,aAAa;YAAE,OAAO,IAAI,CAAC;QAC/D,yCAAyC;QACzC,IAAI,gBAAgB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,gBAAgB;YAAE,OAAO,IAAI,CAAC;QACzF,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,KAAqB;IACxE,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACnC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEvC,0EAA0E;IAC1E,6EAA6E;IAC7E,oEAAoE;IACpE,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAmB,CAAC;YACjD,IACE,MAAM;gBACN,MAAM,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;gBAC5B,CAAC,MAAM,CAAC,QAAQ,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,IAAI,SAAS,CAAC;gBAChE,MAAM,CAAC,OAAO;gBACd,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAClC,CAAC;gBACD,MAAM,GAAG;oBACP,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,QAAQ,EAAE,KAAK,CAAC,QAAQ;oBACxB,kEAAkE;oBAClE,OAAO,EAAE,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE;iBACjD,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,oEAAoE;QACpE,qEAAqE;QACrE,0BAA0B;IAC5B,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC3F,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3D,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAqB,EACrB,EAAU,EACV,WAAmB;IAEnB,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW;QAAE,OAAO,IAAI,CAAC;IAC9D,OAAO,KAAK,CAAC,MAAM,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAqB,EACrB,EAAU,EACV,MAAgB,EAChB,WAAmB;IAEnB,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,CAAC;AAC5D,CAAC"}
@@ -8,8 +8,12 @@ export declare const DEFAULT_MODEL = "Xenova/multilingual-e5-small";
8
8
  * Update this hash when intentionally upgrading the model version.
9
9
  * For air-gapped environments, set CreateEmbedderOptions.localModelPath
10
10
  * to a local directory containing the model files instead.
11
+ *
12
+ * Verify any new hash points to a commit that actually exists in the model
13
+ * repo (the previous value did not) and contains all required files
14
+ * (tokenizer.json, config.json, quantized ONNX weights).
11
15
  */
12
- export declare const DEFAULT_MODEL_REVISION = "bf4b30e4e5543f3949ad93f84e0b12c40feb1528";
16
+ export declare const DEFAULT_MODEL_REVISION = "761b726dd34fb83930e26aab4e9ac3899aa1fa78";
13
17
  export type EmbedPipeline = (text: string) => Promise<number[]>;
14
18
  export interface Embedder {
15
19
  available: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"embedder.d.ts","sourceRoot":"","sources":["../../../src/core/embedding/embedder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa,iCAAiC,CAAC;AAE5D;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,6CAA6C,CAAC;AAEjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEhE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,QAAQ,CAAC,CA+CnB"}
1
+ {"version":3,"file":"embedder.d.ts","sourceRoot":"","sources":["../../../src/core/embedding/embedder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,aAAa,iCAAiC,CAAC;AAE5D;;;;;;;;;GASG;AACH,eAAO,MAAM,sBAAsB,6CAA6C,CAAC;AAEjF,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;AAEhE,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC;CAC/D;AAED,MAAM,WAAW,qBAAqB;IACpC,kDAAkD;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,QAAQ,CAAC,EAAE,aAAa,CAAC;IACzB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAiBD;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,QAAQ,CAAC,CA+CnB"}
@@ -8,8 +8,26 @@ export const DEFAULT_MODEL = 'Xenova/multilingual-e5-small';
8
8
  * Update this hash when intentionally upgrading the model version.
9
9
  * For air-gapped environments, set CreateEmbedderOptions.localModelPath
10
10
  * to a local directory containing the model files instead.
11
+ *
12
+ * Verify any new hash points to a commit that actually exists in the model
13
+ * repo (the previous value did not) and contains all required files
14
+ * (tokenizer.json, config.json, quantized ONNX weights).
11
15
  */
12
- export const DEFAULT_MODEL_REVISION = 'bf4b30e4e5543f3949ad93f84e0b12c40feb1528';
16
+ export const DEFAULT_MODEL_REVISION = '761b726dd34fb83930e26aab4e9ac3899aa1fa78';
17
+ /**
18
+ * In-flight embedder promises keyed by model identity so concurrent
19
+ * `propose` calls within the same Node process share a single load —
20
+ * avoiding a redundant model download/initialization on cold start.
21
+ *
22
+ * We can't dedupe across separate Node processes from JavaScript (that
23
+ * would need a filesystem lock), but transformers.js already caches
24
+ * model files on disk, so the cost of two parallel processes is a
25
+ * one-time race on the cache directory, not a full double download.
26
+ * Within a single process (tests, long-lived server wrappers, repeated
27
+ * CLI invocations via programmatic API) this latch prevents the
28
+ * pathological case of two proposes each spawning a full initialization.
29
+ */
30
+ const inFlightEmbedders = new Map();
13
31
  /**
14
32
  * Create an embedder instance.
15
33
  * When @huggingface/transformers is not installed or loadModel is false,
@@ -17,17 +35,46 @@ export const DEFAULT_MODEL_REVISION = 'bf4b30e4e5543f3949ad93f84e0b12c40feb1528'
17
35
  */
18
36
  export async function createEmbedder(options = {}) {
19
37
  const { loadModel = true, pipeline: injectedPipeline, model = DEFAULT_MODEL, revision = DEFAULT_MODEL_REVISION, localModelPath, } = options;
20
- // If a mock pipeline is injected, use it directly
38
+ // If a mock pipeline is injected, use it directly.
39
+ // Apply the same empty-string guard as the real model path so tests
40
+ // and the null embedder see the same contract: whitespace-only input
41
+ // returns null rather than a garbage vector.
21
42
  if (injectedPipeline) {
43
+ const guardedInjected = async (text) => {
44
+ if (!text || text.trim().length === 0)
45
+ return null;
46
+ return injectedPipeline(text);
47
+ };
22
48
  return {
23
49
  available: true,
24
- embed: async (text) => injectedPipeline(text),
25
- embedBatch: async (texts) => Promise.all(texts.map((t) => injectedPipeline(t))),
50
+ embed: guardedInjected,
51
+ embedBatch: async (texts) => Promise.all(texts.map(guardedInjected)),
26
52
  };
27
53
  }
28
54
  if (!loadModel) {
29
55
  return createNullEmbedder();
30
56
  }
57
+ // Singleton-per-model: if another caller in this process has already
58
+ // kicked off an initialization for the same model/revision/path tuple,
59
+ // wait on that promise instead of spawning a duplicate load. Failures
60
+ // are cached too (we clear on error so a retry can try again).
61
+ const cacheKey = `${localModelPath ?? ''}|${model}|${revision ?? ''}`;
62
+ const existing = inFlightEmbedders.get(cacheKey);
63
+ if (existing)
64
+ return existing;
65
+ const loadPromise = loadEmbedderInternal(model, revision, localModelPath);
66
+ inFlightEmbedders.set(cacheKey, loadPromise);
67
+ try {
68
+ return await loadPromise;
69
+ }
70
+ catch (err) {
71
+ // Clear on error so the next call can retry rather than permanently
72
+ // inheriting a failed load.
73
+ inFlightEmbedders.delete(cacheKey);
74
+ throw err;
75
+ }
76
+ }
77
+ async function loadEmbedderInternal(model, revision, localModelPath) {
31
78
  // Try to load @huggingface/transformers dynamically
32
79
  try {
33
80
  const { pipeline } = await import('@huggingface/transformers');
@@ -41,13 +88,37 @@ export async function createEmbedder(options = {}) {
41
88
  const output = await extractor(text, { pooling: 'mean', normalize: true });
42
89
  return Array.from(output.data);
43
90
  };
91
+ // Empty-string guard. transformers.js on an empty input produces a
92
+ // degenerate zero-norm vector and emits a warning; that zero vector
93
+ // then pollutes cosine similarity (everything looks like a 0.0 match
94
+ // instead of being filtered out). Match the null-embedder contract
95
+ // and return `null` for empty/whitespace-only inputs so callers
96
+ // can skip scoring cleanly.
97
+ const guardedEmbed = async (text) => {
98
+ if (!text || text.trim().length === 0)
99
+ return null;
100
+ return embedFn(text);
101
+ };
44
102
  return {
45
103
  available: true,
46
- embed: async (text) => embedFn(text),
47
- embedBatch: async (texts) => Promise.all(texts.map((t) => embedFn(t))),
104
+ embed: guardedEmbed,
105
+ embedBatch: async (texts) => Promise.all(texts.map(guardedEmbed)),
48
106
  };
49
107
  }
50
- catch {
108
+ catch (err) {
109
+ // Surface the failure so users know embedding is degraded.
110
+ // Verbose mode emits full error; default emits one-line warning.
111
+ const message = err.message ?? String(err);
112
+ if (process.env.OWS_DEBUG === '1' || process.env.OWS_VERBOSE === '1') {
113
+ process.stderr.write(`[ows] Embedding model failed to load: ${message}\n`);
114
+ if (err.stack) {
115
+ process.stderr.write(`${err.stack}\n`);
116
+ }
117
+ process.stderr.write('[ows] Falling back to lexical-only retrieval (semantic search disabled).\n');
118
+ }
119
+ else {
120
+ process.stderr.write(`[ows] Warning: embedding model unavailable (${message}). Using lexical retrieval only.\n`);
121
+ }
51
122
  return createNullEmbedder();
52
123
  }
53
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"embedder.js","sourceRoot":"","sources":["../../../src/core/embedding/embedder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAE5D;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,0CAA0C,CAAC;AA8BjF;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,UAAiC,EAAE;IAEnC,MAAM,EACJ,SAAS,GAAG,IAAI,EAChB,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,GAAG,aAAa,EACrB,QAAQ,GAAG,sBAAsB,EACjC,cAAc,GACf,GAAG,OAAO,CAAC;IAEZ,kDAAkD;IAClD,IAAI,gBAAgB,EAAE,CAAC;QACrB,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;YACrD,UAAU,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE,CACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;IAED,oDAAoD;IACpD,IAAI,CAAC;QACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,cAAc,IAAI,KAAK,CAAC;QAC5C,MAAM,YAAY,GAA4B,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9D,IAAI,CAAC,cAAc,IAAI,QAAQ,EAAE,CAAC;YAChC,YAAY,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACnC,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,oBAAoB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;QAElF,MAAM,OAAO,GAAkB,KAAK,EAAE,IAAY,EAAE,EAAE;YACpD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3E,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAoB,CAAC,CAAC;QACjD,CAAC,CAAC;QAEF,OAAO;YACL,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5C,UAAU,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE,CACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5C,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,kBAAkB,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,OAAO;QACL,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,IAAI;QACvB,UAAU,EAAE,KAAK,EAAE,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;KAC7D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"embedder.js","sourceRoot":"","sources":["../../../src/core/embedding/embedder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/core/index/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAczF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAyEhF"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/core/index/build.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAe,UAAU,EAAgB,MAAM,6BAA6B,CAAC;AAczF,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA8BD;;GAEG;AACH,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAgGhF"}
@@ -28,7 +28,20 @@ export function buildIndex(vaultRoot, options) {
28
28
  emptyTypedNotePaths.push(file.path);
29
29
  continue;
30
30
  }
31
- const result = parseNoteToRawRecord(file, schemaVersion);
31
+ // Catch ENOENT gracefully: files may be deleted between scan and parse.
32
+ // Without this, a single deleted file would abort the entire index build.
33
+ let result;
34
+ try {
35
+ result = parseNoteToRawRecord(file, schemaVersion);
36
+ }
37
+ catch (err) {
38
+ const code = err.code;
39
+ if (code === 'ENOENT' || code === 'EACCES') {
40
+ // File vanished or became unreadable — skip silently
41
+ continue;
42
+ }
43
+ throw err;
44
+ }
32
45
  if (result.invalidFrontmatter) {
33
46
  invalidFrontmatterPaths.push(file.path);
34
47
  continue;
@@ -52,11 +65,21 @@ export function buildIndex(vaultRoot, options) {
52
65
  const linkErrors = [];
53
66
  const records = new Map();
54
67
  const duplicateIds = detectDuplicateIds(rawRecords);
68
+ // Sort duplicate path groups up front with a locale-independent collator
69
+ // so the "keep first occurrence" decision is deterministic regardless
70
+ // of host locale (Korean, Japanese, Turkish users would otherwise see
71
+ // different winners from the same vault). Using `numeric: true` also
72
+ // orders `part-2` before `part-10`, matching human expectations.
73
+ const pathCollator = new Intl.Collator('en', { numeric: true, sensitivity: 'variant' });
74
+ const dedupedWinner = new Map();
75
+ for (const [dupId, paths] of duplicateIds) {
76
+ const sorted = [...paths].sort((a, b) => pathCollator.compare(a, b));
77
+ dedupedWinner.set(dupId, sorted[0]);
78
+ }
55
79
  for (const raw of rawRecords) {
56
80
  // Skip duplicate ids (keep first occurrence by path sort order)
57
81
  if (duplicateIds.has(raw.id)) {
58
- const paths = duplicateIds.get(raw.id);
59
- if (raw.path !== paths.sort()[0]) {
82
+ if (raw.path !== dedupedWinner.get(raw.id)) {
60
83
  continue;
61
84
  }
62
85
  }
@@ -98,9 +121,15 @@ function parseNoteToRawRecord(fileEntry, schemaVersion) {
98
121
  if (!fm.id) {
99
122
  return { raw: null, missingId: true, invalidFrontmatter: false };
100
123
  }
101
- // Extract title from first H1 heading or frontmatter id
124
+ // Extract title from first H1 heading or frontmatter id.
125
+ // Cap at 200 chars to stay within filesystem path limits (Windows 260-char limit,
126
+ // plus vault prefix overhead). Unicode grapheme clusters are preserved.
127
+ const MAX_TITLE_LENGTH = 200;
102
128
  const h1 = parseResult.sections.find(s => s.level === 1);
103
- const title = h1?.title ?? fm.id;
129
+ const rawTitle = h1?.title ?? fm.id;
130
+ const title = rawTitle.length > MAX_TITLE_LENGTH
131
+ ? rawTitle.slice(0, MAX_TITLE_LENGTH)
132
+ : rawTitle;
104
133
  const getArray = (key) => {
105
134
  const val = fm[key];
106
135
  return Array.isArray(val) ? val : [];
@@ -173,6 +202,25 @@ function resolveRecordLinks(rawRecord, lookups, errors, schemaVersion) {
173
202
  }
174
203
  return ids;
175
204
  }
205
+ // Like resolveArray but keeps unresolved wikilinks as raw tokens
206
+ // so downstream blocking logic can detect them
207
+ function resolveArrayKeepUnresolved(rawLinks) {
208
+ const ids = [];
209
+ for (const raw of rawLinks) {
210
+ const result = resolveWikilink(raw, lookups);
211
+ if (isResolved(result)) {
212
+ ids.push(result.target_id);
213
+ }
214
+ else {
215
+ errors.push({ source_id: rawRecord.id, source_path: rawRecord.path, ...result });
216
+ // Preserve raw token so blocking logic knows a dependency exists
217
+ const stripped = raw.replace(/^\[\[/, '').replace(/\]\]$/, '').replace(/"/g, '');
218
+ if (stripped)
219
+ ids.push(stripped);
220
+ }
221
+ }
222
+ return ids;
223
+ }
176
224
  function resolveSingle(raw) {
177
225
  if (raw === null)
178
226
  return undefined;
@@ -198,7 +246,7 @@ function resolveRecordLinks(rawRecord, lookups, errors, schemaVersion) {
198
246
  changes: resolveArray(rawRecord.changes_raw),
199
247
  feature: resolveSingle(rawRecord.feature_raw),
200
248
  features: rawRecord.features_raw ? resolveArray(rawRecord.features_raw) : undefined,
201
- depends_on: resolveArray(rawRecord.depends_on_raw),
249
+ depends_on: resolveArrayKeepUnresolved(rawRecord.depends_on_raw),
202
250
  touches: resolveArray(rawRecord.touches_raw),
203
251
  links_out: resolveArray(rawRecord.links_out_raw),
204
252
  links_in: [], // populated by computeReverseIndex
@@ -1 +1 @@
1
- {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/core/index/build.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/core/index/build.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/core/index/resolve.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,CA6BnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,UAAU,GAClB,kBAAkB,GAAG;IAAE,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAuCzG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,MAAM,IAAI,kBAAkB,CAEnG"}
1
+ {"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/core/index/resolve.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACpC,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAAC;CACxC;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,UAAU,GAAG,iBAAiB,GAAG,YAAY,CAAC;IACrD,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,UAAU,SAAS;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,UAAU,CAkCnE;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,UAAU,GAClB,kBAAkB,GAAG;IAAE,KAAK,EAAE,UAAU,GAAG,iBAAiB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,CAyCzG;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,GAAG,MAAM,IAAI,kBAAkB,CAEnG"}