@jcode.labs/ragmir 6.1.5 → 6.2.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 (137) hide show
  1. package/README.md +43 -49
  2. package/dist/cli.js +194 -24
  3. package/dist/cli.js.map +1 -1
  4. package/dist/config.d.ts +24 -2
  5. package/dist/config.d.ts.map +1 -1
  6. package/dist/config.js +127 -24
  7. package/dist/config.js.map +1 -1
  8. package/dist/context-resources.d.ts.map +1 -1
  9. package/dist/context-resources.js +19 -8
  10. package/dist/context-resources.js.map +1 -1
  11. package/dist/defaults.d.ts +5 -0
  12. package/dist/defaults.d.ts.map +1 -1
  13. package/dist/defaults.js +16 -0
  14. package/dist/defaults.js.map +1 -1
  15. package/dist/doctor.d.ts.map +1 -1
  16. package/dist/doctor.js +37 -5
  17. package/dist/doctor.js.map +1 -1
  18. package/dist/evaluate.d.ts.map +1 -1
  19. package/dist/evaluate.js +11 -6
  20. package/dist/evaluate.js.map +1 -1
  21. package/dist/files.d.ts +27 -1
  22. package/dist/files.d.ts.map +1 -1
  23. package/dist/files.js +344 -100
  24. package/dist/files.js.map +1 -1
  25. package/dist/freshness.d.ts +16 -0
  26. package/dist/freshness.d.ts.map +1 -0
  27. package/dist/freshness.js +97 -0
  28. package/dist/freshness.js.map +1 -0
  29. package/dist/generation-retention.d.ts +12 -0
  30. package/dist/generation-retention.d.ts.map +1 -1
  31. package/dist/generation-retention.js +13 -2
  32. package/dist/generation-retention.js.map +1 -1
  33. package/dist/git-hooks.d.ts +25 -0
  34. package/dist/git-hooks.d.ts.map +1 -0
  35. package/dist/git-hooks.js +173 -0
  36. package/dist/git-hooks.js.map +1 -0
  37. package/dist/index-diagnostics.d.ts +9 -1
  38. package/dist/index-diagnostics.d.ts.map +1 -1
  39. package/dist/index-diagnostics.js +35 -0
  40. package/dist/index-diagnostics.js.map +1 -1
  41. package/dist/index-policy.d.ts.map +1 -1
  42. package/dist/index-policy.js +4 -0
  43. package/dist/index-policy.js.map +1 -1
  44. package/dist/ingest.d.ts +6 -0
  45. package/dist/ingest.d.ts.map +1 -1
  46. package/dist/ingest.js +44 -21
  47. package/dist/ingest.js.map +1 -1
  48. package/dist/init.d.ts.map +1 -1
  49. package/dist/init.js +19 -4
  50. package/dist/init.js.map +1 -1
  51. package/dist/knowledge-bases.d.ts +18 -1
  52. package/dist/knowledge-bases.d.ts.map +1 -1
  53. package/dist/knowledge-bases.js +73 -4
  54. package/dist/knowledge-bases.js.map +1 -1
  55. package/dist/mcp-output.d.ts +14 -3
  56. package/dist/mcp-output.d.ts.map +1 -1
  57. package/dist/mcp-output.js +37 -0
  58. package/dist/mcp-output.js.map +1 -1
  59. package/dist/mcp-registrations.d.ts +9 -0
  60. package/dist/mcp-registrations.d.ts.map +1 -0
  61. package/dist/mcp-registrations.js +247 -0
  62. package/dist/mcp-registrations.js.map +1 -0
  63. package/dist/mcp-scope.d.ts +32 -0
  64. package/dist/mcp-scope.d.ts.map +1 -0
  65. package/dist/mcp-scope.js +114 -0
  66. package/dist/mcp-scope.js.map +1 -0
  67. package/dist/mcp-session.d.ts +37 -0
  68. package/dist/mcp-session.d.ts.map +1 -0
  69. package/dist/mcp-session.js +53 -0
  70. package/dist/mcp-session.js.map +1 -0
  71. package/dist/mcp-summaries.d.ts +5 -0
  72. package/dist/mcp-summaries.d.ts.map +1 -1
  73. package/dist/mcp-summaries.js +30 -0
  74. package/dist/mcp-summaries.js.map +1 -1
  75. package/dist/mcp.d.ts +6 -0
  76. package/dist/mcp.d.ts.map +1 -1
  77. package/dist/mcp.js +410 -103
  78. package/dist/mcp.js.map +1 -1
  79. package/dist/ocr.d.ts +51 -0
  80. package/dist/ocr.d.ts.map +1 -1
  81. package/dist/ocr.js +210 -4
  82. package/dist/ocr.js.map +1 -1
  83. package/dist/package-manager.d.ts.map +1 -1
  84. package/dist/package-manager.js +2 -1
  85. package/dist/package-manager.js.map +1 -1
  86. package/dist/preview.d.ts.map +1 -1
  87. package/dist/preview.js +3 -7
  88. package/dist/preview.js.map +1 -1
  89. package/dist/quality-report.d.ts.map +1 -1
  90. package/dist/quality-report.js +1 -1
  91. package/dist/quality-report.js.map +1 -1
  92. package/dist/query.d.ts.map +1 -1
  93. package/dist/query.js +254 -40
  94. package/dist/query.js.map +1 -1
  95. package/dist/ranking.d.ts +56 -6
  96. package/dist/ranking.d.ts.map +1 -1
  97. package/dist/ranking.js +187 -16
  98. package/dist/ranking.js.map +1 -1
  99. package/dist/retrieval-diversity.d.ts +5 -0
  100. package/dist/retrieval-diversity.d.ts.map +1 -1
  101. package/dist/retrieval-diversity.js +4 -2
  102. package/dist/retrieval-diversity.js.map +1 -1
  103. package/dist/search-output.d.ts.map +1 -1
  104. package/dist/search-output.js +2 -0
  105. package/dist/search-output.js.map +1 -1
  106. package/dist/security.js +1 -1
  107. package/dist/security.js.map +1 -1
  108. package/dist/setup-prompt.d.ts +1 -1
  109. package/dist/setup-prompt.d.ts.map +1 -1
  110. package/dist/setup-prompt.js +3 -3
  111. package/dist/setup.js +1 -1
  112. package/dist/setup.js.map +1 -1
  113. package/dist/skill.d.ts +2 -0
  114. package/dist/skill.d.ts.map +1 -1
  115. package/dist/skill.js +122 -14
  116. package/dist/skill.js.map +1 -1
  117. package/dist/source-paths.d.ts +36 -0
  118. package/dist/source-paths.d.ts.map +1 -0
  119. package/dist/source-paths.js +157 -0
  120. package/dist/source-paths.js.map +1 -0
  121. package/dist/source-weights.d.ts +28 -0
  122. package/dist/source-weights.d.ts.map +1 -0
  123. package/dist/source-weights.js +241 -0
  124. package/dist/source-weights.js.map +1 -0
  125. package/dist/storage-maintenance.d.ts +3 -1
  126. package/dist/storage-maintenance.d.ts.map +1 -1
  127. package/dist/storage-maintenance.js +21 -2
  128. package/dist/storage-maintenance.js.map +1 -1
  129. package/dist/storage-usage.d.ts +21 -0
  130. package/dist/storage-usage.d.ts.map +1 -0
  131. package/dist/storage-usage.js +118 -0
  132. package/dist/storage-usage.js.map +1 -0
  133. package/dist/types.d.ts +127 -3
  134. package/dist/types.d.ts.map +1 -1
  135. package/dist/version.d.ts +1 -1
  136. package/dist/version.js +1 -1
  137. package/package.json +3 -1
