daftari 1.29.0 → 1.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (369) hide show
  1. package/CHANGELOG.md +281 -0
  2. package/README.md +263 -9
  3. package/dist/access/rbac.d.ts +1 -0
  4. package/dist/access/rbac.d.ts.map +1 -1
  5. package/dist/access/rbac.js +7 -0
  6. package/dist/access/rbac.js.map +1 -1
  7. package/dist/asof/git-read.d.ts +17 -0
  8. package/dist/asof/git-read.d.ts.map +1 -0
  9. package/dist/asof/git-read.js +163 -0
  10. package/dist/asof/git-read.js.map +1 -0
  11. package/dist/asof/index.d.ts +2 -0
  12. package/dist/asof/index.d.ts.map +1 -0
  13. package/dist/asof/index.js +151 -0
  14. package/dist/asof/index.js.map +1 -0
  15. package/dist/asof/report.d.ts +11 -0
  16. package/dist/asof/report.d.ts.map +1 -0
  17. package/dist/asof/report.js +119 -0
  18. package/dist/asof/report.js.map +1 -0
  19. package/dist/asof/snapshot.d.ts +72 -0
  20. package/dist/asof/snapshot.d.ts.map +1 -0
  21. package/dist/asof/snapshot.js +207 -0
  22. package/dist/asof/snapshot.js.map +1 -0
  23. package/dist/audit/checks/broken_refs.d.ts +1 -1
  24. package/dist/audit/checks/broken_refs.d.ts.map +1 -1
  25. package/dist/audit/checks/broken_refs.js +77 -22
  26. package/dist/audit/checks/broken_refs.js.map +1 -1
  27. package/dist/audit/collect.d.ts +1 -0
  28. package/dist/audit/collect.d.ts.map +1 -1
  29. package/dist/audit/collect.js +22 -2
  30. package/dist/audit/collect.js.map +1 -1
  31. package/dist/audit/index.d.ts.map +1 -1
  32. package/dist/audit/index.js +9 -3
  33. package/dist/audit/index.js.map +1 -1
  34. package/dist/audit/links.d.ts.map +1 -1
  35. package/dist/audit/links.js +9 -3
  36. package/dist/audit/links.js.map +1 -1
  37. package/dist/audit/report.d.ts.map +1 -1
  38. package/dist/audit/report.js +2 -0
  39. package/dist/audit/report.js.map +1 -1
  40. package/dist/audit/types.d.ts +4 -1
  41. package/dist/audit/types.d.ts.map +1 -1
  42. package/dist/audit/types.js.map +1 -1
  43. package/dist/backfill/apply.js +2 -2
  44. package/dist/backfill/apply.js.map +1 -1
  45. package/dist/backfill/derive.d.ts.map +1 -1
  46. package/dist/backfill/derive.js +1 -0
  47. package/dist/backfill/derive.js.map +1 -1
  48. package/dist/backfill/plan.js +2 -2
  49. package/dist/backfill/plan.js.map +1 -1
  50. package/dist/cli.d.ts.map +1 -1
  51. package/dist/cli.js +36 -0
  52. package/dist/cli.js.map +1 -1
  53. package/dist/consolidate/call-budget.d.ts +3 -0
  54. package/dist/consolidate/call-budget.d.ts.map +1 -0
  55. package/dist/consolidate/call-budget.js +37 -0
  56. package/dist/consolidate/call-budget.js.map +1 -0
  57. package/dist/consolidate/constants.d.ts +1 -0
  58. package/dist/consolidate/constants.d.ts.map +1 -1
  59. package/dist/consolidate/constants.js +5 -0
  60. package/dist/consolidate/constants.js.map +1 -1
  61. package/dist/consolidate/index.d.ts.map +1 -1
  62. package/dist/consolidate/index.js +96 -27
  63. package/dist/consolidate/index.js.map +1 -1
  64. package/dist/court/docket.d.ts +39 -0
  65. package/dist/court/docket.d.ts.map +1 -0
  66. package/dist/court/docket.js +103 -0
  67. package/dist/court/docket.js.map +1 -0
  68. package/dist/court/index.d.ts +2 -0
  69. package/dist/court/index.d.ts.map +1 -0
  70. package/dist/court/index.js +169 -0
  71. package/dist/court/index.js.map +1 -0
  72. package/dist/court/precedent.d.ts +18 -0
  73. package/dist/court/precedent.d.ts.map +1 -0
  74. package/dist/court/precedent.js +89 -0
  75. package/dist/court/precedent.js.map +1 -0
  76. package/dist/court/report.d.ts +10 -0
  77. package/dist/court/report.d.ts.map +1 -0
  78. package/dist/court/report.js +77 -0
  79. package/dist/court/report.js.map +1 -0
  80. package/dist/curation/consumes.d.ts +24 -0
  81. package/dist/curation/consumes.d.ts.map +1 -0
  82. package/dist/curation/consumes.js +122 -0
  83. package/dist/curation/consumes.js.map +1 -0
  84. package/dist/curation/edge-staleness.d.ts +47 -0
  85. package/dist/curation/edge-staleness.d.ts.map +1 -0
  86. package/dist/curation/edge-staleness.js +258 -0
  87. package/dist/curation/edge-staleness.js.map +1 -0
  88. package/dist/curation/edges.d.ts.map +1 -1
  89. package/dist/curation/edges.js +164 -10
  90. package/dist/curation/edges.js.map +1 -1
  91. package/dist/curation/lint.d.ts +4 -1
  92. package/dist/curation/lint.d.ts.map +1 -1
  93. package/dist/curation/lint.js +61 -6
  94. package/dist/curation/lint.js.map +1 -1
  95. package/dist/curation/provenance.d.ts +2 -0
  96. package/dist/curation/provenance.d.ts.map +1 -1
  97. package/dist/curation/provenance.js +2 -0
  98. package/dist/curation/provenance.js.map +1 -1
  99. package/dist/curation/read-log.d.ts +19 -0
  100. package/dist/curation/read-log.d.ts.map +1 -0
  101. package/dist/curation/read-log.js +120 -0
  102. package/dist/curation/read-log.js.map +1 -0
  103. package/dist/curation/review-throughput.d.ts +24 -0
  104. package/dist/curation/review-throughput.d.ts.map +1 -0
  105. package/dist/curation/review-throughput.js +102 -0
  106. package/dist/curation/review-throughput.js.map +1 -0
  107. package/dist/curation/staged-actions.d.ts +11 -1
  108. package/dist/curation/staged-actions.d.ts.map +1 -1
  109. package/dist/curation/staged-actions.js +117 -30
  110. package/dist/curation/staged-actions.js.map +1 -1
  111. package/dist/curation/staleness.js +1 -1
  112. package/dist/curation/staleness.js.map +1 -1
  113. package/dist/curation/structural.d.ts +16 -0
  114. package/dist/curation/structural.d.ts.map +1 -0
  115. package/dist/curation/structural.js +64 -0
  116. package/dist/curation/structural.js.map +1 -0
  117. package/dist/curation/tension-access.d.ts +7 -0
  118. package/dist/curation/tension-access.d.ts.map +1 -0
  119. package/dist/curation/tension-access.js +44 -0
  120. package/dist/curation/tension-access.js.map +1 -0
  121. package/dist/curation/tension-blast.d.ts +6 -1
  122. package/dist/curation/tension-blast.d.ts.map +1 -1
  123. package/dist/curation/tension-blast.js +11 -2
  124. package/dist/curation/tension-blast.js.map +1 -1
  125. package/dist/curation/tension-clusters.d.ts +1 -1
  126. package/dist/curation/tension-clusters.d.ts.map +1 -1
  127. package/dist/curation/tension-clusters.js +5 -2
  128. package/dist/curation/tension-clusters.js.map +1 -1
  129. package/dist/curation/tension.d.ts +6 -2
  130. package/dist/curation/tension.d.ts.map +1 -1
  131. package/dist/curation/tension.js +86 -35
  132. package/dist/curation/tension.js.map +1 -1
  133. package/dist/curation/tier0.d.ts +27 -0
  134. package/dist/curation/tier0.d.ts.map +1 -0
  135. package/dist/curation/tier0.js +196 -0
  136. package/dist/curation/tier0.js.map +1 -0
  137. package/dist/curation/tier1.d.ts +30 -0
  138. package/dist/curation/tier1.d.ts.map +1 -0
  139. package/dist/curation/tier1.js +142 -0
  140. package/dist/curation/tier1.js.map +1 -0
  141. package/dist/curation/tier2.d.ts +43 -0
  142. package/dist/curation/tier2.d.ts.map +1 -0
  143. package/dist/curation/tier2.js +182 -0
  144. package/dist/curation/tier2.js.map +1 -0
  145. package/dist/curation/vault-docs.d.ts +5 -1
  146. package/dist/curation/vault-docs.d.ts.map +1 -1
  147. package/dist/curation/vault-docs.js +15 -1
  148. package/dist/curation/vault-docs.js.map +1 -1
  149. package/dist/eval/generate.js +22 -5
  150. package/dist/eval/generate.js.map +1 -1
  151. package/dist/eval/index.d.ts.map +1 -1
  152. package/dist/eval/index.js +173 -25
  153. package/dist/eval/index.js.map +1 -1
  154. package/dist/eval/llm-openrouter.d.ts +9 -0
  155. package/dist/eval/llm-openrouter.d.ts.map +1 -0
  156. package/dist/eval/llm-openrouter.js +171 -0
  157. package/dist/eval/llm-openrouter.js.map +1 -0
  158. package/dist/eval/llm.js +1 -1
  159. package/dist/eval/llm.js.map +1 -1
  160. package/dist/eval/prune.d.ts +24 -0
  161. package/dist/eval/prune.d.ts.map +1 -0
  162. package/dist/eval/prune.js +83 -0
  163. package/dist/eval/prune.js.map +1 -0
  164. package/dist/eval/storage.d.ts +3 -0
  165. package/dist/eval/storage.d.ts.map +1 -1
  166. package/dist/eval/storage.js +14 -0
  167. package/dist/eval/storage.js.map +1 -1
  168. package/dist/frontmatter/parser.d.ts +1 -0
  169. package/dist/frontmatter/parser.d.ts.map +1 -1
  170. package/dist/frontmatter/parser.js +12 -0
  171. package/dist/frontmatter/parser.js.map +1 -1
  172. package/dist/frontmatter/schema.d.ts.map +1 -1
  173. package/dist/frontmatter/schema.js +38 -3
  174. package/dist/frontmatter/schema.js.map +1 -1
  175. package/dist/frontmatter/types.d.ts +4 -1
  176. package/dist/frontmatter/types.d.ts.map +1 -1
  177. package/dist/frontmatter/types.js +8 -0
  178. package/dist/frontmatter/types.js.map +1 -1
  179. package/dist/import/index.d.ts.map +1 -1
  180. package/dist/import/index.js +44 -9
  181. package/dist/import/index.js.map +1 -1
  182. package/dist/import/langgraph-store.d.ts +53 -0
  183. package/dist/import/langgraph-store.d.ts.map +1 -0
  184. package/dist/import/langgraph-store.js +292 -0
  185. package/dist/import/langgraph-store.js.map +1 -0
  186. package/dist/index.d.ts +5 -0
  187. package/dist/index.d.ts.map +1 -1
  188. package/dist/index.js +56 -18
  189. package/dist/index.js.map +1 -1
  190. package/dist/lifecycle/lock.d.ts +9 -1
  191. package/dist/lifecycle/lock.d.ts.map +1 -1
  192. package/dist/lifecycle/lock.js +34 -9
  193. package/dist/lifecycle/lock.js.map +1 -1
  194. package/dist/okf/export.d.ts +12 -0
  195. package/dist/okf/export.d.ts.map +1 -0
  196. package/dist/okf/export.js +115 -0
  197. package/dist/okf/export.js.map +1 -0
  198. package/dist/okf/import.d.ts +24 -0
  199. package/dist/okf/import.d.ts.map +1 -0
  200. package/dist/okf/import.js +107 -0
  201. package/dist/okf/import.js.map +1 -0
  202. package/dist/okf/index.d.ts +2 -0
  203. package/dist/okf/index.d.ts.map +1 -0
  204. package/dist/okf/index.js +147 -0
  205. package/dist/okf/index.js.map +1 -0
  206. package/dist/okf/map.d.ts +16 -0
  207. package/dist/okf/map.d.ts.map +1 -0
  208. package/dist/okf/map.js +149 -0
  209. package/dist/okf/map.js.map +1 -0
  210. package/dist/okf/types.d.ts +9 -0
  211. package/dist/okf/types.d.ts.map +1 -0
  212. package/dist/okf/types.js +48 -0
  213. package/dist/okf/types.js.map +1 -0
  214. package/dist/search/contested.d.ts +18 -0
  215. package/dist/search/contested.d.ts.map +1 -0
  216. package/dist/search/contested.js +119 -0
  217. package/dist/search/contested.js.map +1 -0
  218. package/dist/search/coverage.d.ts.map +1 -1
  219. package/dist/search/coverage.js +1 -1
  220. package/dist/search/coverage.js.map +1 -1
  221. package/dist/search/hybrid.d.ts +23 -0
  222. package/dist/search/hybrid.d.ts.map +1 -1
  223. package/dist/search/hybrid.js +75 -15
  224. package/dist/search/hybrid.js.map +1 -1
  225. package/dist/search/reindex.d.ts +1 -0
  226. package/dist/search/reindex.d.ts.map +1 -1
  227. package/dist/search/reindex.js +57 -24
  228. package/dist/search/reindex.js.map +1 -1
  229. package/dist/search/watcher.d.ts +2 -0
  230. package/dist/search/watcher.d.ts.map +1 -1
  231. package/dist/search/watcher.js +23 -12
  232. package/dist/search/watcher.js.map +1 -1
  233. package/dist/serve/index.d.ts +36 -0
  234. package/dist/serve/index.d.ts.map +1 -0
  235. package/dist/serve/index.js +507 -0
  236. package/dist/serve/index.js.map +1 -0
  237. package/dist/server.d.ts +10 -1
  238. package/dist/server.d.ts.map +1 -1
  239. package/dist/server.js +91 -12
  240. package/dist/server.js.map +1 -1
  241. package/dist/sleep/cycle.d.ts +59 -0
  242. package/dist/sleep/cycle.d.ts.map +1 -0
  243. package/dist/sleep/cycle.js +127 -0
  244. package/dist/sleep/cycle.js.map +1 -0
  245. package/dist/sleep/index.d.ts +5 -0
  246. package/dist/sleep/index.d.ts.map +1 -0
  247. package/dist/sleep/index.js +320 -0
  248. package/dist/sleep/index.js.map +1 -0
  249. package/dist/sleep/report.d.ts +14 -0
  250. package/dist/sleep/report.d.ts.map +1 -0
  251. package/dist/sleep/report.js +139 -0
  252. package/dist/sleep/report.js.map +1 -0
  253. package/dist/sleep/tension-scan-state.d.ts +19 -0
  254. package/dist/sleep/tension-scan-state.d.ts.map +1 -0
  255. package/dist/sleep/tension-scan-state.js +0 -0
  256. package/dist/sleep/tension-scan-state.js.map +1 -0
  257. package/dist/sleep/tension-scan.d.ts +44 -0
  258. package/dist/sleep/tension-scan.d.ts.map +1 -0
  259. package/dist/sleep/tension-scan.js +0 -0
  260. package/dist/sleep/tension-scan.js.map +1 -0
  261. package/dist/storage/backend.d.ts +12 -0
  262. package/dist/storage/backend.d.ts.map +1 -0
  263. package/dist/storage/backend.js +231 -0
  264. package/dist/storage/backend.js.map +1 -0
  265. package/dist/storage/backends/fs.d.ts +4 -0
  266. package/dist/storage/backends/fs.d.ts.map +1 -0
  267. package/dist/storage/backends/fs.js +99 -0
  268. package/dist/storage/backends/fs.js.map +1 -0
  269. package/dist/storage/fs-walk.d.ts +5 -0
  270. package/dist/storage/fs-walk.d.ts.map +1 -0
  271. package/dist/storage/fs-walk.js +28 -0
  272. package/dist/storage/fs-walk.js.map +1 -0
  273. package/dist/storage/index-db.d.ts +18 -0
  274. package/dist/storage/index-db.d.ts.map +1 -1
  275. package/dist/storage/index-db.js +159 -22
  276. package/dist/storage/index-db.js.map +1 -1
  277. package/dist/storage/local.d.ts +7 -1
  278. package/dist/storage/local.d.ts.map +1 -1
  279. package/dist/storage/local.js +42 -4
  280. package/dist/storage/local.js.map +1 -1
  281. package/dist/storage/sync.d.ts +25 -0
  282. package/dist/storage/sync.d.ts.map +1 -0
  283. package/dist/storage/sync.js +308 -0
  284. package/dist/storage/sync.js.map +1 -0
  285. package/dist/sync/index.d.ts +2 -0
  286. package/dist/sync/index.d.ts.map +1 -0
  287. package/dist/sync/index.js +136 -0
  288. package/dist/sync/index.js.map +1 -0
  289. package/dist/themes/clustering.d.ts +6 -11
  290. package/dist/themes/clustering.d.ts.map +1 -1
  291. package/dist/themes/clustering.js +76 -84
  292. package/dist/themes/clustering.js.map +1 -1
  293. package/dist/tools/consumes.d.ts +14 -0
  294. package/dist/tools/consumes.d.ts.map +1 -0
  295. package/dist/tools/consumes.js +99 -0
  296. package/dist/tools/consumes.js.map +1 -0
  297. package/dist/tools/curation.d.ts +2 -0
  298. package/dist/tools/curation.d.ts.map +1 -1
  299. package/dist/tools/curation.js +102 -7
  300. package/dist/tools/curation.js.map +1 -1
  301. package/dist/tools/edge-staleness.d.ts +28 -0
  302. package/dist/tools/edge-staleness.d.ts.map +1 -0
  303. package/dist/tools/edge-staleness.js +205 -0
  304. package/dist/tools/edge-staleness.js.map +1 -0
  305. package/dist/tools/edges.d.ts.map +1 -1
  306. package/dist/tools/edges.js +28 -22
  307. package/dist/tools/edges.js.map +1 -1
  308. package/dist/tools/read.d.ts +15 -1
  309. package/dist/tools/read.d.ts.map +1 -1
  310. package/dist/tools/read.js +144 -31
  311. package/dist/tools/read.js.map +1 -1
  312. package/dist/tools/receipt.d.ts +65 -0
  313. package/dist/tools/receipt.d.ts.map +1 -0
  314. package/dist/tools/receipt.js +257 -0
  315. package/dist/tools/receipt.js.map +1 -0
  316. package/dist/tools/search.d.ts +1 -0
  317. package/dist/tools/search.d.ts.map +1 -1
  318. package/dist/tools/search.js +186 -12
  319. package/dist/tools/search.js.map +1 -1
  320. package/dist/tools/staged-actions.d.ts +3 -0
  321. package/dist/tools/staged-actions.d.ts.map +1 -1
  322. package/dist/tools/staged-actions.js +228 -23
  323. package/dist/tools/staged-actions.js.map +1 -1
  324. package/dist/tools/themes.d.ts +9 -0
  325. package/dist/tools/themes.d.ts.map +1 -1
  326. package/dist/tools/themes.js +333 -133
  327. package/dist/tools/themes.js.map +1 -1
  328. package/dist/tools/tier1.d.ts +14 -0
  329. package/dist/tools/tier1.d.ts.map +1 -0
  330. package/dist/tools/tier1.js +169 -0
  331. package/dist/tools/tier1.js.map +1 -0
  332. package/dist/tools/tier2.d.ts +27 -0
  333. package/dist/tools/tier2.d.ts.map +1 -0
  334. package/dist/tools/tier2.js +344 -0
  335. package/dist/tools/tier2.js.map +1 -0
  336. package/dist/tools/witness.d.ts +9 -0
  337. package/dist/tools/witness.d.ts.map +1 -0
  338. package/dist/tools/witness.js +66 -0
  339. package/dist/tools/witness.js.map +1 -0
  340. package/dist/tools/write.d.ts +9 -1
  341. package/dist/tools/write.d.ts.map +1 -1
  342. package/dist/tools/write.js +593 -59
  343. package/dist/tools/write.js.map +1 -1
  344. package/dist/utils/config.d.ts +54 -0
  345. package/dist/utils/config.d.ts.map +1 -1
  346. package/dist/utils/config.js +420 -4
  347. package/dist/utils/config.js.map +1 -1
  348. package/dist/utils/paths.d.ts +2 -0
  349. package/dist/utils/paths.d.ts.map +1 -0
  350. package/dist/utils/paths.js +15 -0
  351. package/dist/utils/paths.js.map +1 -0
  352. package/dist/utils/redos.d.ts +2 -0
  353. package/dist/utils/redos.d.ts.map +1 -0
  354. package/dist/utils/redos.js +101 -0
  355. package/dist/utils/redos.js.map +1 -0
  356. package/dist/utils/run-id.d.ts +3 -0
  357. package/dist/utils/run-id.d.ts.map +1 -0
  358. package/dist/utils/run-id.js +19 -0
  359. package/dist/utils/run-id.js.map +1 -0
  360. package/dist/utils/vault-gitignore.d.ts +1 -1
  361. package/dist/utils/vault-gitignore.d.ts.map +1 -1
  362. package/dist/utils/vault-gitignore.js +6 -1
  363. package/dist/utils/vault-gitignore.js.map +1 -1
  364. package/dist/witness/track-record.d.ts +42 -0
  365. package/dist/witness/track-record.d.ts.map +1 -0
  366. package/dist/witness/track-record.js +189 -0
  367. package/dist/witness/track-record.js.map +1 -0
  368. package/package.json +27 -2
  369. package/templates/config.yaml +8 -0
