@cesarandreslopez/occ 0.10.0 → 0.12.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 (154) hide show
  1. package/README.md +31 -8
  2. package/dist/src/cli.d.ts +16 -0
  3. package/dist/src/cli.js +46 -4
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/code/build.d.ts +22 -0
  6. package/dist/src/code/build.js +47 -13
  7. package/dist/src/code/build.js.map +1 -1
  8. package/dist/src/code/cache.js +30 -1
  9. package/dist/src/code/cache.js.map +1 -1
  10. package/dist/src/code/check.js +46 -6
  11. package/dist/src/code/check.js.map +1 -1
  12. package/dist/src/code/command.js +125 -69
  13. package/dist/src/code/command.js.map +1 -1
  14. package/dist/src/code/context.d.ts +54 -0
  15. package/dist/src/code/context.js +67 -0
  16. package/dist/src/code/context.js.map +1 -0
  17. package/dist/src/code/diff.d.ts +12 -2
  18. package/dist/src/code/diff.js +15 -3
  19. package/dist/src/code/diff.js.map +1 -1
  20. package/dist/src/code/discover.d.ts +2 -2
  21. package/dist/src/code/discover.js +8 -10
  22. package/dist/src/code/discover.js.map +1 -1
  23. package/dist/src/code/focus.js +34 -26
  24. package/dist/src/code/focus.js.map +1 -1
  25. package/dist/src/code/incremental.js +1 -1
  26. package/dist/src/code/incremental.js.map +1 -1
  27. package/dist/src/code/index-io.js +10 -2
  28. package/dist/src/code/index-io.js.map +1 -1
  29. package/dist/src/code/isolated-chunk-runner.js +17 -2
  30. package/dist/src/code/isolated-chunk-runner.js.map +1 -1
  31. package/dist/src/code/isolated-runner.js +17 -3
  32. package/dist/src/code/isolated-runner.js.map +1 -1
  33. package/dist/src/code/isolated.js +32 -6
  34. package/dist/src/code/isolated.js.map +1 -1
  35. package/dist/src/code/languages.js +23 -3
  36. package/dist/src/code/languages.js.map +1 -1
  37. package/dist/src/code/map.d.ts +47 -0
  38. package/dist/src/code/map.js +155 -12
  39. package/dist/src/code/map.js.map +1 -1
  40. package/dist/src/code/output.d.ts +3 -1
  41. package/dist/src/code/output.js +11 -0
  42. package/dist/src/code/output.js.map +1 -1
  43. package/dist/src/code/parsers.js +115 -36
  44. package/dist/src/code/parsers.js.map +1 -1
  45. package/dist/src/code/preview.js +24 -22
  46. package/dist/src/code/preview.js.map +1 -1
  47. package/dist/src/code/query.js +0 -0
  48. package/dist/src/code/query.js.map +1 -1
  49. package/dist/src/code/search.d.ts +39 -0
  50. package/dist/src/code/search.js +154 -0
  51. package/dist/src/code/search.js.map +1 -0
  52. package/dist/src/code/session.d.ts +9 -3
  53. package/dist/src/code/session.js +16 -4
  54. package/dist/src/code/session.js.map +1 -1
  55. package/dist/src/code/slim.d.ts +2 -0
  56. package/dist/src/code/slim.js +16 -1
  57. package/dist/src/code/slim.js.map +1 -1
  58. package/dist/src/code/store.d.ts +23 -0
  59. package/dist/src/code/store.js +61 -6
  60. package/dist/src/code/store.js.map +1 -1
  61. package/dist/src/code/tree-sitter.d.ts +1 -0
  62. package/dist/src/code/tree-sitter.js +11 -10
  63. package/dist/src/code/tree-sitter.js.map +1 -1
  64. package/dist/src/code/tree.d.ts +7 -0
  65. package/dist/src/code/tree.js +364 -0
  66. package/dist/src/code/tree.js.map +1 -0
  67. package/dist/src/code/types.d.ts +131 -0
  68. package/dist/src/code/types.js +47 -0
  69. package/dist/src/code/types.js.map +1 -1
  70. package/dist/src/doc/batch.d.ts +2 -0
  71. package/dist/src/doc/batch.js +3 -1
  72. package/dist/src/doc/batch.js.map +1 -1
  73. package/dist/src/doc/discover.js +2 -2
  74. package/dist/src/doc/discover.js.map +1 -1
  75. package/dist/src/doc/inspect-odt.js +3 -1
  76. package/dist/src/doc/inspect-odt.js.map +1 -1
  77. package/dist/src/doc/inspect-pdf.d.ts +6 -0
  78. package/dist/src/doc/inspect-pdf.js +11 -1
  79. package/dist/src/doc/inspect-pdf.js.map +1 -1
  80. package/dist/src/doc/inspect.js +2 -2
  81. package/dist/src/doc/inspect.js.map +1 -1
  82. package/dist/src/doc/types.d.ts +1 -0
  83. package/dist/src/doc/types.js +7 -0
  84. package/dist/src/doc/types.js.map +1 -1
  85. package/dist/src/git/api.d.ts +7 -1
  86. package/dist/src/git/api.js +32 -10
  87. package/dist/src/git/api.js.map +1 -1
  88. package/dist/src/git/client.js +5 -1
  89. package/dist/src/git/client.js.map +1 -1
  90. package/dist/src/git/command.js +22 -2
  91. package/dist/src/git/command.js.map +1 -1
  92. package/dist/src/git/output.d.ts +2 -1
  93. package/dist/src/git/output.js +7 -1
  94. package/dist/src/git/output.js.map +1 -1
  95. package/dist/src/git/parse.d.ts +2 -1
  96. package/dist/src/git/parse.js +222 -2
  97. package/dist/src/git/parse.js.map +1 -1
  98. package/dist/src/git/types.d.ts +49 -5
  99. package/dist/src/git/types.js +21 -0
  100. package/dist/src/git/types.js.map +1 -1
  101. package/dist/src/health.d.ts +8 -0
  102. package/dist/src/health.js +15 -0
  103. package/dist/src/health.js.map +1 -1
  104. package/dist/src/index.d.ts +23 -11
  105. package/dist/src/index.js +14 -5
  106. package/dist/src/index.js.map +1 -1
  107. package/dist/src/inspect/xlsx-cells.js +4 -2
  108. package/dist/src/inspect/xlsx-cells.js.map +1 -1
  109. package/dist/src/markdown/convert.d.ts +9 -0
  110. package/dist/src/markdown/convert.js +23 -1
  111. package/dist/src/markdown/convert.js.map +1 -1
  112. package/dist/src/output/tabular.js +33 -16
  113. package/dist/src/output/tabular.js.map +1 -1
  114. package/dist/src/parsers/odf.js +4 -2
  115. package/dist/src/parsers/odf.js.map +1 -1
  116. package/dist/src/scc.d.ts +3 -0
  117. package/dist/src/scc.js +2 -0
  118. package/dist/src/scc.js.map +1 -1
  119. package/dist/src/skills/command.d.ts +6 -0
  120. package/dist/src/skills/command.js +18 -3
  121. package/dist/src/skills/command.js.map +1 -1
  122. package/dist/src/slide/inspect-odp.js +3 -2
  123. package/dist/src/slide/inspect-odp.js.map +1 -1
  124. package/dist/src/slide/inspect-pptx.js +4 -3
  125. package/dist/src/slide/inspect-pptx.js.map +1 -1
  126. package/dist/src/stats.js +3 -1
  127. package/dist/src/stats.js.map +1 -1
  128. package/dist/src/structure/extract.js +16 -3
  129. package/dist/src/structure/extract.js.map +1 -1
  130. package/dist/src/utils.d.ts +7 -0
  131. package/dist/src/utils.js +19 -0
  132. package/dist/src/utils.js.map +1 -1
  133. package/dist/src/walker.js +15 -3
  134. package/dist/src/walker.js.map +1 -1
  135. package/dist/src/workspace/analyze.d.ts +3 -0
  136. package/dist/src/workspace/analyze.js +26 -15
  137. package/dist/src/workspace/analyze.js.map +1 -1
  138. package/dist/src/workspace/bundle.js +11 -3
  139. package/dist/src/workspace/bundle.js.map +1 -1
  140. package/dist/src/workspace/command.d.ts +6 -0
  141. package/dist/src/workspace/command.js +73 -44
  142. package/dist/src/workspace/command.js.map +1 -1
  143. package/dist/src/workspace/describe.js +22 -13
  144. package/dist/src/workspace/describe.js.map +1 -1
  145. package/dist/src/workspace/documents.d.ts +3 -0
  146. package/dist/src/workspace/documents.js +25 -14
  147. package/dist/src/workspace/documents.js.map +1 -1
  148. package/dist/src/workspace/prepare.js +3 -1
  149. package/dist/src/workspace/prepare.js.map +1 -1
  150. package/dist/src/workspace/types.d.ts +4 -0
  151. package/package.json +12 -11
  152. package/skills/occ/SKILL.md +27 -24
  153. package/skills/occ/reference/code.md +62 -1
  154. package/skills/occ/reference/git.md +17 -1