package/dist/skill.js CHANGED
@@ -1,11 +1,14 @@
1
1
  import { spawnSync } from "node:child_process";
2
- import { existsSync } from "node:fs";
3
- import { cp, lstat, mkdir, readFile, realpath, rm, symlink, writeFile } from "node:fs/promises";
2
+ import { existsSync, lstatSync } from "node:fs";
3
+ import { cp, lstat, mkdir, readFile, readlink, realpath, rm, symlink, writeFile, } from "node:fs/promises";
4
+ import os from "node:os";
4
5
  import path from "node:path";
5
6
  import { fileURLToPath } from "node:url";
6
7
  import { DEFAULT_SKILL_TARGET_DIR, RAGMIR_DIR, RAGMIR_PROJECT_ROOT_ENV } from "./defaults.js";
7
8
  import { ensureRagmirGitignore } from "./gitignore.js";
8
9
  import { knowledgeBaseIdentity } from "./knowledge-bases.js";
10
+ import { inspectMcpRegistrations, mcpRegistrationWarnings } from "./mcp-registrations.js";
11
+ import { RAGMIR_CLIENT_CWD_ENV } from "./mcp-scope.js";
9
12
  import { RGR_RUNNER_FILENAME, RGR_RUNNER_PROBE_ARG, rgrCommand, } from "./package-manager.js";