@@ -5,12 +5,13 @@
5
5
  // permission system that silently loads a broken policy is worse than one that
6
6
  // refuses to start. A *missing* config is not malformed — it just yields an
7
7
  // empty role set, so every --role resolves to the deny-all guest.
8
- import { readFileSync } from "node:fs";
8
+ import { readFileSync, statSync } from "node:fs";
9
9
  import { homedir } from "node:os";
10
10
  import { isAbsolute, join, relative, resolve } from "node:path";
11
11
  import { load as parseYaml } from "js-yaml";
12
12
  import { BUILTIN_FRONTMATTER_FIELDS, err, ok, } from "../frontmatter/types.js";
13
13
  import { sha256Hex } from "./hash.js";
14
+ import { hasCatastrophicBacktracking } from "./redos.js";
14
15
  // The primitive types a schema-extension field may declare. `array` is v1
15
16
  // array<string> only; `enum` is a closed set of string values.
16
17
  export const EXTENSION_TYPES = ["string", "date", "number", "boolean", "array", "enum"];
@@ -19,6 +20,30 @@ export const EXTENSION_TYPES = ["string", "date", "number", "boolean", "array",
19
20
  // getProvider). Adding a third provider would mean a new id here AND a new
20
21
  // branch in getProvider AND a config-load check if it needs env vars.
21
22
  export const EMBEDDING_PROVIDERS = ["local-minilm", "openai-3-small"];
23
+ // Tool-exposure tiers (#103). The tier picks which tools the ListTools
24
+ // response advertises — every tool the client sees costs the agent context
25
+ // tokens and a decision branch, and most sessions need a fraction of the
26
+ // registry. `include` / `exclude` (#104) fine-tune the tier's set: include
27
+ // first, then exclude, so exclude always wins. Filtering is advertisement
28
+ // only — CallTool accepts any registered tool name regardless of tier, so an
29
+ // agent that cached a name from a prior session keeps working.
30
+ export const TOOL_TIERS = ["core", "standard", "full"];
31
+ // Full exposure by default: the registry is the server's public surface, and
32
+ // hiding tools is an explicit operator choice, never an upgrade surprise.
33
+ // (#103 sketched `standard` as the default, but the registry has doubled
34
+ // since — a lean default would silently strip live deployments.)
35
+ export const TOOLS_DEFAULTS = {
36
+ tier: "full",
37
+ include: [],
38
+ exclude: [],
39
+ };
40
+ // Defaults sized from the langgraph-store demo: 49 notes ⇒ 194 pairwise
41
+ // judgments (~$2 on a frontier judge), so 200 calls covers a ~50-doc pass.
42
+ export const TENSION_SCAN_DEFAULTS = {
43
+ maxLlmCalls: 200,
44
+ maxDocs: 50,
45
+ agent: "agent:sleep-tension-scan",
46
+ };
22
47
  // A config with no roles and no extensions. Returned for a missing or empty
23
48
  // config file — both are valid, not malformed.
24
49
  function emptyConfig() {
@@ -32,7 +57,12 @@ function emptyConfig() {
32
57
  embeddingProvider: "local-minilm",
33
58
  backfillIdentityMap: {},
34
59
  shadowMode: false,
60
+ shadowModeSet: false,
35
61
  gitDir: undefined,
62
+ tensionScan: { ...TENSION_SCAN_DEFAULTS },
63
+ tools: { ...TOOLS_DEFAULTS, include: [], exclude: [] },
64
+ server: { tokens: [] },
65
+ storage: undefined,
36
66
  };
37
67
  }
38
68
  export function configPath(vaultRoot) {
@@ -76,7 +106,31 @@ function validateRole(name, raw) {
76
106
  }
77
107
  ratify = obj.ratify;
78
108
  }
79
- return ok({ read: read.value, write: write.value, promote, ratify });
109
+ let proposeOnly = false;
110
+ if (obj.propose_only !== undefined) {
111
+ if (typeof obj.propose_only !== "boolean") {
112
+ return err(new Error(`role '${name}' propose_only must be true or false`));
113
+ }
114
+ proposeOnly = obj.propose_only;
115
+ }
116
+ // Contradictory grants fail loud at load: a propose-only role proposes, it
117
+ // does not decide. Allowing both would let vault_ratify's write dispatch be
118
+ // coerced back into a NEW proposal while marking the original ratified.
119
+ if (proposeOnly && ratify) {
120
+ return err(new Error(`role '${name}' cannot set both ratify and propose_only — a ` +
121
+ `propose-only role proposes, it does not decide`));
122
+ }
123
+ if (proposeOnly && promote) {
124
+ return err(new Error(`role '${name}' cannot set both promote and propose_only — promotion ` +
125
+ `is a direct write, which propose-only forbids`));
126
+ }
127
+ return ok({
128
+ read: read.value,
129
+ write: write.value,
130
+ promote,
131
+ ratify,
132
+ ...(proposeOnly ? { proposeOnly } : {}),
133
+ });
80
134
  }