@@ -4,7 +4,9 @@
4
4
  */
5
5
  import { join } from 'node:path';
6
6
  import { tmpdir } from 'node:os';
7
+ import { rm } from 'node:fs/promises';
7
8
  import { chunkFromIndex, chunkFromIndexCooperative, chunkFromIndexStreaming } from './chunk.js';
9
+ import { CodeIndexBudgetExceededError } from './build.js';
8
10
  import { writeNdjsonFile } from './index-io.js';
9
11
  import { openCodeIndexStore } from './store.js';
10
12
  import { createTokenizer } from '../tokens.js';
@@ -33,6 +35,7 @@ process.on('message', async (msg) => {
33
35
  if (msg.type !== 'start')
34
36
  return;
35
37
  const store = openCodeIndexStore(msg.options.store);
38
+ let resultPath;
36
39
  try {
37
40
  abortController = new AbortController();
38
41
  const signal = abortController.signal;
@@ -75,17 +78,29 @@ process.on('message', async (msg) => {
75
78
  scope: 'code',
76
79
  },
77
80
  });
78
- const resultPath = join(tmpdir(), `occ-code-chunks-${process.pid}-${Date.now()}.ndjson`);
81
+ resultPath = join(tmpdir(), `occ-code-chunks-${process.pid}-${Date.now()}.ndjson`);
79
82
  await writeNdjsonFile(resultPath, chunks, signal);
80
83
  send({ type: 'complete', resultPath });
81
84
  }
82
85
  catch (err) {
83
86
  const error = err instanceof Error ? err : new Error(String(err));
87
+ // Remove any partially written artifact so an aborted/failed chunk run leaves
88
+ // nothing behind for the parent to clean.
89
+ if (resultPath) {
90
+ await rm(resultPath, { force: true }).catch(() => undefined);
91
+ }
84
92
  if (error.name === 'AbortError') {
85
93
  send({ type: 'aborted' });
86
94
  }
87
95
  else {
88
- send({ type: 'error', message: error.message, name: error.name });
96
+ const code = error.code;
97
+ send({
98
+ type: 'error',
99
+ message: error.message,
100
+ name: error.name,
101
+ code: typeof code === 'string' ? code : undefined,
102
+ budget: error instanceof CodeIndexBudgetExceededError ? error.budget : undefined,
103
+ });
89
104
  }
90
105
  }
91
106
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-chunk-runner.js","sourceRoot":"","sources":["../../../src/code/isolated-chunk-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated-chunk-runner.js","sourceRoot":"","sources":["../../../src/code/isolated-chunk-runner.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { join } from 'node:path';
2
2
  import { tmpdir } from 'node:os';
3
- import { buildCodebaseIndex } from './build.js';
3
+ import { rm } from 'node:fs/promises';
4
+ import { buildCodebaseIndex, CodeIndexBudgetExceededError } from './build.js';
4
5
  import { writeSectionedCodeIndex } from './index-io.js';
5
6
  import { slimifyIndex } from './slim.js';
6
7
  function send(msg) {
@@ -14,23 +15,36 @@ process.on('message', async (msg) => {
14
15
  }
15
16
  if (msg.type !== 'start')
16
17
  return;
18
+ let resultPath;
17
19
  try {
18
20
  abortController = new AbortController();
19
21
  const index = await buildCodebaseIndex(msg.options, (event) => {
20
22
  send({ type: 'progress', event });
21
23
  }, abortController.signal);
22
24
  const exportIndex = msg.slim ? slimifyIndex(index) : index;
23
- const resultPath = join(tmpdir(), `occ-code-index-${process.pid}-${Date.now()}`);
25
+ resultPath = join(tmpdir(), `occ-code-index-${process.pid}-${Date.now()}`);
24
26
  await writeSectionedCodeIndex(resultPath, exportIndex, {}, abortController.signal);
25
27
  send({ type: 'complete', resultPath });
26
28
  }
27
29
  catch (err) {
28
30
  const error = err instanceof Error ? err : new Error(String(err));
31
+ // Remove any partially written artifact so an aborted/failed build leaves
32
+ // nothing behind for the parent to clean.
33
+ if (resultPath) {
34
+ await rm(resultPath, { recursive: true, force: true }).catch(() => undefined);
35
+ }
29
36
  if (error.name === 'AbortError') {
30
37
  send({ type: 'aborted' });
31
38
  }
32
39
  else {
33
- send({ type: 'error', message: error.message, name: error.name });
40
+ const code = error.code;
41
+ send({
42
+ type: 'error',
43
+ message: error.message,
44
+ name: error.name,
45
+ code: typeof code === 'string' ? code : undefined,
46
+ budget: error instanceof CodeIndexBudgetExceededError ? error.budget : undefined,
47
+ });
34
48
  }
35
49
  }
36
50
  process.disconnect?.();
@@ -1 +1 @@
1
- {"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../../src/code/isolated-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAA6B,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAazC,SAAS,IAAI,CAAC,GAA6C;IACzD,OAAO,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC;AACtB,CAAC;AAED,IAAI,eAA4C,CAAC;AAEjD,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,GAAgC,EAAE,EAAE;IAC/D,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACzB,eAAe,EAAE,KAAK,EAAE,CAAC;QACzB,OAAO;IACT,CAAC;IACD,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO;IAEjC,IAAI,CAAC;QACH,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,MAAM,kBAAkB,CACpC,GAAG,CAAC,OAAO,EACX,CAAC,KAAoB,EAAE,EAAE;YACvB,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACpC,CAAC,EACD,eAAe,CAAC,MAAM,CACvB,CAAC;QACF,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC3D,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,EAAE,kBAAkB,OAAO,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjF,MAAM,uBAAuB,CAAC,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;QACnF,IAAI,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAClE,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,IAAI,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AACzB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"isolated-runner.js","sourceRoot":"","sources":["../../../src/code/isolated-runner.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { rm } from 'node:fs/promises';
4
4
  import path from 'node:path';
5
5
  import { fileURLToPath } from 'node:url';
6
6
  import { readNdjsonFile, readSectionedCodeIndex } from './index-io.js';
7
+ import { CodeIndexBudgetExceededError } from './build.js';
7
8
  import { OccAbortError } from '../errors.js';
8
9
  import { abortIfNeeded, isCooperative, sanitizeForkExecArgv } from '../utils.js';
9
10
  function resolveRunnerPath() {
@@ -27,6 +28,21 @@ function serializableCooperative(option) {
27
28
  return true;
28
29
  return { yieldEveryMs: option.yieldEveryMs };
29
30
  }
31
+ /**
32
+ * Rebuild a typed error from the fields the runner transmits so callers keep the
33
+ * same `instanceof`/`.code`/`.budget` surface they get from the in-process build.
34
+ */
35
+ function rehydrateRunnerError(msg, fallbackMessage) {
36
+ if (msg.code === 'OCC_CODE_INDEX_BUDGET_EXCEEDED' && msg.budget) {
37
+ return new CodeIndexBudgetExceededError(msg.budget);
38
+ }
39
+ const error = new Error(msg.message ?? fallbackMessage);
40
+ if (msg.name)
41
+ error.name = msg.name;
42
+ if (msg.code)
43
+ error.code = msg.code;
44
+ return error;
45
+ }
30
46
  export async function buildCodebaseIndexIsolated(options, onProgress) {
31
47
  abortIfNeeded(options.signal);
32
48
  const runnerPath = resolveRunnerPath();
@@ -71,10 +87,10 @@ export async function buildCodebaseIndexIsolated(options, onProgress) {
71
87
  }
72
88
  else if (msg.type === 'complete' && msg.resultPath) {
73
89
  settled = true;
90
+ const resultPath = msg.resultPath;
74
91
  void (async () => {
75
92
  try {
76
- const { index } = await readSectionedCodeIndex(msg.resultPath, signal);
77
- await rm(msg.resultPath, { recursive: true, force: true }).catch(() => undefined);
93
+ const { index } = await readSectionedCodeIndex(resultPath, signal);
78
94
  cleanup();
79
95
  resolve(index);
80
96
  }
@@ -82,12 +98,17 @@ export async function buildCodebaseIndexIsolated(options, onProgress) {
82
98
  cleanup();
83
99
  reject(err instanceof Error ? err : new Error(String(err)));
84
100
  }
101
+ finally {
102
+ // Always remove the artifact once its path is known, even when the
103
+ // read fails or is interrupted by an aborting signal.
104
+ await rm(resultPath, { recursive: true, force: true }).catch(() => undefined);
105
+ }
85
106
  })();
86
107
  }
87
108
  else if (msg.type === 'error') {
88
109
  settled = true;
89
110
  cleanup();
90
- reject(new Error(msg.message ?? 'Isolated code index build failed'));
111
+ reject(rehydrateRunnerError(msg, 'Isolated code index build failed'));
91
112
  }
92
113
  });
93
114
  child.on('error', err => {
@@ -157,10 +178,10 @@ export async function chunkFromStoreIsolated(options, onProgress) {
157
178
  }
158
179
  else if (msg.type === 'complete' && msg.resultPath) {
159
180
  settled = true;
181
+ const resultPath = msg.resultPath;
160
182
  void (async () => {
161
183
  try {
162
- const chunks = await readNdjsonFile(msg.resultPath, signal);
163
- await rm(msg.resultPath, { force: true }).catch(() => undefined);
184
+ const chunks = await readNdjsonFile(resultPath, signal);
164
185
  cleanup();
165
186
  resolve(chunks);
166
187
  }
@@ -168,12 +189,17 @@ export async function chunkFromStoreIsolated(options, onProgress) {
168
189
  cleanup();
169
190
  reject(err instanceof Error ? err : new Error(String(err)));
170
191
  }
192
+ finally {
193
+ // Always remove the artifact once its path is known, even when the
194
+ // read fails or is interrupted by an aborting signal.
195
+ await rm(resultPath, { force: true }).catch(() => undefined);
196
+ }
171
197
  })();
172
198
  }
173
199
  else if (msg.type === 'error') {
174
200
  settled = true;
175
201
  cleanup();
176
- reject(new Error(msg.message ?? 'Isolated code chunking failed'));
202
+ reject(rehydrateRunnerError(msg, 'Isolated code chunking failed'));
177
203
  }
178
204
  });
179
205
  child.on('error', err => {
@@ -1 +1 @@
1
- {"version":3,"file":"isolated.js","sourceRoot":"","sources":["../../../src/code/isolated.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"isolated.js","sourceRoot":"","sources":["../../../src/code/isolated.ts"],"names":[],"mappings":"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"}
@@ -208,9 +208,27 @@ export function isAssetSpecifier(specifier) {
208
208
  const extension = path.extname(stripImportSuffix(specifier)).toLowerCase().replace('.', '');
209
209
  return extension.length > 0 && ASSET_EXTENSIONS.has(extension);
210
210
  }
211
+ // NodeNext/ESM TypeScript specifiers name the emitted file (`./mod.js`), but
212
+ // the source on disk is `./mod.ts`/`./mod.tsx`. Remap so local imports in such
213
+ // projects resolve to their sources instead of dangling as unresolved edges.
214
+ // The literal candidate is still tried first, so a real .js file wins.
215
+ const JS_TO_TS_EXTENSION_REMAP = {
216
+ '.js': ['.ts', '.tsx'],
217
+ '.jsx': ['.tsx'],
218
+ '.mjs': ['.ts'],
219
+ '.cjs': ['.ts'],
220
+ };
211
221
  function resolveAsCodePath(candidateBase) {
212
- const candidates = new Set([
213
- candidateBase,
222
+ const candidates = new Set([candidateBase]);
223
+ const extension = path.extname(candidateBase).toLowerCase();
224
+ const remappedExtensions = JS_TO_TS_EXTENSION_REMAP[extension];
225
+ if (remappedExtensions) {
226
+ const stem = candidateBase.slice(0, -extension.length);
227
+ for (const remapped of remappedExtensions) {
228
+ candidates.add(`${stem}${remapped}`);
229
+ }
230
+ }
231
+ for (const candidate of [
214
232
  `${candidateBase}.ts`,
215
233
  `${candidateBase}.tsx`,
216
234
  `${candidateBase}.vue`,
@@ -234,7 +252,9 @@ function resolveAsCodePath(candidateBase) {
234
252
  path.join(candidateBase, 'index.js'),
235
253
  path.join(candidateBase, 'index.jsx'),
236
254
  path.join(candidateBase, 'index.py'),
237
- ]);
255
+ ]) {
256
+ candidates.add(candidate);
257
+ }
238
258
  for (const candidate of candidates) {
239
259
  const spec = getLanguageSpec(candidate);
240
260
  if (spec && existsSync(candidate))
@@ -1 +1 @@
1
- {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/code/languages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"languages.js","sourceRoot":"","sources":["../../../src/code/languages.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;AAGjG,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC;IACjD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;IACnB,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACtC,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IACnC,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;CACnC,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC/B,MAAM,EAAE,gBAAgB;IACxB,YAAY,EAAE,sBAAsB;IACpC,UAAU,EAAE,0BAA0B,CAAC,QAAQ,EAAE;CAClD,CAAC,CAAC;AAGH,MAAM,iBAAiB,GAAG,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,CAAC;AACnE,MAAM,qBAAqB,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;AACpG,MAAM,kBAAkB,GAAG,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,uBAAuB,CAAC,CAAC;AAE9F,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C;QACE,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;QACvC,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAClG;IACD;QACE,IAAI,EAAE,YAAY;QAClB,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;QACzB,MAAM,EAAE,YAAY;QACpB,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAClG;IACD;QACE,IAAI,EAAE,KAAK;QACX,UAAU,EAAE,CAAC,KAAK,CAAC;QACnB,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAClG;IACD;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,QAAQ;QAChB,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;QACjG,UAAU,EAAE;YACV,OAAO,EAAE,QAAQ;YACjB,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;YAC1C,cAAc,EAAE,CAAC,kBAAkB,CAAC;YACpC,aAAa,EAAE,CAAC,MAAM,CAAC;SACxB;KACF;IACD;QACE,IAAI,EAAE,IAAI;QACV,UAAU,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAClG,UAAU,EAAE;YACV,OAAO,EAAE,IAAI;YACb,iBAAiB,EAAE,CAAC,sBAAsB,EAAE,oBAAoB,CAAC;YACjE,cAAc,EAAE,CAAC,kBAAkB,CAAC;YACpC,aAAa,EAAE,CAAC,iBAAiB,CAAC;SACnC;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,CAAC,IAAI,CAAC;QAClB,MAAM,EAAE,MAAM;QACd,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE;QAClG,UAAU,EAAE;YACV,OAAO,EAAE,MAAM;YACf,iBAAiB,EAAE,CAAC,eAAe,CAAC;YACpC,cAAc,EAAE,CAAC,aAAa,EAAE,WAAW,EAAE,YAAY,CAAC;YAC1D,aAAa,EAAE,CAAC,iBAAiB,CAAC;SACnC;KACF;IACD;QACE,IAAI,EAAE,SAAS;QACf,UAAU,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;QAC1G,MAAM,EAAE,SAAS;QACjB,YAAY,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;KAClG;CACF,CAAC;AAEF,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAwB,CAAC;AAC1D,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;IAClC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,iBAAiB,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;AAEpE,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IACxE,MAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC9C,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,OAAO,uBAAuB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,uBAAuB,CAAC,IAAkB,EAAE,SAAiB;IACpE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACzC,MAAM,UAAU,GAAG,gCAAgC,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAC7B,OAAO,EAAE,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AAC7C,CAAC;AAED,SAAS,gCAAgC,CAAC,SAAiB;IACzD,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,MAAM;YACT,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,iBAAiB,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;gBACpE,cAAc,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,kBAAkB,CAAC;gBAClF,aAAa,EAAE,CAAC,mBAAmB,EAAE,4BAA4B,CAAC;aACnE,CAAC;QACJ,KAAK,IAAI;YACP,OAAO;gBACL,OAAO,EAAE,MAAM;gBACf,iBAAiB,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;gBACjD,cAAc,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC;gBACnC,aAAa,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;aAClD,CAAC;QACJ,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,iBAAiB,EAAE,CAAC,qBAAqB,EAAE,oBAAoB,CAAC;gBAChE,cAAc,EAAE,CAAC,mBAAmB,EAAE,uBAAuB,EAAE,mBAAmB,CAAC;gBACnF,aAAa,EAAE,CAAC,0BAA0B,EAAE,wBAAwB,EAAE,wBAAwB,CAAC;aAChG,CAAC;QACJ,KAAK,GAAG,CAAC;QACT,KAAK,GAAG;YACN,OAAO;gBACL,OAAO,EAAE,GAAG;gBACZ,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;gBAC1C,cAAc,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;gBACtD,aAAa,EAAE,CAAC,iBAAiB,CAAC;aACnC,CAAC;QACJ,KAAK,KAAK,CAAC;QACX,KAAK,IAAI,CAAC;QACV,KAAK,KAAK,CAAC;QACX,KAAK,IAAI,CAAC;QACV,KAAK,KAAK;YACR,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;gBAC1C,cAAc,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,EAAE,gBAAgB,CAAC;gBACzE,aAAa,EAAE,iBAAiB;aACjC,CAAC;QACJ,KAAK,IAAI;YACP,OAAO;gBACL,OAAO,EAAE,SAAS;gBAClB,iBAAiB,EAAE,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;gBACpE,cAAc,EAAE,kBAAkB;gBAClC,aAAa,EAAE,CAAC,uBAAuB,EAAE,4BAA4B,CAAC;aACvE,CAAC;QACJ,KAAK,IAAI;YACP,OAAO;gBACL,OAAO,EAAE,QAAQ;gBACjB,iBAAiB,EAAE,CAAC,sBAAsB,CAAC;gBAC3C,cAAc,EAAE,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;gBAC3D,aAAa,EAAE,CAAC,iBAAiB,CAAC;aACnC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,iBAAiB,EAAE,CAAC,qBAAqB,CAAC;gBAC1C,cAAc,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,EAAE,kBAAkB,CAAC;gBAC7E,aAAa,EAAE,CAAC,iBAAiB,CAAC;aACnC,CAAC;QACJ,KAAK,OAAO;YACV,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,iBAAiB,EAAE,CAAC,sBAAsB,CAAC;gBAC3C,cAAc,EAAE,CAAC,mBAAmB,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,kBAAkB,CAAC;gBACvG,aAAa,EAAE,CAAC,iBAAiB,CAAC;aACnC,CAAC;QACJ;YACE,OAAO,SAAS,CAAC;IACrB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,QAAgB;IAC9D,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAClE,OAAO,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,OAAO,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,KAAK;IACL,MAAM;IACN,MAAM;IACN,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,MAAM;CACP,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,SAAiB;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;IAC5F,OAAO,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AACjE,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,uEAAuE;AACvE,MAAM,wBAAwB,GAA6B;IACzD,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,KAAK,CAAC;IACf,MAAM,EAAE,CAAC,KAAK,CAAC;CAChB,CAAC;AAEF,SAAS,iBAAiB,CAAC,aAAqB;IAC9C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACpD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5D,MAAM,kBAAkB,GAAG,wBAAwB,CAAC,SAAS,CAAC,CAAC;IAC/D,IAAI,kBAAkB,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QACvD,KAAK,MAAM,QAAQ,IAAI,kBAAkB,EAAE,CAAC;YAC1C,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,KAAK,MAAM,SAAS,IAAI;QACtB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,OAAO;QACvB,GAAG,aAAa,KAAK;QACrB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,IAAI;QACpB,GAAG,aAAa,MAAM;QACtB,GAAG,aAAa,IAAI;QACpB,GAAG,aAAa,MAAM;QACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC;KACrC,EAAE,CAAC;QACF,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,IAAI,IAAI,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACtD,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAYD,MAAM,aAAa,GAAG,IAAI,GAAG,EAAqC,CAAC;AAEnE,SAAS,sBAAsB,CAAC,QAAgB;IAC9C,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,UAAU,GAAG,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7F,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAEvD,CAAC;YACF,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,EAAE,CAAC;YACrD,MAAM,YAAY,GAAG,OAAO,eAAe,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;YACjG,MAAM,UAAU,GACd,eAAe,CAAC,KAAK,IAAI,OAAO,eAAe,CAAC,KAAK,KAAK,QAAQ;gBAChE,CAAC,CAAE,eAAe,CAAC,KAAiC;gBACpD,CAAC,CAAC,EAAE,CAAC;YACT,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC;iBACrC,MAAM,CACL,CAAC,KAAK,EAA+B,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAChF;iBACA,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YACvD,MAAM,UAAU,GAAG;gBACjB,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC7C,KAAK;aACN,CAAC;YACF,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;YACxC,OAAO,UAAU,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,MAAM;QACR,CAAC;IACH,CAAC;IAED,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAClC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,oBAAoB,CAAC,OAAe,EAAE,SAAiB;IAC9D,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACjD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9E,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,SAAiB;IACvE,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,IAAI,gBAAgB,CAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IACvD,MAAM,MAAM,GAAG,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IAChD,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,oBAAoB,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QACrE,IAAI,SAAS,IAAI,IAAI;YAAE,SAAS;QAChC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YAC9E,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;YACzE,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB,EAAE,QAAgB,EAAE,SAAiB;IACtF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvC,MAAM,cAAc,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAChC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EACnD,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,cAAc,EAAE,CAAC,CAAC,CAAC,cAAc,CACvE,CAAC;IACF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,QAAgB,EAAE,QAAgB,EAAE,SAAiB;IACvF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEvC,IAAI,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,iBAAiB,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACxD,OAAO,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC;IACnE,IAAI,eAAe,CAAC,gBAAgB,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,gBAAgB,CAAC;QAAE,OAAO,gBAAgB,CAAC;IAElH,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,UAAU,KAAK,CAAC,CAAC;IACjE,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,aAAa,CAAC;QAAE,OAAO,aAAa,CAAC;IAEzG,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACrE,IAAI,eAAe,CAAC,WAAW,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,WAAW,CAAC;IAEnG,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACnE,IAAI,eAAe,CAAC,QAAQ,CAAC,EAAE,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,QAAQ,CAAC;IAE1F,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -198,4 +198,51 @@ export declare function repoMapEntryToMarkdown(entry: RepoMapEntry, mode: RepoMa
198
198
  * those lengths constant are not detected and reuse the cached ranking.
199
199
  */
200
200
  export declare function buildRepoMap(index: CodebaseIndex, options: RepoMapOptions): RepoMapResult;
201
+ export declare const ChangedRepoMapRangeSchema: z.ZodObject<{
202
+ base: z.ZodOptional<z.ZodString>;
203
+ head: z.ZodOptional<z.ZodString>;
204
+ staged: z.ZodOptional<z.ZodBoolean>;
205
+ }, z.core.$strip>;
206
+ export type ChangedRepoMapRange = z.infer<typeof ChangedRepoMapRangeSchema>;
207
+ export interface ChangedRepoMapOptions extends RepoMapOptions {
208
+ changed: ChangedRepoMapRange;
209
+ }
210
+ export interface RepoMapChangeContext {
211
+ /** Absolute paths of changed (non-deleted) files, for focus merging. */
212
+ focusPaths: string[];
213
+ /** Absolute path → churn for stamping admitted entries. */
214
+ churnByPath: Map<string, {
215
+ added: number;
216
+ deleted: number;
217
+ binary: boolean;
218
+ }>;
219
+ }
220
+ /**
221
+ * Resolve a git change range into repo-map focus inputs. Split out from
222
+ * {@link buildChangedRepoMap} so callers holding a diff summary (or a CLI
223
+ * that already fetched one) can reuse the same merge/stamp semantics.
224
+ */
225
+ export declare function toRepoMapChangeContext(repoRoot: string, summary: {
226
+ files: Array<{
227
+ path: string;
228
+ status?: string;
229
+ binary?: boolean;
230
+ }>;
231
+ numstat: Array<{
232
+ path: string;
233
+ added: number | null;
234
+ deleted: number | null;
235
+ binary?: boolean;
236
+ }>;
237
+ }): RepoMapChangeContext;
238
+ /** Stamp changed/churn metadata onto admitted entries (idempotent). */
239
+ export declare function stampRepoMapChanges(result: RepoMapResult, context: RepoMapChangeContext): RepoMapResult;
240
+ /**
241
+ * {@link buildRepoMap} focused on a git change range: files changed in the
242
+ * range are added to the focus set (merged with any caller-provided focus),
243
+ * and admitted entries carry `changed`/`churn` metadata. Async because it
244
+ * shells out to git for the diff summary; the map itself builds like any
245
+ * other repo map, so token budgeting is unchanged.
246
+ */
247
+ export declare function buildChangedRepoMap(index: CodebaseIndex, options: ChangedRepoMapOptions): Promise<RepoMapResult>;
201
248
  export {};
@@ -12,8 +12,10 @@
12
12
  * Token counting is injected (`countTokens`) so a real BPE tokenizer can
13
13
  * enforce an exact budget; it defaults to the language-aware heuristic.
14
14
  */
15
+ import path from 'node:path';
15
16
  import { z } from 'zod';
16
17
  import { estimateTokenCount } from '../tokens.js';
18
+ import { getGitDiffSummary } from '../git/api.js';
17
19
  import { extractKeySection } from './query.js';
18
20
  import { toNormalizedSymbolKind } from './types.js';
19
21
  import { rankNodesCached, RankOptionsSchema } from './rank.js';
@@ -194,6 +196,57 @@ function buildContentEntry(file, charBudget) {
194
196
  return null;
195
197
  }
196
198
  }
199
+ /** Mirrors the focus descriptor the markdown/plain header renders, so its chrome is reserved accurately. */
200
+ function chromeFocusDescriptor(focus) {
201
+ const parts = [];
202
+ if (focus.query)
203
+ parts.push(`query "${focus.query}"`);
204
+ if (focus.paths.length > 0)
205
+ parts.push(`${focus.paths.length} path(s)`);
206
+ const what = parts.length > 0 ? parts.join(' + ') : 'focus';
207
+ return `${what}, ${focus.matchedFiles} matched`;
208
+ }
209
+ /**
210
+ * Fixed and per-entry token overhead the format renderer wraps around the entry
211
+ * bodies — the header line, block separators, truncation footer, and trailing
212
+ * newline. The emitted document (not just the summed entry bodies) must fit the
213
+ * budget, so this overhead is reserved before entries are admitted. Numeric
214
+ * fields use budget / total-file upper bounds and the widest tokenizer suffix so
215
+ * the reservation never underestimates the rendered chrome. `json` output is a
216
+ * structural serialization unrelated to the entry markdown, so it reserves
217
+ * nothing.
218
+ */
219
+ function documentChromeReserve(format, budget, totalFiles, focus, countTokens) {
220
+ if (format === 'json')
221
+ return { fixed: 0, perEntry: 0 };
222
+ const filesField = `${totalFiles}/${totalFiles} files`;
223
+ const tokenField = `${budget}/${budget} tokens`;
224
+ const omitted = `${totalFiles} file(s) / ${totalFiles} symbol(s) omitted to fit the ${budget}-token budget.`;
225
+ const focusSuffix = focus ? ` — focus: ${chromeFocusDescriptor(focus)}` : '';
226
+ if (format === 'plain') {
227
+ const header = `Repo Map (${filesField}, ${tokenField})${focusSuffix}`;
228
+ return {
229
+ fixed: countTokens(header) + countTokens(omitted) + countTokens('\n') * 3,
230
+ perEntry: countTokens('\n') * 2,
231
+ };
232
+ }
233
+ if (format === 'xml') {
234
+ const open = `<repomap mode="pack" tokens="${budget}" budget="${budget}" files="${totalFiles}" totalFiles="${totalFiles}" truncated="true">`;
235
+ return {
236
+ fixed: countTokens(open) + countTokens('</repomap>') + countTokens('\n') * 2,
237
+ perEntry: countTokens('\n'),
238
+ };
239
+ }
240
+ // markdown: `# Repo Map — E/M files, U/B tokens[, tokenizer][ — focus: …]`,
241
+ // blocks joined by `\n\n`, an optional italic footer, and a trailing newline.
242
+ const header = `# Repo Map — ${filesField}, ${tokenField}, cl100k_base${focusSuffix}`;
243
+ const footer = `_${omitted}_`;
244
+ const separator = '\n\n';
245
+ return {
246
+ fixed: countTokens(header) + countTokens(footer) + countTokens(separator) * 3 + countTokens('\n'),
247
+ perEntry: countTokens(separator),
248
+ };
249
+ }
197
250
  /**
198
251
  * Build a token-budgeted, importance-ranked repo map (or pack) from an index.
199
252
  *
@@ -256,20 +309,32 @@ export function buildRepoMap(index, options) {
256
309
  let tokensUsed = 0;
257
310
  let droppedFiles = 0;
258
311
  let droppedSymbols = 0;
312
+ // Reserve the format's fixed document chrome (header/footer/separators) up
313
+ // front and charge each admitted entry its block separator, so the rendered
314
+ // document — not merely the summed entry bodies — stays within budget.
315
+ const chrome = documentChromeReserve(format, budget, ranking.fileScores.length, focusResult, countTokens);
316
+ const effectiveBudget = budget - chrome.fixed;
259
317
  for (const fileScore of orderedFileScores) {
260
318
  const file = fileByPath.get(fileScore.path);
261
319
  if (!file)
262
320
  continue;
263
- const remaining = budget - tokensUsed;
264
- if (remaining <= 0) {
265
- droppedFiles++;
266
- continue;
267
- }
268
321
  let symbols = orderedSymbolsForFile(file, rankedSymbolsByPath.get(file.path) ?? []);
269
322
  if (options.maxSymbolsPerFile != null && symbols.length > options.maxSymbolsPerFile) {
270
323
  droppedSymbols += symbols.length - options.maxSymbolsPerFile;
271
324
  symbols = symbols.slice(0, options.maxSymbolsPerFile);
272
325
  }
326
+ const remaining = effectiveBudget - tokensUsed;
327
+ if (remaining <= 0) {
328
+ // Budget already spent: nothing further can be admitted. Count only files
329
+ // that would have carried information — a no-symbol map file is skipped
330
+ // uncounted here exactly as it is on the normal path — and add every
331
+ // dropped file's symbols to droppedSymbols so all drop paths agree.
332
+ if (mode === 'map' && symbols.length === 0)
333
+ continue;
334
+ droppedFiles++;
335
+ droppedSymbols += symbols.length;
336
+ continue;
337
+ }
273
338
  let content;
274
339
  let contentReason;
275
340
  if (mode === 'pack') {
@@ -312,14 +377,14 @@ export function buildRepoMap(index, options) {
312
377
  return entry;
313
378
  };
314
379
  let entry = makeEntry(symbols, content);
315
- if (tokensUsed + entry.tokens <= budget) {
316
- tokensUsed += entry.tokens;
380
+ if (tokensUsed + entry.tokens + chrome.perEntry <= effectiveBudget) {
381
+ tokensUsed += entry.tokens + chrome.perEntry;
317
382
  entries.push(entry);
318
383
  continue;
319
384
  }
320
385
  // Partial admission — shrink until it fits or the file must be dropped.
321
386
  if (mode === 'pack' && content != null) {
322
- const shrunkBudget = Math.max(200, Math.floor((budget - tokensUsed) * APPROX_CHARS_PER_TOKEN * 0.9));
387
+ const shrunkBudget = Math.max(200, Math.floor((effectiveBudget - tokensUsed) * APPROX_CHARS_PER_TOKEN * 0.9));
323
388
  const shrunk = buildContentEntry(file, shrunkBudget);
324
389
  if (shrunk) {
325
390
  content = shrunk.content;
@@ -328,11 +393,20 @@ export function buildRepoMap(index, options) {
328
393
  }
329
394
  }
330
395
  else {
331
- // map mode: drop lowest-ranked symbols from the tail until it fits.
396
+ // map mode: drop lowest-ranked symbols from the tail until it fits. Locate
397
+ // the cut by subtracting each dropped symbol's line cost from the exact
398
+ // full-entry count already measured above (avoiding an O(S^2) re-render of
399
+ // the whole entry per step), then confirm the admitted prefix with an
400
+ // exact re-count.
332
401
  let kept = symbols.length;
402
+ let approxTokens = entry.tokens;
403
+ while (kept > 0 && tokensUsed + approxTokens + chrome.perEntry > effectiveBudget) {
404
+ kept--;
405
+ approxTokens -= countTokens(`\n- ${repoMapSignatureLine(symbols[kept])}`);
406
+ }
333
407
  while (kept > 0) {
334
408
  const trial = makeEntry(symbols.slice(0, kept));
335
- if (tokensUsed + trial.tokens <= budget) {
409
+ if (tokensUsed + trial.tokens + chrome.perEntry <= effectiveBudget) {
336
410
  entry = trial;
337
411
  break;
338
412
  }
@@ -346,8 +420,8 @@ export function buildRepoMap(index, options) {
346
420
  droppedSymbols += symbols.length - kept;
347
421
  entry.droppedSymbols = symbols.length - kept;
348
422
  }
349
- if (tokensUsed + entry.tokens <= budget) {
350
- tokensUsed += entry.tokens;
423
+ if (tokensUsed + entry.tokens + chrome.perEntry <= effectiveBudget) {
424
+ tokensUsed += entry.tokens + chrome.perEntry;
351
425
  entries.push(entry);
352
426
  }
353
427
  else {
@@ -370,4 +444,73 @@ export function buildRepoMap(index, options) {
370
444
  focus: focusResult,
371
445
  };
372
446
  }
447
+ // ---------------------------------------------------------------------------
448
+ // Changed-focus repo map
449
+ // ---------------------------------------------------------------------------
450
+ export const ChangedRepoMapRangeSchema = z.object({
451
+ /** Base ref to diff from (merge-base three-dot semantics, as in `git diff base...head`). */
452
+ base: z.string().optional(),
453
+ /** Head ref to diff to; defaults to HEAD. */
454
+ head: z.string().optional(),
455
+ /** Use staged changes instead of a ref range. */
456
+ staged: z.boolean().optional(),
457
+ });
458
+ /**
459
+ * Resolve a git change range into repo-map focus inputs. Split out from
460
+ * {@link buildChangedRepoMap} so callers holding a diff summary (or a CLI
461
+ * that already fetched one) can reuse the same merge/stamp semantics.
462
+ */
463
+ export function toRepoMapChangeContext(repoRoot, summary) {
464
+ const numstatByPath = new Map(summary.numstat.map(entry => [entry.path, entry]));
465
+ const focusPaths = [];
466
+ const churnByPath = new Map();
467
+ for (const file of summary.files) {
468
+ if (file.status === 'deleted')
469
+ continue;
470
+ const absolutePath = path.resolve(repoRoot, file.path);
471
+ const numstat = numstatByPath.get(file.path);
472
+ focusPaths.push(absolutePath);
473
+ churnByPath.set(absolutePath, {
474
+ added: numstat?.added ?? 0,
475
+ deleted: numstat?.deleted ?? 0,
476
+ binary: file.binary === true || numstat?.binary === true,
477
+ });
478
+ }
479
+ return { focusPaths, churnByPath };
480
+ }
481
+ /** Stamp changed/churn metadata onto admitted entries (idempotent). */
482
+ export function stampRepoMapChanges(result, context) {
483
+ for (const entry of result.entries) {
484
+ const churn = context.churnByPath.get(entry.path);
485
+ if (!churn)
486
+ continue;
487
+ entry.changed = true;
488
+ entry.churn = churn;
489
+ }
490
+ return result;
491
+ }
492
+ /**
493
+ * {@link buildRepoMap} focused on a git change range: files changed in the
494
+ * range are added to the focus set (merged with any caller-provided focus),
495
+ * and admitted entries carry `changed`/`churn` metadata. Async because it
496
+ * shells out to git for the diff summary; the map itself builds like any
497
+ * other repo map, so token budgeting is unchanged.
498
+ */
499
+ export async function buildChangedRepoMap(index, options) {
500
+ const { changed, ...mapOptions } = options;
501
+ const summary = await getGitDiffSummary({
502
+ repoRoot: index.repoRoot,
503
+ base: changed.base,
504
+ head: changed.head,
505
+ staged: changed.staged,
506
+ });
507
+ const context = toRepoMapChangeContext(index.repoRoot, summary);
508
+ const existingFocus = mapOptions.focus;
509
+ const mergedPaths = [...new Set([...(existingFocus?.paths ?? []), ...context.focusPaths])];
510
+ const focus = (existingFocus?.query ?? '').trim().length > 0 || mergedPaths.length > 0
511
+ ? { ...existingFocus, paths: mergedPaths }
512
+ : existingFocus;
513
+ const result = buildRepoMap(index, { ...mapOptions, focus });
514
+ return stampRepoMapChanges(result, context);
515
+ }
373
516
  //# sourceMappingURL=map.js.map