10
13
  import { VERSION } from "./version.js";
11
14
  const PACKAGE_ROOT = path.dirname(path.dirname(fileURLToPath(import.meta.url)));
@@ -14,6 +17,12 @@ const DEFAULT_MCP_SERVER_NAME = "ragmir";
14
17
  const MCP_SERVER_NAME_PATTERN = /^[A-Za-z0-9_-]+$/u;
15
18
  const MANAGED_SKILL_METADATA_FILENAME = ".ragmir-managed.json";
16
19
  export const SKILL_NAMES = [PRIMARY_SKILL_NAME];
20
+ /** Skills of retired commands (audio, reports, legal dossiers); their instructions now fail. */
21
+ export const RETIRED_SKILL_NAMES = [
22
+ "ragmir-audio-summary",
23
+ "ragmir-legal-dossier",
24
+ "ragmir-markdown-report",
25
+ ];
17
26
  export const MCP_CONFIG_FILENAME = "mcp.json";
18
27
  export const AGENT_SETUP_FILENAME = "agent-setup.md";
19
28
  export const SUPPORTED_AGENT_TARGETS = [
@@ -215,7 +224,7 @@ export async function installAgentSkills(options = {}) {
215
224
  const cwd = path.resolve(options.cwd ?? process.cwd());
216
225
  const scope = options.scope ?? "project";
217
226
  const requestedMode = options.mode ?? "link";
218
- const homeDir = path.resolve(options.homeDir ?? process.env.HOME ?? process.cwd());
227
+ const homeDir = path.resolve(options.homeDir ?? os.homedir());
219
228
  const env = options.env ?? process.env;
220
229
  const agents = options.agents ?? SUPPORTED_AGENT_TARGETS;
221
230
  const installOptions = { cwd, agents };
@@ -235,6 +244,7 @@ export async function installAgentSkills(options = {}) {
235
244
  const destination = AGENT_DESTINATIONS[agent];
236
245
  const targetDir = agentTargetDir(agent, scope, cwd, homeDir, env);
237
246
  await mkdir(targetDir, { recursive: true });
247
+ await removeRetiredSkills(targetDir, false);
238
248
  const { mode, skillPaths } = await exposeAgentSkills(sourceDir, targetDir, requestedMode, options.force ?? false);
239
249
  written.push(...skillPaths.map((skillPath) => displayPath(cwd, skillPath)));
240
250
  installations.push({
@@ -343,6 +353,49 @@ async function copyBundledSkills(targetDir) {
343
353
  recursive: true,
344
354
  force: true,
345
355
  })));
356
+ // The kit directory under .ragmir/ belongs to Ragmir, so retired skills there go with the upgrade.
357
+ const ragmirOwned = targetDir.split(path.sep).some((segment) => segment === RAGMIR_DIR);
358
+ await removeRetiredSkills(targetDir, ragmirOwned);
359
+ }
360
+ /**
361
+ * Remove retired Ragmir skills that Ragmir installed: anything in a Ragmir-owned directory, links
362
+ * into a `.ragmir/skills` kit, and copies carrying Ragmir's managed marker. Edited or independently
363
+ * installed copies stay, and doctor reports them.
364
+ */
365
+ async function removeRetiredSkills(directory, ragmirOwned) {
366
+ const removed = [];
367
+ for (const skillName of RETIRED_SKILL_NAMES) {
368
+ const target = path.join(directory, skillName);
369
+ const stats = await lstat(target).catch(() => null);
370
+ if (!stats) {
371
+ continue;
372
+ }
373
+ const managed = ragmirOwned ||
374
+ (stats.isSymbolicLink() &&
375
+ /[\\/]\.ragmir[\\/]skills[\\/]/u.test(await readlink(target).catch(() => ""))) ||
376
+ (stats.isDirectory() && (await readManagedSkillMetadata(target))?.managedBy === "ragmir");
377
+ if (managed) {
378
+ await rm(target, { recursive: true, force: true });
379
+ removed.push(target);
380
+ }
381
+ }
382
+ return removed;
383
+ }
384
+ /** Retired Ragmir skills still present in the project's kit or agent skill directories. */
385
+ function obsoleteRagmirSkills(projectRoot) {
386
+ const directories = [
387
+ path.join(projectRoot, DEFAULT_SKILL_TARGET_DIR),
388
+ ...SUPPORTED_AGENT_TARGETS.map((agent) => path.join(projectRoot, AGENT_DESTINATIONS[agent].projectDir)),
389
+ ];
390
+ return directories.flatMap((directory) => RETIRED_SKILL_NAMES.filter((skillName) => {
391
+ try {
392
+ lstatSync(path.join(directory, skillName));
393
+ return true;
394
+ }
395
+ catch {
396
+ return false;
397
+ }
398
+ }).map((skillName) => posixRelativePath(projectRoot, path.join(directory, skillName))));
346
399
  }
347
400
  async function exposeAgentSkills(sourceDir, targetDir, requestedMode, force) {
348
401
  if (requestedMode === "copy") {
@@ -464,7 +517,7 @@ function displayPath(cwd, filePath) {
464
517
  function posixRelativePath(cwd, filePath) {
465
518
  return path.relative(cwd, filePath).split(path.sep).join("/");
466
519
  }
467
- export function inspectAgentIntegration(cwd = process.cwd(), homeDir = process.env.HOME ?? process.cwd(), env = process.env) {
520
+ export function inspectAgentIntegration(cwd = process.cwd(), homeDir = os.homedir(), env = process.env) {
468
521
  const projectRoot = path.resolve(cwd);
469
522
  const resolvedHome = path.resolve(homeDir);
470
523
  const runnerPath = path.join(projectRoot, RAGMIR_DIR, RGR_RUNNER_FILENAME);
@@ -485,6 +538,12 @@ export function inspectAgentIntegration(cwd = process.cwd(), homeDir = process.e
485
538
  if (nativeAgents.length === 0) {
486
539
  warnings.push("No native agent skill exposure was detected. Run `rgr install-agent --agents <list>`.");
487
540
  }
541
+ const mcpServers = inspectMcpRegistrations(projectRoot, resolvedHome);
542
+ warnings.push(...mcpRegistrationWarnings(projectRoot, mcpServers));
543
+ const obsoleteSkills = obsoleteRagmirSkills(projectRoot);
544
+ if (obsoleteSkills.length > 0) {
545
+ warnings.push(`Retired Ragmir skills still describe removed commands: ${obsoleteSkills.join(", ")}. Run \`rgr install-agent\` to remove the Ragmir-managed copies, or delete them.`);
546
+ }
488
547
  return {
489
548
  runnerPath,
490
549
  runnerReady: probe.runnerReady,
@@ -493,6 +552,7 @@ export function inspectAgentIntegration(cwd = process.cwd(), homeDir = process.e
493
552
  projectAgents,
494
553
  userAgents,
495
554
  nativeAgents,
555
+ mcpServers,
496
556
  ready: probe.runnerReady && nativeAgents.length > 0,
497
557
  warnings,
498
558
  };
@@ -556,6 +616,8 @@ const PACKAGE_SPEC = ${JSON.stringify(packageSpec)}
556
616
  const INSTALLED_CLI = ${JSON.stringify(installedCliPath)}
557
617
  const PROBE_ARG = ${JSON.stringify(RGR_RUNNER_PROBE_ARG)}
558
618
  const projectRoot = path.resolve(process.env.${RAGMIR_PROJECT_ROOT_ENV} || process.cwd())
619
+ // The MCP server compares this launch directory with the base it serves.
620
+ process.env.${RAGMIR_CLIENT_CWD_ENV} = process.env.${RAGMIR_CLIENT_CWD_ENV} || process.cwd()
559
621
 
560
622
  function isRagmirWorkspaceCli(cliPath) {
561
623
  if (!existsSync(cliPath)) return false
@@ -568,6 +630,38 @@ function isRagmirWorkspaceCli(cliPath) {
568
630
  }
569
631
  }
570
632
 
633
+ // Walk up like Node's module resolution, so a moved or upgraded install never strands the runner.
634
+ function projectPackageCli() {
635
+ let current = projectRoot
636
+ while (true) {
637
+ const candidate = path.join(current, "node_modules", "@jcode.labs", "ragmir", "dist", "cli-entry.js")
638
+ if (isRagmirWorkspaceCli(candidate)) return candidate
639
+ const parent = path.dirname(current)
640
+ if (parent === current) return null
641
+ current = parent
642
+ }
643
+ }
644
+
645
+ // npm's own CLI runs through node directly, so Windows needs no shell to launch npx.cmd.
646
+ function npxCommand(args) {
647
+ const npmRoots = [
648
+ path.join(path.dirname(process.execPath), "node_modules", "npm"),
649
+ path.join(path.dirname(process.execPath), "..", "lib", "node_modules", "npm"),
650
+ ]
651
+ for (const npmRoot of npmRoots) {
652
+ const npxCli = path.join(npmRoot, "bin", "npx-cli.js")
653
+ if (existsSync(npxCli)) {
654
+ return { command: process.execPath, args: [npxCli, ...args], probeArgs: [npxCli, "--version"] }
655
+ }
656
+ }
657
+ return {
658
+ command: process.platform === "win32" ? "npx.cmd" : "npx",
659
+ args,
660
+ probeArgs: ["--version"],
661
+ shell: process.platform === "win32",
662
+ }
663
+ }
664
+
571
665
  function resolveCommand() {
572
666
  const workspaceCli = path.join(projectRoot, "packages", "ragmir-core", "dist", "cli-entry.js")
573
667
  if (isRagmirWorkspaceCli(workspaceCli)) {
@@ -579,6 +673,16 @@ function resolveCommand() {
579
673
  }
580
674
  }
581
675
 
676
+ const packageCli = projectPackageCli()
677
+ if (packageCli) {
678
+ return {
679
+ mode: "installed-package",
680
+ command: process.execPath,
681
+ args: [packageCli],
682
+ requiresDownload: false,
683
+ }
684
+ }
685
+
582
686
  if (isRagmirWorkspaceCli(INSTALLED_CLI)) {
583
687
  return {
584
688
  mode: "installed-package",
@@ -588,20 +692,15 @@ function resolveCommand() {
588
692
  }
589
693
  }
590
694
 
591
- const localBin = path.join(
592
- projectRoot,
593
- "node_modules",
594
- ".bin",
595
- process.platform === "win32" ? "rgr.cmd" : "rgr",
596
- )
597
- if (existsSync(localBin)) {
695
+ // Windows shims (.cmd) cannot be spawned without a shell, so only POSIX uses the bin link.
696
+ const localBin = path.join(projectRoot, "node_modules", ".bin", "rgr")
697
+ if (process.platform !== "win32" && existsSync(localBin)) {
598
698
  return { mode: "local-bin", command: localBin, args: [], requiresDownload: false }
599
699
  }
600
700
 
601
701
  return {
602
702
  mode: "npm-cache",
603
- command: process.platform === "win32" ? "npx.cmd" : "npx",
604
- args: ["--yes", "--package", PACKAGE_SPEC, "rgr"],
703
+ ...npxCommand(["--yes", "--prefer-offline", "--package", PACKAGE_SPEC, "rgr"]),
605
704
  requiresDownload: true,
606
705
  }
607
706
  }
@@ -626,10 +725,12 @@ const selected = resolveCommand()
626
725
  const commandArgs = process.argv.slice(2)
627
726
 
628
727
  if (commandArgs[0] === PROBE_ARG) {
629
- const probeArgs = selected.mode === "npm-cache" ? ["--version"] : [...selected.args, "--version"]
728
+ // Probing the npx fallback checks npx itself and never downloads the package.
729
+ const probeArgs = selected.probeArgs ?? [...selected.args, "--version"]
630
730
  const probe = spawnSync(selected.command, probeArgs, {
631
731
  cwd: projectRoot,
632
732
  stdio: "ignore",
733
+ shell: selected.shell === true,
633
734
  env: { ...process.env, ${RAGMIR_PROJECT_ROOT_ENV}: projectRoot },
634
735
  })
635
736
  const available = probe.status === 0
@@ -648,9 +749,16 @@ if (commandArgs[0] === PROBE_ARG) {
648
749
  process.exitCode = 1
649
750
  })
650
751
  } else {
752
+ if (selected.mode === "npm-cache") {
753
+ // stderr keeps MCP stdio intact while telling the operator that code may be fetched.
754
+ console.error(
755
+ \`Ragmir is not installed in \${projectRoot}; running \${PACKAGE_SPEC} through npx, which may download it. Install it with the project's package manager to run offline.\`,
756
+ )
757
+ }
651
758
  const result = spawnSync(selected.command, [...selected.args, ...commandArgs], {
652
759
  cwd: projectRoot,
653
760
  stdio: "inherit",
761
+ shell: selected.shell === true,
654
762
  env: { ...process.env, ${RAGMIR_PROJECT_ROOT_ENV}: projectRoot },
655
763
  })
656
764
  if (result.error) {
package/dist/skill.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill.js","sourceRoot":"","sources":["../src/skill.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Source paths are stored, filtered, and cited in one canonical form on every platform: forward
3
+ * slashes and Unicode NFC. File systems disagree on both. Windows returns backslashes, macOS can
4
+ * store accented names decomposed (NFD) when they come from older volumes, archives, or sync
5
+ * clients, and Linux and Windows compare names byte for byte, so an NFC rule never matches an NFD
6
+ * name there. Disk operations keep the real on-disk name; identity uses the canonical form.
7
+ */
8
+ export declare function canonicalSourcePath(value: string): string;
9
+ /** Project-relative canonical path, for example `docs/Études/plan.md`. */
10
+ export declare function canonicalRelativePath(projectRoot: string, absolutePath: string): string;
11
+ /**
12
+ * Normalize a path typed by a person or an agent: backslashes become forward slashes on every
13
+ * platform, a leading `./` and trailing slashes are dropped, and the result is NFC.
14
+ */
15
+ export declare function canonicalUserPath(value: string): string;
16
+ /** Both Unicode forms of a path, so filters also match rows indexed before canonical paths. */
17
+ export declare function unicodePathVariants(value: string): string[];
18
+ /** Glob patterns in both Unicode forms; glob syntax is ASCII, so normalization keeps it intact. */
19
+ export declare function unicodeGlobVariants(patterns: readonly string[]): string[];
20
+ /**
21
+ * Whether names in `directory` compare case-insensitively, as on default macOS (APFS) and Windows
22
+ * (NTFS) volumes. Path rules then match the way the operating system and Git resolve names there.
23
+ * The probe writes and removes one empty temporary file only when no existing entry can answer.
24
+ */
25
+ export declare function isCaseInsensitiveFileSystem(directory: string): boolean;
26
+ /** Key for set membership: canonical form, case-folded when the volume ignores case. */
27
+ export declare function sourcePathKey(canonicalPath: string, caseInsensitive: boolean): string;
28
+ /**
29
+ * Resolve the on-disk spelling of a path whose segments may differ from the stored names only by
30
+ * Unicode normalization (or by case on a case-insensitive volume). Returns the path unchanged when
31
+ * it already exists, the matching on-disk path otherwise, or null when no entry matches.
32
+ */
33
+ export declare function resolveExistingPath(absolutePath: string, caseInsensitive?: boolean): string | null;
34
+ /** Deterministic, locale-independent ordering by Unicode scalar values. */
35
+ export declare function compareCodePoints(left: string, right: string): number;
36
+ //# sourceMappingURL=source-paths.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-paths.d.ts","sourceRoot":"","sources":["../src/source-paths.ts"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,0EAA0E;AAC1E,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM,CAEvF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOvD;AAED,+FAA+F;AAC/F,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAE3D;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,EAAE,CAEzE;AAID;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAStE;AA4CD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,MAAM,CAErF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,MAAM,EAAE,eAAe,UAAQ,GAAG,MAAM,GAAG,IAAI,CA4BhG;AAOD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAgBrE"}
@@ -0,0 +1,157 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { existsSync, readdirSync, rmSync, statSync, writeFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ /**
5
+ * Source paths are stored, filtered, and cited in one canonical form on every platform: forward
6
+ * slashes and Unicode NFC. File systems disagree on both. Windows returns backslashes, macOS can
7
+ * store accented names decomposed (NFD) when they come from older volumes, archives, or sync
8
+ * clients, and Linux and Windows compare names byte for byte, so an NFC rule never matches an NFD
9
+ * name there. Disk operations keep the real on-disk name; identity uses the canonical form.
10
+ */
11
+ export function canonicalSourcePath(value) {
12
+ return value.split(path.sep).join("/").normalize("NFC");
13
+ }
14
+ /** Project-relative canonical path, for example `docs/Études/plan.md`. */
15
+ export function canonicalRelativePath(projectRoot, absolutePath) {
16
+ return canonicalSourcePath(path.relative(projectRoot, absolutePath));
17
+ }
18
+ /**
19
+ * Normalize a path typed by a person or an agent: backslashes become forward slashes on every
20
+ * platform, a leading `./` and trailing slashes are dropped, and the result is NFC.
21
+ */
22
+ export function canonicalUserPath(value) {
23
+ return value
24
+ .trim()
25
+ .replaceAll("\\", "/")
26
+ .replace(/^(?:\.\/)+/u, "")
27
+ .replace(/\/+$/u, "")
28
+ .normalize("NFC");
29
+ }
30
+ /** Both Unicode forms of a path, so filters also match rows indexed before canonical paths. */
31
+ export function unicodePathVariants(value) {
32
+ return [...new Set([value.normalize("NFC"), value.normalize("NFD"), value])];
33
+ }
34
+ /** Glob patterns in both Unicode forms; glob syntax is ASCII, so normalization keeps it intact. */
35
+ export function unicodeGlobVariants(patterns) {
36
+ return [...new Set(patterns.flatMap((pattern) => unicodePathVariants(pattern)))];
37
+ }
38
+ const caseInsensitiveCache = new Map();
39
+ /**
40
+ * Whether names in `directory` compare case-insensitively, as on default macOS (APFS) and Windows
41
+ * (NTFS) volumes. Path rules then match the way the operating system and Git resolve names there.
42
+ * The probe writes and removes one empty temporary file only when no existing entry can answer.
43
+ */
44
+ export function isCaseInsensitiveFileSystem(directory) {
45
+ const resolved = path.resolve(directory);
46
+ const cached = caseInsensitiveCache.get(resolved);
47
+ if (cached !== undefined) {
48
+ return cached;
49
+ }
50
+ const result = probeCaseInsensitivity(resolved);
51
+ caseInsensitiveCache.set(resolved, result);
52
+ return result;
53
+ }
54
+ function probeCaseInsensitivity(directory) {
55
+ const fallback = process.platform === "darwin" || process.platform === "win32";
56
+ try {
57
+ if (!statSync(directory).isDirectory()) {
58
+ return fallback;
59
+ }
60
+ const entry = readdirSync(directory).find((name) => swapCase(name) !== name);
61
+ if (entry !== undefined) {
62
+ return sameEntry(path.join(directory, entry), path.join(directory, swapCase(entry)));
63
+ }
64
+ const probeName = `.ragmir-case-${randomUUID()}.tmp`;
65
+ const probePath = path.join(directory, probeName);
66
+ try {
67
+ writeFileSync(probePath, "", { flag: "wx" });
68
+ return existsSync(path.join(directory, probeName.toUpperCase()));
69
+ }
70
+ finally {
71
+ rmSync(probePath, { force: true });
72
+ }
73
+ }
74
+ catch {
75
+ return fallback;
76
+ }
77
+ }
78
+ function sameEntry(left, right) {
79
+ try {
80
+ const leftStats = statSync(left);
81
+ const rightStats = statSync(right);
82
+ return leftStats.ino === rightStats.ino && leftStats.dev === rightStats.dev;
83
+ }
84
+ catch {
85
+ return false;
86
+ }
87
+ }
88
+ function swapCase(value) {
89
+ let swapped = "";
90
+ for (const character of value) {
91
+ const lower = character.toLowerCase();
92
+ swapped += lower === character ? character.toUpperCase() : lower;
93
+ }
94
+ return swapped;
95
+ }
96
+ /** Key for set membership: canonical form, case-folded when the volume ignores case. */
97
+ export function sourcePathKey(canonicalPath, caseInsensitive) {
98
+ return caseInsensitive ? canonicalPath.toLowerCase() : canonicalPath;
99
+ }
100
+ /**
101
+ * Resolve the on-disk spelling of a path whose segments may differ from the stored names only by
102
+ * Unicode normalization (or by case on a case-insensitive volume). Returns the path unchanged when
103
+ * it already exists, the matching on-disk path otherwise, or null when no entry matches.
104
+ */
105
+ export function resolveExistingPath(absolutePath, caseInsensitive = false) {
106
+ if (existsSync(absolutePath)) {
107
+ return absolutePath;
108
+ }
109
+ const resolved = path.resolve(absolutePath);
110
+ const { root } = path.parse(resolved);
111
+ const segments = resolved.slice(root.length).split(path.sep).filter(Boolean);
112
+ let current = root;
113
+ for (const segment of segments) {
114
+ const direct = path.join(current, segment);
115
+ if (existsSync(direct)) {
116
+ current = direct;
117
+ continue;
118
+ }
119
+ let entries;
120
+ try {
121
+ entries = readdirSync(current);
122
+ }
123
+ catch {
124
+ return null;
125
+ }
126
+ const wanted = comparableSegment(segment, caseInsensitive);
127
+ const match = entries.find((entry) => comparableSegment(entry, caseInsensitive) === wanted);
128
+ if (match === undefined) {
129
+ return null;
130
+ }
131
+ current = path.join(current, match);
132
+ }
133
+ return current;
134
+ }
135
+ function comparableSegment(segment, caseInsensitive) {
136
+ const normalized = segment.normalize("NFC");
137
+ return caseInsensitive ? normalized.toLowerCase() : normalized;
138
+ }
139
+ /** Deterministic, locale-independent ordering by Unicode scalar values. */
140
+ export function compareCodePoints(left, right) {
141
+ let leftIndex = 0;
142
+ let rightIndex = 0;
143
+ while (leftIndex < left.length && rightIndex < right.length) {
144
+ const leftCodePoint = left.codePointAt(leftIndex);
145
+ const rightCodePoint = right.codePointAt(rightIndex);
146
+ if (leftCodePoint === undefined || rightCodePoint === undefined) {
147
+ break;
148
+ }
149
+ if (leftCodePoint !== rightCodePoint) {
150
+ return leftCodePoint - rightCodePoint;
151
+ }
152
+ leftIndex += leftCodePoint > 0xffff ? 2 : 1;
153
+ rightIndex += rightCodePoint > 0xffff ? 2 : 1;
154
+ }
155
+ return left.length - right.length;
156
+ }
157
+ //# sourceMappingURL=source-paths.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-paths.js","sourceRoot":"","sources":["../src/source-paths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Config } from "./types.js";
2
+ /**
3
+ * Ranking priors that slightly demote files agents rarely need as primary evidence: tests restate
4
+ * the code they cover and snapshots repeat generated output. They only reorder close candidates;
5
+ * `pathPriors: false` turns them off and `sourceWeights` can override any pattern. Agent
6
+ * instruction files stay neutral: in many projects they hold the rules a question is about.
7
+ */
8
+ export declare const DEFAULT_PATH_PRIORS: Readonly<Record<string, number>>;
9
+ /**
10
+ * Ranking multiplier for a source path: the product of every matching path prior and configured
11
+ * source weight. A configured pattern that repeats a prior replaces it.
12
+ */
13
+ export declare function sourceWeightOf(config: Pick<Config, "pathPriors" | "sourceWeights">): (relativePath: string) => number;
14
+ /**
15
+ * Key shared by the translations of one document: `messages/fr.json` and `messages/en.json`, or
16
+ * `docs/fr/guide.md` and `docs/en/guide.md`, collapse to one key so they take one result slot.
17
+ */
18
+ export declare function localeDocumentKey(relativePath: string): string;
19
+ /**
20
+ * Boost code passages that define what the question names: "how are permissions checked" should
21
+ * reach the class that declares `PermissionService` before tests and docs that only mention it.
22
+ * Returns a multiplier of 1 (no definition matches) up to 1.2.
23
+ */
24
+ export declare function definitionBoostOf(queryTokens: readonly string[]): (row: {
25
+ relativePath: string;
26
+ text: string;
27
+ }) => number;
28
+ //# sourceMappingURL=source-weights.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"source-weights.d.ts","sourceRoot":"","sources":["../src/source-weights.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAUhE,CAAA;AASD;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,eAAe,CAAC,GACnD,CAAC,YAAY,EAAE,MAAM,KAAK,MAAM,CA2BlC;AAiDD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAW9D;AAwFD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,SAAS,MAAM,EAAE,GAC7B,CAAC,GAAG,EAAE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,KAAK,MAAM,CAiCzD"}