81
135
  // Checks a declared `default` value against its extension type. A default
82
136
  // that cannot hold the declared type is a malformed declaration — config
@@ -177,6 +231,12 @@ function validateExtension(field, raw) {
177
231
  catch {
178
232
  return err(new Error(`${where}: 'pattern' is not a valid regular expression`));
179
233
  }
234
+ // The pattern is run against caller-supplied frontmatter on the write path;
235
+ // a backtracking-prone pattern would be a synchronous-regex DoS lever.
236
+ if (hasCatastrophicBacktracking(obj.pattern)) {
237
+ return err(new Error(`${where}: 'pattern' risks catastrophic backtracking (ReDoS) — ` +
238
+ "avoid nested or overlapping quantifiers such as (a+)+ or (a|a)*"));
239
+ }
180
240
  pattern = obj.pattern;
181
241
  }
182
242
  let defaultValue;
@@ -299,6 +359,271 @@ function validateBackfillIdentityMap(raw) {
299
359
  }
300
360
  return ok(out);
301
361
  }
362
+ // Parses the optional `tension_scan` block. Missing block ⇒ defaults; a
363
+ // declared key must hold the right shape (positive integers, non-empty
364
+ // agent string) — the same loud-failure contract as every other block. An
365
+ // unrecognised child key fails loud so a typo can't silently leave a budget
366
+ // at its default.
367
+ const RECOGNISED_TENSION_SCAN_KEYS = ["max_llm_calls", "max_docs", "agent"];
368
+ function validateTensionScan(raw) {
369
+ if (raw === undefined)
370
+ return ok({ ...TENSION_SCAN_DEFAULTS });
371
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
372
+ return err(new Error("'tension_scan' must be a mapping"));
373
+ }
374
+ const obj = raw;
375
+ for (const key of Object.keys(obj)) {
376
+ if (!RECOGNISED_TENSION_SCAN_KEYS.includes(key)) {
377
+ return err(new Error(`'tension_scan.${key}' is not a recognised setting`));
378
+ }
379
+ }
380
+ const out = { ...TENSION_SCAN_DEFAULTS };
381
+ for (const key of ["max_llm_calls", "max_docs"]) {
382
+ const v = obj[key];
383
+ if (v === undefined)
384
+ continue;
385
+ if (typeof v !== "number" || !Number.isInteger(v) || v <= 0) {
386
+ return err(new Error(`'tension_scan.${key}' must be a positive integer`));
387
+ }
388
+ if (key === "max_llm_calls")
389
+ out.maxLlmCalls = v;
390
+ else
391
+ out.maxDocs = v;
392
+ }
393
+ if (obj.agent !== undefined) {
394
+ if (typeof obj.agent !== "string" || obj.agent.trim().length === 0) {
395
+ return err(new Error("'tension_scan.agent' must be a non-empty string"));
396
+ }
397
+ out.agent = obj.agent.trim();
398
+ }
399
+ return ok(out);
400
+ }
401
+ const RECOGNISED_SERVER_KEYS = ["transport_security", "auth"];
402
+ const RECOGNISED_SERVER_AUTH_KEYS = ["tokens", "oauth"];
403
+ const RECOGNISED_SERVER_TOKEN_KEYS = ["env", "user", "role"];
404
+ const RECOGNISED_OAUTH_KEYS = ["issuer", "audience", "jwks_uri", "subjects"];
405
+ // `server.auth.oauth` (#7). Shape-only validation here; URL parseability and
406
+ // role existence are serve-startup concerns.
407
+ function validateOAuth(raw) {
408
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
409
+ return err(new Error("'server.auth.oauth' must be a mapping"));
410
+ }
411
+ const obj = raw;
412
+ for (const key of Object.keys(obj)) {
413
+ if (!RECOGNISED_OAUTH_KEYS.includes(key)) {
414
+ return err(new Error(`'server.auth.oauth.${key}' is not a recognised setting`));
415
+ }
416
+ }
417
+ for (const field of ["issuer", "audience", "jwks_uri"]) {
418
+ if (typeof obj[field] !== "string" || obj[field].trim().length === 0) {
419
+ return err(new Error(`'server.auth.oauth.${field}' must be a non-empty string`));
420
+ }
421
+ }
422
+ // Null prototype: bracket-assigning a subject literally named "__proto__"
423
+ // on a plain object would invoke the inherited setter and silently drop
424
+ // the mapping (and its startup role check) instead of storing it.
425
+ const subjects = Object.create(null);
426
+ if (obj.subjects === null || typeof obj.subjects !== "object" || Array.isArray(obj.subjects)) {
427
+ return err(new Error("'server.auth.oauth.subjects' must be a mapping"));
428
+ }
429
+ for (const [subject, entryRaw] of Object.entries(obj.subjects)) {
430
+ if (entryRaw === null || typeof entryRaw !== "object" || Array.isArray(entryRaw)) {
431
+ return err(new Error(`'server.auth.oauth.subjects.${subject}' must be a mapping`));
432
+ }
433
+ const entry = entryRaw;
434
+ for (const key of Object.keys(entry)) {
435
+ if (key !== "user" && key !== "role") {
436
+ return err(new Error(`'server.auth.oauth.subjects.${subject}.${key}' is not a recognised setting`));
437
+ }
438
+ }
439
+ for (const field of ["user", "role"]) {
440
+ if (typeof entry[field] !== "string" || entry[field].trim().length === 0) {
441
+ return err(new Error(`'server.auth.oauth.subjects.${subject}.${field}' must be a non-empty string`));
442
+ }
443
+ }
444
+ subjects[subject] = {
445
+ user: entry.user.trim(),
446
+ role: entry.role.trim(),
447
+ };
448
+ }
449
+ return ok({
450
+ issuer: obj.issuer.trim(),
451
+ audience: obj.audience.trim(),
452
+ jwksUri: obj.jwks_uri.trim(),
453
+ subjects,
454
+ });
455
+ }
456
+ // `server` block (#5). Malformed shapes fail loud like every block; the
457
+ // things only serve startup can know (env var set? role exists? bind rules?)
458
+ // are validated there, not here.
459
+ function validateServer(raw) {
460
+ if (raw === undefined)
461
+ return ok({ tokens: [] });
462
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
463
+ return err(new Error("'server' must be a mapping"));
464
+ }
465
+ const obj = raw;
466
+ for (const key of Object.keys(obj)) {
467
+ if (!RECOGNISED_SERVER_KEYS.includes(key)) {
468
+ return err(new Error(`'server.${key}' is not a recognised setting`));
469
+ }
470
+ }
471
+ const out = { tokens: [] };
472
+ if (obj.transport_security !== undefined) {
473
+ if (obj.transport_security !== "external") {
474
+ return err(new Error(`'server.transport_security' must be "external" when present ` +
475
+ `(got ${JSON.stringify(obj.transport_security)})`));
476
+ }
477
+ out.transportSecurity = "external";
478
+ }
479
+ if (obj.auth !== undefined) {
480
+ if (obj.auth === null || typeof obj.auth !== "object" || Array.isArray(obj.auth)) {
481
+ return err(new Error("'server.auth' must be a mapping"));
482
+ }
483
+ const auth = obj.auth;
484
+ for (const key of Object.keys(auth)) {
485
+ if (!RECOGNISED_SERVER_AUTH_KEYS.includes(key)) {
486
+ return err(new Error(`'server.auth.${key}' is not a recognised setting`));
487
+ }
488
+ }
489
+ if (auth.oauth !== undefined) {
490
+ const oauth = validateOAuth(auth.oauth);
491
+ if (!oauth.ok)
492
+ return oauth;
493
+ out.oauth = oauth.value;
494
+ }
495
+ if (auth.tokens !== undefined) {
496
+ if (!Array.isArray(auth.tokens)) {
497
+ return err(new Error("'server.auth.tokens' must be a list"));
498
+ }
499
+ for (let i = 0; i < auth.tokens.length; i++) {
500
+ const entry = auth.tokens[i];
501
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) {
502
+ return err(new Error(`'server.auth.tokens[${i}]' must be a mapping`));
503
+ }
504
+ const t = entry;
505
+ for (const key of Object.keys(t)) {
506
+ if (!RECOGNISED_SERVER_TOKEN_KEYS.includes(key)) {
507
+ return err(new Error(`'server.auth.tokens[${i}].${key}' is not a recognised setting`));
508
+ }
509
+ }
510
+ for (const field of RECOGNISED_SERVER_TOKEN_KEYS) {
511
+ if (typeof t[field] !== "string" || t[field].trim().length === 0) {
512
+ return err(new Error(`'server.auth.tokens[${i}].${field}' must be a non-empty string`));
513
+ }
514
+ }
515
+ out.tokens.push({
516
+ env: t.env.trim(),
517
+ user: t.user.trim(),
518
+ role: t.role.trim(),
519
+ });
520
+ }
521
+ }
522
+ }
523
+ return ok(out);
524
+ }
525
+ const RECOGNISED_STORAGE_KEYS = [
526
+ "backend",
527
+ "path",
528
+ "bucket",
529
+ "region",
530
+ "endpoint",
531
+ "force_path_style",
532
+ "container",
533
+ "prefix",
534
+ "sync_interval_minutes",
535
+ ];
536
+ const STORAGE_BACKENDS = ["fs", "s3", "azure"];
537
+ // Per-backend required key — the one thing that names the target. Everything
538
+ // only the backend SDK can know (reachability, credentials, permissions)
539
+ // fails at sync time, not here.
540
+ const STORAGE_REQUIRED = {
541
+ fs: "path",
542
+ s3: "bucket",
543
+ azure: "container",
544
+ };
545
+ // `storage` block (#6). Shape-only, like every block: endpoint URL rules are
546
+ // enforced at backend creation, credentials come from the environment.
547
+ function validateStorage(raw) {
548
+ if (raw === undefined)
549
+ return ok(undefined);
550
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
551
+ return err(new Error("'storage' must be a mapping"));
552
+ }
553
+ const obj = raw;
554
+ for (const key of Object.keys(obj)) {
555
+ if (!RECOGNISED_STORAGE_KEYS.includes(key)) {
556
+ return err(new Error(`'storage.${key}' is not a recognised setting`));
557
+ }
558
+ }
559
+ const backend = obj.backend;
560
+ if (typeof backend !== "string" || !STORAGE_BACKENDS.includes(backend)) {
561
+ return err(new Error(`'storage.backend' must be one of: ${STORAGE_BACKENDS.join(", ")} — a typo must not silently pick a target`));
562
+ }
563
+ const backendId = backend;
564
+ const required = STORAGE_REQUIRED[backendId];
565
+ if (typeof obj[required] !== "string" || obj[required].trim().length === 0) {
566
+ return err(new Error(`'storage.${required}' is required for the ${backendId} backend`));
567
+ }
568
+ for (const field of ["path", "bucket", "region", "endpoint", "container", "prefix"]) {
569
+ if (obj[field] !== undefined && typeof obj[field] !== "string") {
570
+ return err(new Error(`'storage.${field}' must be a string`));
571
+ }
572
+ }
573
+ if (obj.force_path_style !== undefined && typeof obj.force_path_style !== "boolean") {
574
+ return err(new Error("'storage.force_path_style' must be a boolean"));
575
+ }
576
+ if (obj.sync_interval_minutes !== undefined &&
577
+ (typeof obj.sync_interval_minutes !== "number" ||
578
+ !Number.isFinite(obj.sync_interval_minutes) ||
579
+ obj.sync_interval_minutes <= 0)) {
580
+ return err(new Error("'storage.sync_interval_minutes' must be a positive number"));
581
+ }
582
+ return ok({
583
+ backend: backendId,
584
+ path: obj.path,
585
+ bucket: obj.bucket,
586
+ region: obj.region,
587
+ endpoint: obj.endpoint,
588
+ forcePathStyle: obj.force_path_style,
589
+ container: obj.container,
590
+ prefix: obj.prefix,
591
+ syncIntervalMinutes: obj.sync_interval_minutes,
592
+ });
593
+ }
594
+ const RECOGNISED_TOOLS_KEYS = ["tier", "include", "exclude"];
595
+ function validateTools(raw) {
596
+ if (raw === undefined)
597
+ return ok({ ...TOOLS_DEFAULTS, include: [], exclude: [] });
598
+ if (raw === null || typeof raw !== "object" || Array.isArray(raw)) {
599
+ return err(new Error("'tools' must be a mapping"));
600
+ }
601
+ const obj = raw;
602
+ for (const key of Object.keys(obj)) {
603
+ if (!RECOGNISED_TOOLS_KEYS.includes(key)) {
604
+ return err(new Error(`'tools.${key}' is not a recognised setting`));
605
+ }
606
+ }
607
+ // An unknown TIER fails loud (same posture as embeddings.provider — a typo
608
+ // must not quietly resolve to a different exposure). Unknown tool NAMES in
609
+ // include/exclude are the server layer's warning, deliberately not an
610
+ // error: a config naming a future tool must keep loading on today's build.
611
+ let tier = TOOLS_DEFAULTS.tier;
612
+ if (obj.tier !== undefined) {
613
+ if (typeof obj.tier !== "string" || !TOOL_TIERS.includes(obj.tier)) {
614
+ return err(new Error(`'tools.tier' must be one of ${TOOL_TIERS.join(", ")} ` +
615
+ `(got ${JSON.stringify(obj.tier)})`));
616
+ }
617
+ tier = obj.tier;
618
+ }
619
+ const include = asStringArray(obj.include, "'tools.include'");
620
+ if (!include.ok)
621
+ return include;
622
+ const exclude = asStringArray(obj.exclude, "'tools.exclude'");
623
+ if (!exclude.ok)
624
+ return exclude;
625
+ return ok({ tier, include: include.value, exclude: exclude.value });
626
+ }
302
627
  function dataHome() {
303
628
  const xdg = process.env.XDG_DATA_HOME;
304
629
  return xdg && xdg.length > 0 ? xdg : join(homedir(), ".local", "share");
@@ -331,11 +656,78 @@ function resolveGitDir(raw, vaultRoot) {
331
656
  }
332
657
  return ok(gitDirAbs);
333
658
  }
659
+ const configCache = new Map();
660
+ // Test-only hook: clears the memoised config so a suite can exercise fresh
661
+ // loads without leaking cache state across cases. Not part of the runtime path.
662
+ export function clearConfigCache() {
663
+ configCache.clear();
664
+ }
334
665
  // Loads and validates the vault's RBAC config. A missing file is not an error
335
666
  // — it produces an empty role set. A file that parses but violates the schema,
336
667
  // or fails to parse at all, returns Result.err so the server can refuse to
337
668
  // start.
669
+ //
670
+ // The parsed+validated result is memoised keyed by the resolved config path and
671
+ // the file's mtime (finding E2). An unchanged file returns the cached Result
672
+ // after only a statSync; a changed, appearing, or disappearing file busts the
673
+ // entry and re-parses. Validation behaviour is identical to a fresh load — the
674
+ // cache only skips repeated work for a byte-identical file.
338
675
  export function loadConfig(vaultRoot) {
676
+ const path = configPath(vaultRoot);
677
+ const key = resolve(path);
678
+ let mtimeMs;
679
+ try {
680
+ mtimeMs = statSync(path).mtimeMs;
681
+ }
682
+ catch (e) {
683
+ // A missing file is the empty-config case; any other stat error falls
684
+ // through to loadConfigUncached, which reports it via readFileSync.
685
+ mtimeMs = e.code === "ENOENT" ? null : Number.NaN;
686
+ }
687
+ const cached = configCache.get(key);
688
+ // A NaN mtime (non-ENOENT stat error) never satisfies `===`, so such a case
689
+ // always re-parses rather than serving a stale hit.
690
+ if (cached !== undefined && cached.mtimeMs === mtimeMs) {
691
+ return cached.result;
692
+ }
693
+ const result = loadConfigUncached(vaultRoot);
694
+ configCache.set(key, { mtimeMs, result });
695
+ return result;
696
+ }
697
+ // A line that reads like prose rather than YAML: not a comment, not a list
698
+ // item, not a plausible `key: value`, at least three words, and carrying
699
+ // natural-language punctuation. The classic producer is a multi-line comment
700
+ // block where one line lost its leading '#' in a copy-paste (#26).
701
+ function looksLikeLostComment(line) {
702
+ const t = line.trim();
703
+ if (t.length === 0 || t.startsWith("#") || t.startsWith("- "))
704
+ return false;
705
+ if (/^[^:\s]+:(\s|$)/.test(t))
706
+ return false; // plausible mapping entry
707
+ if (t.split(/\s+/).length < 3)
708
+ return false;
709
+ return /[()'"]|\.\s|\.$/.test(t);
710
+ }
711
+ // Scans ±3 lines around a YAML parse failure for a comment-shaped line that
712
+ // lost its '#'. `errorLine0` is js-yaml's 0-based mark line; the returned
713
+ // hint uses 1-based numbering to match the parser's own excerpt. Exported
714
+ // for tests.
715
+ export function malformedCommentHint(text, errorLine0) {
716
+ if (errorLine0 === null)
717
+ return null;
718
+ const lines = text.split(/\r?\n/);
719
+ const from = Math.max(0, errorLine0 - 3);
720
+ const to = Math.min(lines.length - 1, errorLine0 + 3);
721
+ for (let i = from; i <= to; i++) {
722
+ if (looksLikeLostComment(lines[i] ?? "")) {
723
+ return `hint: line ${i + 1} may be a malformed comment that lost its '#' prefix`;
724
+ }
725
+ }
726
+ return null;
727
+ }
728
+ // The full read + parse + validate. Kept as a separate function so loadConfig
729
+ // can wrap it with the mtime cache without changing any validation logic.
730
+ function loadConfigUncached(vaultRoot) {
339
731
  let text;
340
732
  try {
341
733
  text = readFileSync(configPath(vaultRoot), "utf-8");
@@ -353,7 +745,13 @@ export function loadConfig(vaultRoot) {
353
745
  }
354
746
  catch (e) {
355
747
  const reason = e instanceof Error ? e.message : String(e);
356
- return err(new Error(`malformed config: invalid YAML: ${reason}`));
748
+ // js-yaml's position points at where parsing BROKE, which for a comment
749
+ // line that lost its '#' is the symptom, not the cause (#26). When a
750
+ // line near the failure reads like prose rather than YAML, say so —
751
+ // that one hint is usually the whole diagnosis.
752
+ const mark = e.mark;
753
+ const hint = malformedCommentHint(text, typeof mark?.line === "number" ? mark.line : null);
754
+ return err(new Error(`malformed config: invalid YAML: ${reason}${hint ? `\n${hint}` : ""}`));
357
755
  }
358
756
  if (parsed === null || parsed === undefined) {
359
757
  return ok(emptyConfig());
@@ -395,6 +793,18 @@ export function loadConfig(vaultRoot) {
395
793
  const gitDir = resolveGitDir(root.git_dir, vaultRoot);
396
794
  if (!gitDir.ok)
397
795
  return gitDir;
796
+ const tensionScan = validateTensionScan(root.tension_scan);
797
+ if (!tensionScan.ok)
798
+ return err(new Error(`malformed config: ${tensionScan.error.message}`));
799
+ const toolsConfig = validateTools(root.tools);
800
+ if (!toolsConfig.ok)
801
+ return err(new Error(`malformed config: ${toolsConfig.error.message}`));
802
+ const serverConfig = validateServer(root.server);
803
+ if (!serverConfig.ok)
804
+ return err(new Error(`malformed config: ${serverConfig.error.message}`));
805
+ const storageConfig = validateStorage(root.storage);
806
+ if (!storageConfig.ok)
807
+ return err(new Error(`malformed config: ${storageConfig.error.message}`));
398
808
  let watch = true;
399
809
  if (root.watch !== undefined) {
400
810
  if (typeof root.watch !== "boolean") {
@@ -410,7 +820,8 @@ export function loadConfig(vaultRoot) {
410
820
  warmEmbeddings = root.warm_embeddings;
411
821
  }
412
822
  let shadowMode = false;
413
- if (root.shadow_mode !== undefined) {
823
+ const shadowModeSet = root.shadow_mode !== undefined;
824
+ if (shadowModeSet) {
414
825
  if (typeof root.shadow_mode !== "boolean") {
415
826
  return err(new Error("malformed config: 'shadow_mode' must be true or false"));
416
827
  }
@@ -454,7 +865,12 @@ export function loadConfig(vaultRoot) {
454
865
  embeddingProvider,
455
866
  backfillIdentityMap: backfillIdentityMap.value,
456
867
  shadowMode,
868
+ shadowModeSet,
457
869
  gitDir: gitDir.value,
870
+ tensionScan: tensionScan.value,
871
+ tools: toolsConfig.value,
872
+ server: serverConfig.value,
873
+ storage: storageConfig.value,
458
874
  });
459
875
  }
460
876
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function canonicalRel(p: string): string;
2
+ //# sourceMappingURL=paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAYA,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9C"}
@@ -0,0 +1,15 @@
1
+ // paths — lexical vault-relative path canonicalization shared by the search
2
+ // and curation layers.
3
+ import { posix } from "node:path";
4
+ // Lexical, IO-free canonicalization of a vault-relative path: aliasing
5
+ // (`pricing/../pricing/a.md`) must join its canonical hit (#127/#128 class).
6
+ // A path that escapes the root normalizes to a `..`-leading form, which can
7
+ // never equal an indexed hit path — escapes simply never join. normalize("")
8
+ // returns "." — map it back to "" so the missing-source guard in buildByPath
9
+ // fires on entries with a blank Source line instead of indexing the valid
10
+ // side under a junk "." counterpart.
11
+ export function canonicalRel(p) {
12
+ const n = posix.normalize(p.trim().replace(/\\/g, "/"));
13
+ return n === "." ? "" : n.replace(/^\.\//, "");
14
+ }
15
+ //# sourceMappingURL=paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/utils/paths.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,uBAAuB;AAEvB,OAAO,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAElC,uEAAuE;AACvE,6EAA6E;AAC7E,4EAA4E;AAC5E,6EAA6E;AAC7E,6EAA6E;AAC7E,0EAA0E;AAC1E,qCAAqC;AACrC,MAAM,UAAU,YAAY,CAAC,CAAS;IACpC,MAAM,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function hasCatastrophicBacktracking(pattern: string): boolean;
2
+ //# sourceMappingURL=redos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"redos.d.ts","sourceRoot":"","sources":["../../src/utils/redos.ts"],"names":[],"mappings":"AAoEA,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CA0BpE"}